loginmodules/password/pwcommon/src/main/java/org/beiter/michael/authn/jaas/loginmodules/password/common/PasswordLoginModule.java
@Override
    public final void initialize(final Subject subject, final CallbackHandler callbackHandler,
                                 final Map<String, ?> sharedState, final Map<String, ?> options) {

        LOG.debug("Initializing");

        Validate.notNull(subject, "The validated object 'subject' is null");
        Validate.notNull(callbackHandler, "The validated object 'callbackHandler' is null");
        Validate.notNull(sharedState, "The validated object 'sharedState' is null");
        Validate.notNull(options, "The validated object 'options' is null");

        // keep a reference to the originally provided arguments (no defensive copy)
        this.pSubject = subject;
        this.pCallbackHandler = callbackHandler;

        // It would be nice to parse the configuration only once, and store it for later use. However, we are
        // deliberately NOT caching the parsed configuration, as JAAS does not offer a standard way to to reset the
        // cached variable, and allow users of the login module to reset the parsed config in case an app does need to
        // re-read its configuration.
        final CommonProperties commonProps = JaasBasedCommonPropsBuilder.build(options);

        // initialize the audit object
        initAudit(commonProps);

        // initialize the message object
        initMessageQueue(commonProps);

        // initialize the validator object
        initPwValidator(commonProps);

        // initialize the authenticator object
        initPwAuthenticator(commonProps);

        LOG.info("Initialization complete");
    }
@Override
    public final void initialize(final Subject subject, final CallbackHandler callbackHandler,
                                 final Map<String, ?> sharedState, final Map<String, ?> options) {

        LOG.debug("Initializing");

        Validate.notNull(subject, "The validated object 'subject' is null");
        Validate.notNull(callbackHandler, "The validated object 'callbackHandler' is null");
        Validate.notNull(sharedState, "The validated object 'sharedState' is null");
        Validate.notNull(options, "The validated object 'options' is null");

        // keep a reference to the originally provided arguments (no defensive copy)
        this.pSubject = subject;
        this.pCallbackHandler = callbackHandler;

        // It would be nice to parse the configuration only once, and store it for later use. However, we are
        // deliberately NOT caching the parsed configuration, as JAAS does not offer a standard way to to reset the
        // cached variable, and allow users of the login module to reset the parsed config in case an app does need to
        // re-read its configuration.
        final CommonProperties commonProps = JaasBasedCommonPropsBuilder.build(options);

        // initialize the audit object
        initAudit(commonProps);

        // initialize the message object
        initMessageQueue(commonProps);

        // initialize the validator object
        initPwValidator(commonProps);

        // initialize the authenticator object
        initPwAuthenticator(commonProps);

        LOG.info("Initialization complete");
    }
@ Override public final void initialize ( final Subject subject , final CallbackHandler callbackHandler , final Map < String , ? > sharedState , final Map < String , ? > options ) { LOG . debug ( "Initializing" ) ; Validate . notNull ( subject , "The validated object 'subject' is null" ) ; Validate . notNull ( callbackHandler , "The validated object 'callbackHandler' is null" ) ; Validate . notNull ( sharedState , "The validated object 'sharedState' is null" ) ; Validate . notNull ( options , "The validated object 'options' is null" ) ; // keep a reference to the originally provided arguments (no defensive copy) this . pSubject = subject ; this . pCallbackHandler = callbackHandler ; // It would be nice to parse the configuration only once, and store it for later use. However, we are // deliberately NOT caching the parsed configuration, as JAAS does not offer a standard way to to reset the // cached variable, and allow users of the login module to reset the parsed config in case an app does need to // re-read its configuration. final CommonProperties commonProps = JaasBasedCommonPropsBuilder . build ( options ) ; // initialize the audit object initAudit ( commonProps ) ; // initialize the message object initMessageQueue ( commonProps ) ; // initialize the validator object initPwValidator ( commonProps ) ; // initialize the authenticator object initPwAuthenticator ( commonProps ) ; LOG . info ( "Initialization complete" ) ; }
{@inheritDoc}

@throws NullPointerException When the {@code subject}, {@code callbackHandler}, {@code sharedState}, or
{@code options} are {@code null}
{ @inheritDoc }