public interface LoginModule
LoginModule描述由认证技术提供商实现的接口。loginmodules插在应用程序提供特定类型的认证。
当应用程序写入LoginContext API认证技术供应商实施LoginModule接口。一个Configuration指定登录(S)被用于特定的登录应用程序。因此,不同的loginmodules可以插在应用程序无需任何修改应用程序本身。
的LoginContext负责阅读Configuration并实例化适当的loginmodules。每个LoginModule与Subject,初始化CallbackHandler,共享LoginModule状态,和登录选项。的Subject代表Subject目前正在验证和更新相关的凭据,如果认证成功。loginmodules使用CallbackHandler与用户沟通。的CallbackHandler可以用于提示用户名和密码,例如。请注意,CallbackHandler可能无效。loginmodules绝对需要一个CallbackHandler认证Subject可以把一个LoginException。loginmodules选择使用共享状态之间的信息或数据共享。
登录模块配置选项代表这LoginModule在登录Configuration管理员或用户的选项。选项是由LoginModule本身的定义和控制范围内的行为。例如,一个LoginModule可以定义选项支持调试/测试能力。选择使用密钥值的语法定义,如调试=真。的LoginModule存储选项作为一个Map使值可以使用密钥恢复。注意这里是期权的一种LoginModule选择定义数量不限。
调用应用程序将身份验证过程视为一个单一的操作。然而,认证过程中的LoginModule收益在两个不同的阶段。在第一阶段,登录模块的login方法被调用的方法的login logincontext。然后对LoginModule的login方法执行实际的认证(提示和验证,例如密码),保存为私有状态信息的认证状态。一旦完成,登录模块的login方法要么返回true(如果成功)或false(如果它应该被忽略),或抛出一个LoginException指定失败。在失败的情况下,该LoginModule不得重新认证或将延迟。这些任务的责任属于应用程序。如果应用程序试图重新进行身份验证,登录模块的login方法会被调用一次。
在第二阶段,如果logincontext整体认证成功(相关要求,必要的,足够的和可选的loginmodules成功了),然后为LoginModule的commit方法时。的commit方法检查其LoginModule私下保存的状态,看看自己的认证成功。如果整体LoginContext认证成功,登录的认证成功,然后commit方法协会有关负责人(认证身份)和认证(认证数据,如加密密钥)与Subject位于LoginModule。
如果logincontext整体认证失败(相关要求,必要的,足够的和可选的loginmodules没有成功),然后为每个LoginModule的abort方法时。在这种情况下,该LoginModule删除/销毁任何认证状态最初保存。
记录了一Subject只涉及一个相。的LoginContext调用登录的logout方法。为LoginModule的logout方法然后执行注销程序,如从Subject或登录会话信息去除校长或凭据。
一个LoginModule实施必须有构造函数没有参数。这允许类负荷的LoginModule实例化它。
LoginContext,
Configuration
| Modifier and Type | Method and Description |
|---|---|
boolean |
abort()
中止认证过程的方法(阶段2)。
|
boolean |
commit()
提交身份验证过程的方法(第2阶段)。
|
void |
initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
初始化这个LoginModule。
|
boolean |
login()
为了验证
Subject方法(阶段1)。
|
boolean |
logout()
方法记录了
Subject。
|
void initialize(Subject subject, CallbackHandler callbackHandler, Map<String,?> sharedState, Map<String,?> options)
这种方法是由LoginContext称在这LoginModule已实例化。这种方法的目的是将相关信息,这LoginModule。如果这LoginModule不懂任何存储在sharedState或options参数的数据,他们可以忽略。
subject -
Subject被认证。
callbackHandler -
CallbackHandler与最终用户沟通(提示用户名和密码,例如)。
sharedState -与其他配置loginmodules共享状态。
options -这个特殊的
LoginModule在登录
Configuration指定选项。
boolean login()
throws LoginException
Subject方法(阶段1)。
该方法的实施进行Subject。例如,它可能会促使Subject信息如用户名和密码,然后尝试验证密码。这种方法节省了认证尝试私有状态在登录的结果。
LoginModule应该被忽略。
LoginException如果认证失败
boolean commit()
throws LoginException
这种方法是如果logincontext整体认证成功了叫(相关要求,必要的,足够的和可选的loginmodules成功)。
如果这是LoginModule自己的身份验证尝试成功(通过检索私有状态的login方法保存,然后检查)这种方法结合Subject位于LoginModule有关校长和凭据。如果这是LoginModule自己的身份验证尝试失败,则此方法移除/破坏任何国家原本保存。
LoginModule应该被忽略。
LoginException如果提交失败
boolean abort()
throws LoginException
这种方法是如果logincontext整体认证失败称为。(相关要求,必要的,足够的和可选的loginmodules没有成功)。
如果这是LoginModule自己的身份验证尝试成功(通过检索私有状态的login方法保存,然后检查)此方法清除任何原本保存状态。
LoginModule应该被忽略。
LoginException如果流产失败
boolean logout()
throws LoginException
Subject
这种方法的一个实现可能会删除/破坏一个主题的校长和凭据。
。LoginModule应该被忽略。
LoginException如果注销失败
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.