docs: @Override
      public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
          int len = 0;
  
          if ((callbacks == null) || ((len = callbacks.length) == 0)) {
              return;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              StringBuffer sb = new StringBuffer();
              sb.append("{ ");
              for (int i = 0; i < len; i++) {
                  sb.append(callbacks[i].getClass().getName());
                  if (i < (len - 1)) {
                      sb.append(", ");
                  }
              }
              sb.append(" }");
              Tr.debug(tc, "handle(callbacks = \"" + sb.toString() + "\")");
          }
  
          for (int i = 0; i < len; i++) {
              Callback c = callbacks[i];
  
              if (c instanceof javax.security.auth.callback.NameCallback) {
                  ((javax.security.auth.callback.NameCallback) c).setName(userName);
              } else if (c instanceof javax.security.auth.callback.PasswordCallback) {
                  ((javax.security.auth.callback.PasswordCallback) c).setPassword((password == null) ? null : password.toCharArray());
              } else if (c instanceof WSCredTokenCallbackImpl) {
                  ((WSCredTokenCallbackImpl) c).setCredToken(credToken);
              } else if (c instanceof WSRealmNameCallbackImpl) {
                  ((WSRealmNameCallbackImpl) c).setRealmName(realm);
              } else if (c instanceof WSAppContextCallback) {
                  ((WSAppContextCallback) c).setContext(appContext);
              } else {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Un-use handle(callbacks = \"" + callbacks[i].getClass().getName() + "\")");
                  }
              }
          }
      }