Question

The LoginModule interface has this method:

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

I can pass values to options (fourth parameter) by extending 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 };
    }
}

I'm trying to use LdapLoginModule. It uses sharedState (third parameter) values for getting username and password (in login()):

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

My question is, how can i pass values to sharedState?

Was it helpful?

Solution

That's not what it's for. It's for passing values between LoginModules.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top