Class X509Token

java.lang.Object
org.jgroups.auth.AuthToken
org.jgroups.auth.X509Token
All Implemented Interfaces:
Serializable, Streamable

public class X509Token extends AuthToken

This is an example of using a preshared token that is encrypted using an X509 certificate for authentication purposes. All members of the group have to have the same string value in the JGroups config.

This example uses certificates contained within a specified keystore. Configuration parameters for this example are shown below:

  • keystore_type = JKS(default)/PKCS12 - see http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html#AppA
  • keystore_path (required) = the location of the keystore
  • keystore_password (required) = the password of the keystore
  • cert_alias (required) = the alias of the certification within the keystore
  • cert_password = the password of the certification within the keystore
  • auth_value (required) = the string to encrypt
  • cipher_type = RSA(default)/AES/Blowfish/DES/DESede/PBEWithMD5AndDES/PBEWithHmacSHA1AndDESede/RC2/RC4/RC5 - see http://java.sun.com/j2se/1.4.2/docs/guide/security/jce/JCERefGuide.html#AppA
Author:
Chris Mills
See Also:
  • Field Details

  • Constructor Details

    • X509Token

      public X509Token()
  • Method Details

    • setValue

      public void setValue(Properties properties)
      Description copied from class: AuthToken
      Called during the setup of the AUTH protocol to pass property values from the JGroups config XML document to the implementing class.
      Specified by:
      setValue in class AuthToken
      Parameters:
      properties - a java.util.Properties object of config parameters
    • getName

      public String getName()
      Description copied from class: AuthToken
      Used to return the full package and class name of the implementation. This is used by the AUTH protocol to create an instance of the implementation.
      Specified by:
      getName in class AuthToken
      Returns:
      a java.lang.String object of the package and class name
    • authenticate

      public boolean authenticate(AuthToken token, Message msg)
      Description copied from class: AuthToken
      This method should be implemented to perform the actual authentication of joining members.
      Specified by:
      authenticate in class AuthToken
      Parameters:
      token - the token sent by the joiner
      msg - the Message object containing the actual JOIN_REQ
      Returns:
      true if authenticaion passed or false if it failed.
    • writeTo

      public void writeTo(DataOutputStream out) throws IOException
      Description copied from interface: Streamable
      Write the entire state of the current object (including superclasses) to outstream. Note that the output stream must not be closed
      Throws:
      IOException
    • readFrom

      Description copied from interface: Streamable
      Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed
      Throws:
      IOException
      IllegalAccessException
      InstantiationException