01: package org.jgroups.auth;
02:
03: import org.jgroups.util.Streamable;
04: import org.jgroups.Message;
05: import org.apache.commons.logging.Log;
06: import org.apache.commons.logging.LogFactory;
07:
08: import java.io.Serializable;
09: import java.util.Properties;
10:
11: /**
12: * Abstract AuthToken class used by implementations of AUTH, e.g. SimpleToken, X509Token1_5
13: * @author Chris Mills
14: */
15: public abstract class AuthToken implements Serializable, Streamable {
16: protected final Log log = LogFactory.getLog(this .getClass());
17:
18: /**
19: * 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.
20: * @return a java.lang.String object of the package and class name
21: */
22: public abstract String getName();
23:
24: /**
25: * Called during the setup of the AUTH protocol to pass property values from the JGroups config XML document to the implementing class.
26: * @param properties a java.util.Properties object of config parameters
27: */
28: public abstract void setValue(Properties properties);
29:
30: /**
31: * This method should be implemented to perform the actual authentication of joining members.
32: * @param token the token sent by the joiner
33: * @param msg the Message object containing the actual JOIN_REQ
34: * @return true if authenticaion passed or false if it failed.
35: */
36: public abstract boolean authenticate(AuthToken token, Message msg);
37: }
|