Menu Close
Settings Close

Language and Page Formatting Options

2.8.6.2. 密码堆栈

堆栈中的多个登录模块可以串联在一起,每一登录模块在身份验证期间提供凭据验证和角色分配。这适用于许多用例,但有时凭据验证和角色分配分散到多个用户管理存储中。

请考虑在中央 LDAP 服务器中管理用户的情况,以及特定于应用的角色存储在应用的关系数据库中。password-stacking 模块选项捕获了这一关系。

要使用密码堆栈,每个登录模块都应将 password-stacking 属性设置为 useFirstPass,它位于 <module-option> 部分中。如果上一配置用于密码堆栈的模块对用户进行了身份验证,所有其他堆栈模块将考虑用户通过身份验证,并且仅尝试为授权步骤提供一组角色。

password-stacking 选项设置为 useFirstPass 时,此模块首先在属性名称 javax.security.auth.login.namejavax.security.auth.login.password 下分别在登录模块共享状态映射下查找共享用户名和密码。

如果找到,这些属性将用作主要名称和密码。如果没有找到,则主体名称和密码由此登录模块设置,并分别存储在属性名称 javax.security.auth.login.namejavax.security.auth.login.password 下。