code: @Override
      public void initialize(Subject subject, CallbackHandler callbackHandler,
                             Map<String, ?> sharedState, Map<String, ?> options) {
  
          checkForNoOptions(options);
  
          Class<?> target = (Class<?>) options.get(JAASLoginModuleConfigImpl.DELEGATE);
          if (target == null) {
              throw new IllegalArgumentException(Tr.formatMessage(tc, "JAAS_WSLOGIN_MODULE_PROXY_DELEGATE_NOT_SET"));
  
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "target class: " + target);
          }
  
          try {
              loginModule = (LoginModule) target.newInstance();
          } catch (Exception e) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Un-expect exception:", e);
              }
              throw new RuntimeException(e.getMessage());
          }
          Map<String, Object> origOptions = excludeInternalOption(options);
          checkForNoOptions(options);
          loginModule.initialize(subject, callbackHandler, sharedState, excludeInternalOption(origOptions));
      }
docs: <p>
  Initialize proxy login module, loads the delegate custom login module
  </p>
  
  @param subject The subject to be authenticated.
  @param callbackHandler
  A <code>CallbackHandler</code> for communicating with the
  end user to gather login information (e.g., username and password).
  @param sharedState
  The state shared with other configured login modules.
  @param options The options specified in the login configuration for this
  particular login module.