Class Krb5Token

  • All Implemented Interfaces:
    Streamable

    public class Krb5Token
    extends AuthToken
    JGroups AuthToken Class to for Kerberos v5 authentication.
    Since:
    3.4
    • Field Detail

      • JASS_SECURITY_CONFIG

        private static final java.lang.String JASS_SECURITY_CONFIG
        See Also:
        Constant Field Values
      • CLIENT_PRINCIPAL_NAME

        public static final java.lang.String CLIENT_PRINCIPAL_NAME
        See Also:
        Constant Field Values
      • SERVICE_PRINCIPAL_NAME

        public static final java.lang.String SERVICE_PRINCIPAL_NAME
        See Also:
        Constant Field Values
      • client_principal_name

        protected java.lang.String client_principal_name
      • client_password

        protected java.lang.String client_password
      • service_principal_name

        protected java.lang.String service_principal_name
      • subject

        private javax.security.auth.Subject subject
      • krbServiceTicket

        private byte[] krbServiceTicket
      • remoteKrbServiceTicket

        private byte[] remoteKrbServiceTicket
    • Constructor Detail

      • Krb5Token

        public Krb5Token()
    • Method Detail

      • setValue

        public void setValue​(java.util.Properties properties)
      • getName

        public java.lang.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​(java.io.DataOutput out)
                     throws java.io.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:
        java.io.IOException
      • readFrom

        public void readFrom​(java.io.DataInput in)
                      throws java.io.IOException
        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:
        java.io.IOException
      • size

        public int size()
        Description copied from class: AuthToken
        The size of the marshalled AuthToken
        Specified by:
        size in class AuthToken
      • isAuthenticated

        private boolean isAuthenticated()
        Private Methods
      • authenticateClientPrincipal

        private void authenticateClientPrincipal()
                                          throws javax.security.auth.login.LoginException
        Throws:
        javax.security.auth.login.LoginException
      • generateServiceTicket

        private void generateServiceTicket()
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • validateRemoteServiceTicket

        private void validateRemoteServiceTicket​(Krb5Token remoteToken)
                                          throws java.lang.Exception
        Throws:
        java.lang.Exception
      • writeServiceTicketToSream

        private void writeServiceTicketToSream​(java.io.DataOutput out)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • readRemoteServiceTicketFromStream

        private void readRemoteServiceTicketFromStream​(java.io.DataInput in)
                                                throws java.io.IOException
        Throws:
        java.io.IOException