Package org.apache.zookeeper.server.auth
Class EnsembleAuthenticationProvider
- java.lang.Object
-
- org.apache.zookeeper.server.auth.EnsembleAuthenticationProvider
-
- All Implemented Interfaces:
AuthenticationProvider
public class EnsembleAuthenticationProvider extends Object implements AuthenticationProvider
This is not a true AuthenticationProvider in the strict sense. it does handle add auth requests, but rather than authenticate the client, it checks to make sure that the ensemble name the client intends to connect to matches the name that the server thinks it belongs to. if the name does not match, this provider will close the connection.
-
-
Field Summary
Fields Modifier and Type Field Description static String
ENSEMBLE_PROPERTY
-
Constructor Summary
Constructors Constructor Description EnsembleAuthenticationProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getScheme()
The String used to represent this provider.KeeperException.Code
handleAuthentication(ServerCnxn cnxn, byte[] authData)
This method is called when a client passes authentication data for this scheme.boolean
isAuthenticated()
This method is used to check if the authentication done by this provider should be used to identify the creator of a node.boolean
isValid(String id)
Validates the syntax of an id.boolean
matches(String id, String aclExpr)
This method is called to see if the given id matches the given id expression in the ACL.void
setEnsembleNames(String namesCSV)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.zookeeper.server.auth.AuthenticationProvider
getUserName, handleAuthentication
-
-
-
-
Field Detail
-
ENSEMBLE_PROPERTY
public static final String ENSEMBLE_PROPERTY
- See Also:
- Constant Field Values
-
-
Method Detail
-
setEnsembleNames
public void setEnsembleNames(String namesCSV)
-
getScheme
public String getScheme()
Description copied from interface:AuthenticationProvider
The String used to represent this provider. This will correspond to the scheme field of an Id.- Specified by:
getScheme
in interfaceAuthenticationProvider
- Returns:
- the scheme of this provider.
-
handleAuthentication
public KeeperException.Code handleAuthentication(ServerCnxn cnxn, byte[] authData)
Description copied from interface:AuthenticationProvider
This method is called when a client passes authentication data for this scheme. The authData is directly from the authentication packet. The implementor may attach new ids to the authInfo field of cnxn or may use cnxn to send packets back to the client.- Specified by:
handleAuthentication
in interfaceAuthenticationProvider
- Parameters:
cnxn
- the cnxn that received the authentication information.authData
- the authentication data received.- Returns:
- TODO
-
matches
public boolean matches(String id, String aclExpr)
Description copied from interface:AuthenticationProvider
This method is called to see if the given id matches the given id expression in the ACL. This allows schemes to use application specific wild cards.- Specified by:
matches
in interfaceAuthenticationProvider
- Parameters:
id
- the id to check.aclExpr
- the expression to match ids against.- Returns:
- true if the id can be matched by the expression.
-
isAuthenticated
public boolean isAuthenticated()
Description copied from interface:AuthenticationProvider
This method is used to check if the authentication done by this provider should be used to identify the creator of a node. Some ids such as hosts and ip addresses are rather transient and in general don't really identify a client even though sometimes they do.- Specified by:
isAuthenticated
in interfaceAuthenticationProvider
- Returns:
- true if this provider identifies creators.
-
isValid
public boolean isValid(String id)
Description copied from interface:AuthenticationProvider
Validates the syntax of an id.- Specified by:
isValid
in interfaceAuthenticationProvider
- Parameters:
id
- the id to validate.- Returns:
- true if id is well formed.
-
-