Package org.apache.zookeeper.server.auth
Class DigestAuthenticationProvider
- java.lang.Object
-
- org.apache.zookeeper.server.auth.DigestAuthenticationProvider
-
- All Implemented Interfaces:
AuthenticationProvider
public class DigestAuthenticationProvider extends java.lang.Object implements AuthenticationProvider
-
-
Constructor Summary
Constructors Constructor Description DigestAuthenticationProvider()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.StringgenerateDigest(java.lang.String idPassword)java.lang.StringgetScheme()The String used to represent this provider.KeeperException.CodehandleAuthentication(ServerCnxn cnxn, byte[] authData)This method is called when a client passes authentication data for this scheme.booleanisAuthenticated()This method is used to check if the authentication done by this provider should be used to identify the creator of a node.booleanisValid(java.lang.String id)Validates the syntax of an id.static voidmain(java.lang.String[] args)Call with a single argument of user:pass to generate authdata.booleanmatches(java.lang.String id, java.lang.String aclExpr)This method is called to see if the given id matches the given id expression in the ACL.
-
-
-
Method Detail
-
getScheme
public java.lang.String getScheme()
Description copied from interface:AuthenticationProviderThe String used to represent this provider. This will correspond to the scheme field of an Id.- Specified by:
getSchemein interfaceAuthenticationProvider- Returns:
- the scheme of this provider.
-
generateDigest
public static java.lang.String generateDigest(java.lang.String idPassword) throws java.security.NoSuchAlgorithmException- Throws:
java.security.NoSuchAlgorithmException
-
handleAuthentication
public KeeperException.Code handleAuthentication(ServerCnxn cnxn, byte[] authData)
Description copied from interface:AuthenticationProviderThis 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:
handleAuthenticationin interfaceAuthenticationProvider- Parameters:
cnxn- the cnxn that received the authentication information.authData- the authentication data received.- Returns:
- TODO
-
isAuthenticated
public boolean isAuthenticated()
Description copied from interface:AuthenticationProviderThis 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:
isAuthenticatedin interfaceAuthenticationProvider- Returns:
- true if this provider identifies creators.
-
isValid
public boolean isValid(java.lang.String id)
Description copied from interface:AuthenticationProviderValidates the syntax of an id.- Specified by:
isValidin interfaceAuthenticationProvider- Parameters:
id- the id to validate.- Returns:
- true if id is well formed.
-
matches
public boolean matches(java.lang.String id, java.lang.String aclExpr)Description copied from interface:AuthenticationProviderThis 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:
matchesin 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.
-
main
public static void main(java.lang.String[] args) throws java.security.NoSuchAlgorithmExceptionCall with a single argument of user:pass to generate authdata. Authdata output can be used when setting superDigest for example.- Parameters:
args- single argument of user:pass- Throws:
java.security.NoSuchAlgorithmException
-
-