Package org.jivesoftware.openfire.ldap
Class LdapAuthProvider
- java.lang.Object
-
- org.jivesoftware.openfire.ldap.LdapAuthProvider
-
- All Implemented Interfaces:
AuthProvider
public class LdapAuthProvider extends Object implements AuthProvider
Implementation of auth provider interface for LDAP authentication service plug-in. Only plaintext authentication is currently supported.Optionally, an authentication cache can be enabled. When enabled, a hashed version of the user's password is cached for a variable length of time (2 hours by default). This can decrease load on the directory and preserve some level of service even when the directory becomes unavailable for a period of time.
ldap.authCache.enabled-- true to enable the auth cache.ldap.authCache.size-- size in bytes of the auth cache. If property is not set, the default value is 524288 (512 K).ldap.authCache.maxLifetime-- maximum amount of time a hashed password can be cached in milleseconds. If property is not set, the default value is 7200000 (2 hours).
- Author:
- Matt Tucker
-
-
Constructor Summary
Constructors Constructor Description LdapAuthProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidauthenticate(String username, String password)Returns if the username and password are valid; otherwise this method throws an UnauthorizedException.intgetIterations(String username)StringgetPassword(String username)Returns the user's password.StringgetSalt(String username)StringgetServerKey(String username)StringgetStoredKey(String username)booleanisScramSupported()voidsetPassword(String username, String password)Sets the users's password.booleansupportsPasswordRetrieval()Returns true if this UserProvider is able to retrieve user passwords from the backend user store.
-
-
-
Method Detail
-
authenticate
public void authenticate(String username, String password) throws UnauthorizedException
Description copied from interface:AuthProviderReturns if the username and password are valid; otherwise this method throws an UnauthorizedException.- Specified by:
authenticatein interfaceAuthProvider- Parameters:
username- the username or full JID.password- the password- Throws:
UnauthorizedException- if the username and password do not match any existing user.
-
getPassword
public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException
Description copied from interface:AuthProviderReturns the user's password. This method should throw an UnsupportedOperationException if this operation is not supported by the backend user store.- Specified by:
getPasswordin interfaceAuthProvider- Parameters:
username- the username of the user.- Returns:
- the user's password.
- Throws:
UserNotFoundException- if the given user's password could not be loaded.UnsupportedOperationException- if the provider does not support the operation (this is an optional operation).
-
setPassword
public void setPassword(String username, String password) throws UserNotFoundException
Description copied from interface:AuthProviderSets the users's password. This method should throw an UnsupportedOperationException if this operation is not supported by the backend user store.- Specified by:
setPasswordin interfaceAuthProvider- Parameters:
username- the username of the user.password- the new plaintext password for the user.- Throws:
UserNotFoundException- if the given user could not be loaded.
-
supportsPasswordRetrieval
public boolean supportsPasswordRetrieval()
Description copied from interface:AuthProviderReturns true if this UserProvider is able to retrieve user passwords from the backend user store. If this operation is not supported thenAuthProvider.getPassword(String)will throw anUnsupportedOperationExceptionif invoked.- Specified by:
supportsPasswordRetrievalin interfaceAuthProvider- Returns:
- true if this UserProvider is able to retrieve user passwords from the backend user store.
-
isScramSupported
public boolean isScramSupported()
- Specified by:
isScramSupportedin interfaceAuthProvider
-
getSalt
public String getSalt(String username) throws UnsupportedOperationException, UserNotFoundException
- Specified by:
getSaltin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-
getIterations
public int getIterations(String username) throws UnsupportedOperationException, UserNotFoundException
- Specified by:
getIterationsin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-
getServerKey
public String getServerKey(String username) throws UnsupportedOperationException, UserNotFoundException
- Specified by:
getServerKeyin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-
getStoredKey
public String getStoredKey(String username) throws UnsupportedOperationException, UserNotFoundException
- Specified by:
getStoredKeyin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-
-