0

LoginModule インターフェイスには次のメソッドがあります。

public void initialize(Subject subject, CallbackHandler callbackHandler,
                    Map<String, ?> sharedState, Map<String, ?> options);

Configuration を拡張することで、オプション (4 番目のパラメーター) に値を渡すことができます。

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 を使用しようとしています。(login() で) ユーザー名とパスワードを取得するために sharedState (3 番目のパラメーター) の値を使用します。

username = (String)sharedState.get(USERNAME_KEY);
password = (char[])sharedState.get(PASSWORD_KEY);

私の質問は、sharedState に値を渡すにはどうすればよいですか?

4

1 に答える 1

1

それはそのためではありません。LoginModule間で値を渡すためのものです。

于 2013-04-21T23:04:56.653 に答える