docs: public Subject authenticate(CallbackHandler callbackHandler, Subject subject) throws WSLoginFailedException, CredentialException {
          if (callbackHandler == null) {
              throw new WSLoginFailedException(TraceNLS.getFormattedMessage(
                                                                            this.getClass(),
                                                                            TraceConstants.MESSAGE_BUNDLE,
                                                                            "JAAS_LOGIN_NO_CALLBACK_HANDLER",
                                                                            new Object[] {},
                                                                            "CWWKS1170E: The login on the client application failed because the CallbackHandler implementation is null. Ensure a valid CallbackHandler implementation is specified either in the LoginContext constructor or in the client application's deployment descriptor."));
          }
  
          CallbackHandlerAuthenticationData cAuthData = new CallbackHandlerAuthenticationData(callbackHandler);
          AuthenticationData authenticationData = null;
          try {
              authenticationData = cAuthData.createAuthenticationData();
          } catch (IOException e) {
              throw new WSLoginFailedException(TraceNLS.getFormattedMessage(
                                                                            this.getClass(),
                                                                            TraceConstants.MESSAGE_BUNDLE,
                                                                            "JAAS_LOGIN_UNEXPECTED_EXCEPTION",
                                                                            new Object[] { e.getLocalizedMessage() },
                                                                            "CWWKS1172E: The login on the client application failed because of an unexpected exception. Review the logs to understand the cause of the exception. The exception is: "
                                                                                            + e.getLocalizedMessage()));
          } catch (UnsupportedCallbackException e) {
              throw new WSLoginFailedException(TraceNLS.getFormattedMessage(
                                                                            this.getClass(),
                                                                            TraceConstants.MESSAGE_BUNDLE,
                                                                            "JAAS_LOGIN_UNEXPECTED_EXCEPTION",
                                                                            new Object[] { e.getLocalizedMessage() },
                                                                            "CWWKS1172E: The login on the client application failed because of an unexpected exception. Review the logs to understand the cause of the exception. The exception is: "
                                                                                            + e.getLocalizedMessage()));
          }
          return createBasicAuthSubject(authenticationData, subject);
      }