Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Защита клиентских приложений

Требования к аутентификации Java EE для клиентских приложений такие же, как и для других компонентов Java EE, и могут использоваться те же методы аутентификации, что и для других компонентов приложения Java EE. При доступе к незащищенным веб-ресурсам аутентификация не требуется.

При доступе к защищённым веб-ресурсам могут использоваться обычные варианты аутентификации: базовая аутентификация HTTP, аутентификация с формой входа HTTP или аутентификации клиента по цифровому сертификату SSL. Указание механизма аутентификации в дескрипторе развёртывания описывает, как задать базовую аутентификацию HTTP и аутентификацию с формой входа HTTP. Аутентификация клиента по цифровому сертификату описывает, как задать аутентификацию клиента по сертификату SSL.

Аутентификация требуется при доступе к защищённым Enterprise-бинам. Механизмы аутентификации для Enterprise-бинов обсуждаются в Защита Enterprise-бинов.

Клиентское приложение использует сервис аутентификации, предоставляемый контейнером клиентского приложения, для аутентификации своих пользователей. Сервис контейнера может быть интегрирован с системой аутентификации собственной платформы, так что используется возможность единого входа. Контейнер может аутентифицировать пользователя либо при запуске приложения, либо при доступе к защищённому ресурсу.

Клиентское приложение может предоставить класс, называемый модулем входа в систему, для сбора данных аутентификации. В этом случае должен быть реализован интерфейс javax.security.auth.callback.CallbackHandler, а имя класса реализации должно быть указано в дескрипторе развёртывания. Обработчик Callback-вызова приложения должен полностью поддерживать объекты Callback, указанные в пакете javax.security.auth.callback.

Использование модулей входа

Клиентское приложение может использовать сервис аутентификации и авторизации Java (JAAS) для создания модулей входа для аутентификации. Приложение на основе JAAS реализует интерфейс javax.security.auth.callback.CallbackHandler, так что он может взаимодействовать с пользователями для ввода определённых данных аутентификации, таких как имена пользователей или пароли, или для отображения сообщений об ошибках и предупреждениях.

Приложения реализуют интерфейс CallbackHandler и передают его в контекст входа в систему, который направляет его непосредственно в базовые модули входа в систему. Модуль входа в систему использует обработчик Callback-вызова для сбора ввода, такого как пароль или ПИН-код смарт-карты, от пользователей и для предоставления информации, такой как информация о состоянии, пользователям. Поскольку приложение определяет обработчик Callback-вызова, базовый модуль входа в систему может оставаться независимым от различных способов взаимодействия приложений с пользователями.

Например, реализация обработчика Callback-вызова для приложения с графическим интерфейсом может отображать окно, запрашивающее ввод данных пользователем, или реализация обработчика Callback-вызова для инструмента командной строки может просто запрашивать ввод данных непосредственно из командной строки.

Модуль входа передаёт массив соответствующих Callback-вызовов в метод handle обработчика Callback-вызова, такой как NameCallback для имени пользователя и PasswordCallback для пароля. Обработчик Callback-вызова выполняет запрошенное взаимодействие с пользователем и устанавливает соответствующие значения в Callback-вызовах. Например, чтобы обработать NameCallback, CallbackHandler может запросить имя, получить значение от пользователя и вызвать метод setName NameCallback для хранения имени.

Для получения дополнительной информации об использовании JAAS для аутентификации в модулях входа в систему см. документацию, приведённую в Дополнительная информация о разделах повышенной безопасности.

Использование программного входа

Программный вход в систему позволяет клиентскому коду предоставлять учётные данные пользователя. Если вы используете клиент EJB, вы можете использовать класс com.sun.appserv.security.ProgrammaticLogin с его удобными методами login и logout. Программный вход в систему зависит от сервера.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)