docs: @SuppressWarnings("unchecked")
      @Override
      public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
          for (Callback callback : callbacks) {
              if (callback instanceof NameCallback) {
                  String name = (String) authenticationData.get(USERNAME);
                  ((NameCallback) callback).setName(name);
              } else if (callback instanceof PasswordCallback) {
                  char[] password = (char[]) authenticationData.get(PASSWORD);
                  ((PasswordCallback) callback).setPassword(password);
              } else if (callback instanceof TokenCallback) {
                  byte[] token = null;
                  String token64 = (String) authenticationData.get(TOKEN64);
                  if (token64 != null) {
                      token = Base64Coder.base64DecodeString(token64);
                  } else {
                      token = (byte[]) authenticationData.get(TOKEN);
                  }
                  ((TokenCallback) callback).setToken(token);
              } else if (callback instanceof JwtTokenCallback) {
                  String token = (String) authenticationData.get(JWT_TOKEN);
                  if (token != null)
                      ((JwtTokenCallback) callback).setToken(token);
              } else if (callback instanceof WSX509CertificateChainCallback) {
                  X509Certificate[] certChain = (X509Certificate[]) authenticationData.get(CERTCHAIN);
                  ((WSX509CertificateChainCallback) callback).setX509CertificateChain(certChain);
              } else if (callback instanceof WSRealmNameCallbackImpl) {
                  String realmName = (String) authenticationData.get(REALM);
                  ((WSRealmNameCallbackImpl) callback).setRealmName(realmName);
              } else if (callback instanceof WSServletRequestCallback) {
                  HttpServletRequest request = (HttpServletRequest) authenticationData.get(HTTP_SERVLET_REQUEST);
                  ((WSServletRequestCallback) callback).setHttpServletRequest(request);
              } else if (callback instanceof WSServletResponseCallback) {
                  HttpServletResponse response = (HttpServletResponse) authenticationData.get(HTTP_SERVLET_RESPONSE);
                  ((WSServletResponseCallback) callback).setHttpServletResponse(response);
              } else if (callback instanceof WSAppContextCallback) {
                  Map context = (Map) authenticationData.get(AuthenticationData.APPLICATION_CONTEXT);
                  ((WSAppContextCallback) callback).setContext(context);
              } else if (callback instanceof WSCredTokenCallbackImpl) {
                  byte[] credToken = null;
                  credToken = (byte[]) authenticationData.get(AuthenticationData.TOKEN);
                  if (credToken != null) {
                      ((WSCredTokenCallbackImpl) callback).setCredToken(credToken);
                  } else {
                      String credToken64 = (String) authenticationData.get(TOKEN64);
                      if (credToken64 != null) {
                          credToken = Base64Coder.base64DecodeString(credToken64);
                          if (credToken == null) {
                              credToken = credToken64.getBytes();
                          }
                          ((WSCredTokenCallbackImpl) callback).setCredToken(credToken);
                      }
                  }
              } else if (callback instanceof WSAuthMechOidCallbackImpl) {
                  String authMechOID = (String) authenticationData.get(AuthenticationData.AUTHENTICATION_MECH_OID);
                  ((WSAuthMechOidCallbackImpl) callback).setAuthMechOid(authMechOID);
              }
          }
      }