class PasswordAuthenticator extends Authenticator {

  @Override
  @Nullable
  protected PasswordAuthentication getPasswordAuthentication() {<FILL_FUNCTION_BODY>}

}

    if (getRequestingURL() == null) {
      return null;
    }
    String userInfo = getRequestingURL().getUserInfo();
    if (StringTools.isEmpty(userInfo)) {
      return null;
    }
    String[] parts = userInfo.split(":");
    if (parts.length != 2) {
      throw new RuntimeException("Invalid userInfo format, expected 'user:password': " + userInfo);
    }
    String username = parts[0];
    String password = parts[1];
    return new PasswordAuthentication(username, password.toCharArray());
  
<methods>public void <init>() ,public static java.net.Authenticator getDefault() ,public static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String) ,public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String) ,public static java.net.PasswordAuthentication requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.net.Authenticator.RequestorType) ,public static java.net.PasswordAuthentication requestPasswordAuthentication(java.net.Authenticator, java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.net.Authenticator.RequestorType) ,public java.net.PasswordAuthentication requestPasswordAuthenticationInstance(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.net.Authenticator.RequestorType) ,public static synchronized void setDefault(java.net.Authenticator) <variables>private final java.lang.String key,private java.net.Authenticator.RequestorType requestingAuthType,private java.lang.String requestingHost,private int requestingPort,private java.lang.String requestingPrompt,private java.lang.String requestingProtocol,private java.lang.String requestingScheme,private java.net.InetAddress requestingSite,private java.net.URL requestingURL,private static volatile java.net.Authenticator theAuthenticator