|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public class LoginContext extends Object
LoginContext class описывает основные методы, используемые, чтобы аутентифицировать Предметы, и обеспечивает способ разработать не зависящую от приложения из базовой технологии аутентификации. A Configuration определяет технологию аутентификации, или LoginModule, использоваться с определенным приложением. Различный LoginModules может быть включен в соответствии с приложением, не требуя никаких модификаций к приложению непосредственно.
В дополнение к поддержке сменной аутентификации этот class также поддерживает понятие сложенной аутентификации. Приложения могут быть сконфигурированы, чтобы использовать больше чем один LoginModule. Например, можно было сконфигурировать и Kerberos LoginModule и смарт-карту LoginModule в соответствии с приложением.
Типичная вызывающая сторона инстанцирует LoginContext с именем и a CallbackHandler. LoginContext использует имя в качестве индексирования в Конфигурацию, чтобы определить, который LoginModules должен использоваться, и которые должны успешно выполниться для полной аутентификации, чтобы успешно выполниться. CallbackHandler передается к базовому LoginModules, таким образом, они могут связаться и взаимодействовать с пользователями (запрашивающий имя пользователя и пароль через графический интерфейс пользователя, например).
Как только вызывающая сторона инстанцировала LoginContext, она вызывает login метод, чтобы аутентифицировать a Subject. login метод вызывает сконфигурированные модули, чтобы выполнить их соответствующие типы аутентификации (имя пользователя/пароль, проверка контакта смарт-карты, и т.д.). Отметьте, что LoginModules не будет делать попытку повторений аутентификации, ни представлять задержки, если аутентификация перестанет работать. Такие задачи принадлежат вызывающей стороне LoginContext.
Если login возвраты метода, не выдавая исключение, тогда полная аутентификация успешно выполнялись. Вызывающая сторона может тогда получить недавно аутентифицируемый Предмет, вызывая getSubject метод. Принципалы и Учетные данные, связанные с Предметом, могут быть получены, вызывая соответствующий Предмет getPrincipals, getPublicCredentials, и getPrivateCredentials методы.
К выходу из системы Предмет вызывающая сторона вызывает logout метод. Как с login метод, это logout метод вызывает logout метод для сконфигурированных модулей.
LoginContext не должен использоваться, чтобы аутентифицировать больше чем один Предмет. Отдельный LoginContext должен использоваться, чтобы аутентифицировать каждый различный Предмет.
Следующая документация применяется ко всем конструкторам LoginContext:
Subject
null Предмет и a null значение разрешается, LoginContext инстанцирует нового Предмета.
Configuration
Если у конструктора нет входного параметра Конфигурации, или если вызывающая сторона определяет a null Объект конфигурации, конструктор использует следующий вызов, чтобы получить установленную Конфигурацию:
config = Configuration.getConfiguration();
Для обоих случаев параметр имени, данный конструктору, передают к Configuration.getAppConfigurationEntry метод. Если у Конфигурации нет никаких записей для указанного имени, то LoginContext вызовы getAppConfigurationEntry с именем, "другой" (имя записи значения по умолчанию). Если нет никакой записи для "другого", то a LoginException бросается.
AccessController.doPrivileged вызовите так, чтобы модули, которые выполняют чувствительные к безопасности задачи (такие как соединение, чтобы отдалить узлы, и обновление Предмета) потребовали соответствующих полномочий, но вызывающие стороны LoginContext не будут требовать тех полномочий.
AccessControlContext для вызывающей стороны, и вызывает сконфигурированные модули изнутри вызова AccessController.doPrivileged, ограниченного тем контекстом. Это означает контекст вызывающей стороны (сохраненный, когда LoginContext создавался), должен иметь достаточные полномочия, чтобы выполнить любые чувствительные к безопасности задачи, которые могут выполнить модули.
CallbackHandler
null Объект CallbackHandler (и a null значение разрешается), LoginContext запрашивает auth.login.defaultCallbackHandler свойство безопасности для полностью определенного имени class реализации обработчика значения по умолчанию. Если свойство безопасности не будет установлено, то у базовых модулей не будет CallbackHandler для использования в передаче с пользователями. Вызывающая сторона таким образом предполагает, что у сконфигурированных модулей есть альтернативные средства для того, чтобы аутентифицировать пользователя.
handle реализация метода вызывает указанный CallbackHandler handle метод в a java.security.AccessController.doPrivileged вызовите ограниченный током вызывающей стороны AccessControlContext. Security, AuthPermission, Subject, CallbackHandler, Configuration, LoginModule, security properties| Конструктор и Описание |
|---|
LoginContext(String name)
Инстанцируйте нового
LoginContext объект с именем. |
LoginContext(String name, CallbackHandler callbackHandler)
Инстанцируйте нового
LoginContext объект с именем и a CallbackHandler объект. |
LoginContext(String name, Subject subject)
Инстанцируйте нового
LoginContext объект с именем и a Subject объект. |
LoginContext(String name, Subject subject, CallbackHandler callbackHandler)
Инстанцируйте нового
LoginContext объект с именем, a Subject аутентифицироваться, и a CallbackHandler объект. |
LoginContext(String name, Subject subject, CallbackHandler callbackHandler, Configuration config)
Инстанцируйте нового
LoginContext объект с именем, a Subject аутентифицироваться, a CallbackHandler объект, и вход в систему Configuration. |
| Модификатор и Тип | Метод и Описание |
|---|---|
Предмет |
getSubject()
Возвратите аутентифицируемый Предмет.
|
void |
login()
Выполните аутентификацию.
|
void |
logout()
Выход из системы
Subject. |
public LoginContext(String name) throws LoginException
LoginContext объект с именем.name - имя, используемое в качестве индексирования в Configuration.LoginException - если определенный вызывающей стороной name не появляется в Configuration и есть нет Configuration запись для "другого", или если auth.login.defaultCallbackHandler свойство безопасности было установлено, но реализация class, не могла бы быть загружена. SecurityException - если SecurityManager устанавливается, и у вызывающей стороны нет AuthPermission ("createLoginContext.name"), или если запись конфигурации для имени не существует, и у вызывающей стороны дополнительно нет AuthPermission ("createLoginContext.other")public LoginContext(String name, Subject subject) throws LoginException
LoginContext объект с именем и a Subject объект. name - имя, используемое в качестве индексирования в Configuration. subject - Subject аутентифицировать.LoginException - если определенный вызывающей стороной name не появляется в Configuration и есть нет Configuration запись для "другого", если определенный вызывающей стороной subject null, или если бы auth.login.defaultCallbackHandler свойство безопасности было установлено, но реализация, то class не мог бы быть загружен. SecurityException - если SecurityManager устанавливается, и у вызывающей стороны нет AuthPermission ("createLoginContext.name"), или если запись конфигурации для имени не существует, и у вызывающей стороны дополнительно нет AuthPermission ("createLoginContext.other")public LoginContext(String name, CallbackHandler callbackHandler) throws LoginException
LoginContext объект с именем и a CallbackHandler объект. name - имя, используемое в качестве индексирования в Configuration. callbackHandler - CallbackHandler объект, используемый LoginModules, чтобы связаться с пользователем.LoginException - если определенный вызывающей стороной name не появляется в Configuration и есть нет Configuration запись для "другого", или если определенный вызывающей стороной callbackHandler null. SecurityException - если SecurityManager устанавливается, и у вызывающей стороны нет AuthPermission ("createLoginContext.name"), или если запись конфигурации для имени не существует, и у вызывающей стороны дополнительно нет AuthPermission ("createLoginContext.other")public LoginContext(String name, Subject subject, CallbackHandler callbackHandler) throws LoginException
LoginContext объект с именем, a Subject аутентифицироваться, и a CallbackHandler объект. name - имя, используемое в качестве индексирования в Configuration. subject - Subject аутентифицировать. callbackHandler - CallbackHandler объект, используемый LoginModules, чтобы связаться с пользователем.LoginException - если определенный вызывающей стороной name не появляется в Configuration и есть нет Configuration запись для "другого", или если определенный вызывающей стороной subject null, или если определенный вызывающей стороной callbackHandler null. SecurityException - если SecurityManager устанавливается, и у вызывающей стороны нет AuthPermission ("createLoginContext.name"), или если запись конфигурации для имени не существует, и у вызывающей стороны дополнительно нет AuthPermission ("createLoginContext.other")public LoginContext(String name, Subject subject, CallbackHandler callbackHandler, Configuration config) throws LoginException
LoginContext объект с именем, a Subject аутентифицироваться, a CallbackHandler объект, и вход в систему Configuration. name - имя, используемое в качестве индексирования в определенный вызывающей стороной Configuration. subject - Subject аутентифицировать, или null. callbackHandler - CallbackHandler объект, используемый LoginModules, чтобы связаться с пользователем, или null. config - Configuration это перечисляет модули входа в систему, которые вызовут, чтобы выполнить аутентификацию, или null.LoginException - если определенный вызывающей стороной name не появляется в Configuration и есть нет Configuration запись для "другого". SecurityException - если SecurityManager устанавливается, конфигурация null, и у или вызывающей стороны нет AuthPermission ("createLoginContext.name"), или если запись конфигурации для имени не существует, и у вызывающей стороны дополнительно нет AuthPermission ("createLoginContext.other")public void login()
throws LoginException
Этот метод вызывает login метод для каждого LoginModule, сконфигурированного для имени, определенного к LoginContext конструктор, как определено входом в систему Configuration. Каждый LoginModule тогда выполняет его соответствующий тип аутентификации (имя пользователя/пароль, проверка контакта смарт-карты, и т.д.).
Этот метод завершается, 2-фазовый процесс аутентификации, вызывая каждого сконфигурировал LoginModule commit метод, если полная аутентификация, за которой следуют (соответствующий ТРЕБУЕМЫЙ, НЕОБХОДИМЫЙ, ДОСТАТОЧНЫЙ, и ДОПОЛНИТЕЛЬНЫЙ LoginModules успешно выполнялся), или вызывая каждого, сконфигурировала LoginModule abort метод, если полная аутентификация перестала работать. Если аутентификация успешно выполнялась, каждый успешный LoginModule commit метод связывает соответствующие Принципалы и Учетные данные с Subject. Если аутентификация перестала работать, каждый LoginModule abort метод, removes/destroys любое ранее сохраненное состояние.
Если commit фаза сбоев процесса аутентификации, тогда полные сбои аутентификации и этот метод вызывает abort метод для каждого сконфигурированного LoginModule.
Если abort фазовые сбои по любой причине, тогда этот метод распространяет исходное исключение, выданное любой во время login фаза или commit фаза. В любом случае, полных сбоях аутентификации.
В случае, где многократные LoginModules перестали работать, этот метод распространяет исключение, повышенное первым LoginModule который отказавший.
Отметьте это, если этот метод входит abort фаза (любой login или commit отказавшая фаза), этот метод вызывает весь LoginModules, сконфигурированный для приложения независимо от их соответствующего Configuration флаговые параметры. По существу это означает это Requisite и Sufficient семантика игнорируется во время abort фаза. Это гарантирует, что надлежащая уборка и восстановление состояния могут иметь место.
LoginException - если аутентификация перестала работать.public void logout()
throws LoginException
Subject. Этот метод вызывает logout метод для каждого LoginModule сконфигурированный для этого LoginContext. Каждый LoginModule выполняет его соответствующую процедуру выхода из системы, которая может включать удаление/уничтожение Principal и Credential информация от Subject и уборка состояния.
Отметьте, что этот метод вызывает весь LoginModules, сконфигурированный для приложения независимо от их соответствующего Configuration флаговые параметры. По существу это означает это Requisite и Sufficient семантика игнорируется для этого метода. Это гарантирует, что надлежащая уборка и восстановление состояния могут иметь место.
LoginException - если выход из системы перестал работать.public Subject getSubject()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92