LoginModule接口具有以下方法:
public void initialize(Subject subject, CallbackHandler callbackHandler,
Map<String, ?> sharedState, Map<String, ?> options);
我可以通过扩展Configuration:
将值传递给选项(第四个参数)public class CustomConfiguration extends Configuration
{
private Map<String, ?> options;
private String loginModuleName;
public CustomConfiguration()
{
}
public CustomConfiguration(final String loginModuleName, final Map<String, ?> options)
{
this.loginModuleName = loginModuleName;
this.options = options;
}
@Override
public AppConfigurationEntry[] getAppConfigurationEntry(String name)
{
AppConfigurationEntry entry = new AppConfigurationEntry(loginModuleName,
AppConfigurationEntry.LoginModuleControlFlag.REQUIRED,
options);
return new AppConfigurationEntry[] { entry };
}
}
我正在尝试使用LdapLoginModule。它使用sharedState(第三个参数)值来获取用户名和密码(在login()中):
username = (String)sharedState.get(USERNAME_KEY);
password = (char[])sharedState.get(PASSWORD_KEY);
我的问题是,如何将值传递给sharedState?
答案 0 :(得分:1)
这不是它的用途。它用于在 LoginModules之间传递值。