Class WSPasswordCallback

java.lang.Object
org.apache.ws.security.WSPasswordCallback
All Implemented Interfaces:
Callback

public class WSPasswordCallback extends Object implements Callback
Simple class to provide a password callback mechanism.

It uses the JAAS authentication mechanisms and callback methods. In addition to the identifier (user name) this class also provides information what type of information the callback handle method shall provide.

The WSPasswordCallback class defines the following usage codes:

  • UNKNOWN - an unknown usage. Never used by the WSS4J implementation and shall be treated as an error by the handle method.
  • DECRYPT - need a password to get the private key of this identifier (username) from the keystore. WSS4J uses this private key to decrypt the session (symmetric) key. Because the encryption method uses the public key to encrypt the session key it needs no password (a public key is usually not protected by a password).
  • USERNAME_TOKEN - need the password to fill in or to verify a UsernameToken.
  • SIGNATURE - need the password to get the private key of this identifier (username) from the keystore. WSS4J uses this private key to produce a signature. The signature verfication uses the public key to verfiy the signature.
  • KEY_NAME - need the key, not the password, associated with the identifier. WSS4J uses this key to encrypt or decrypt parts of the SOAP request. Note, the key must match the symmetric encryption/decryption algorithm specified (refer to WSHandlerConstants.ENC_SYM_ALGO).
  • USERNAME_TOKEN_UNKNOWN - either an not specified password type or a password type passwordText. In these both cases only the password variable is set. The callback class now may check if the username and password match. If they don't match the callback class must throw an exception. The exception can be a UnsupportedCallbackException or an IOException.
  • SECURITY_CONTEXT_TOKEN - need the key to to be associated with a wsc:SecurityContextToken.
Author:
Werner Dittmann (Werner.Dittmann@siemens.com).
  • Field Details

  • Constructor Details

    • WSPasswordCallback

      public WSPasswordCallback(String id, int usage)
      Constructor.
      Parameters:
      id - The application called back must supply the password for this identifier.
    • WSPasswordCallback

      public WSPasswordCallback(String id, String pw, String type, int usage)
      Constructor.
      Parameters:
      id - The application called back must supply the password for this identifier.
  • Method Details

    • getIdentifer

      public String getIdentifer()
      Get the identifier.

      Returns:
      The identifier
    • setPassword

      public void setPassword(String passwd)
      Set the password.

      Parameters:
      passwd - is the password associated to the identifier
    • getPassword

      public String getPassword()
      Get the password.

      Returns:
      The password
    • setKey

      public void setKey(byte[] key)
      Set the Key.

      Parameters:
      key - is the key associated to the identifier
    • getKey

      public byte[] getKey()
      Get the key.

      Returns:
      The key
    • getUsage

      public int getUsage()
      Get the usage.

      Returns:
      The usage for this callback
    • getPasswordType

      public String getPasswordType()
      The password type is only relevant for usage USERNAME_TOKEN and USERNAME_TOKEN_UNKNOWN.
      Returns:
      Returns the passwordType.