Package org.jivesoftware.openfire.ldap
Class LdapAuthProvider
java.lang.Object
org.jivesoftware.openfire.ldap.LdapAuthProvider
- All Implemented Interfaces:
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 milliseconds. If property is not set, the default value is 7200000 (2 hours).
- Author:
- Matt Tucker
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final SystemProperty<Boolean>static final SystemProperty<Duration>static final SystemProperty<Long> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidauthenticate(String username, String password) Returns if the username and password are valid; otherwise this method throws an UnauthorizedException.intgetIterations(String username) Returns a SCRAM-SHA-1 iteration count for a user.getPassword(String username) Returns the user's password.Returns a SCRAM-SHA-1 salt for a user.getServerKey(String username) Returns a SCRAM-SHA-1 server key for a user.getStoredKey(String username) Returns a SCRAM-SHA-1 stored key for a user.booleanvoidsetPassword(String username, String password) Sets the user's password.booleanReturns true if this UserProvider is able to retrieve user passwords from the backend user store.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jivesoftware.openfire.auth.AuthProvider
getIterations, getSalt, getScramCredential, getServerKey, getStoredKey
-
Field Details
-
AUTH_CACHE_ENABLED
-
AUTH_CACHE_SIZE
-
AUTH_CACHE_MAX_LIFETIME
-
-
Constructor Details
-
LdapAuthProvider
public LdapAuthProvider() -
LdapAuthProvider
-
-
Method Details
-
authenticate
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
Description copied from interface:AuthProviderSets the user'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
Description copied from interface:AuthProviderReturns a SCRAM-SHA-1 salt for a user.- Specified by:
getSaltin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-
getIterations
public int getIterations(String username) throws UnsupportedOperationException, UserNotFoundException Description copied from interface:AuthProviderReturns a SCRAM-SHA-1 iteration count for a user.- Specified by:
getIterationsin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-
getServerKey
public String getServerKey(String username) throws UnsupportedOperationException, UserNotFoundException Description copied from interface:AuthProviderReturns a SCRAM-SHA-1 server key for a user.- Specified by:
getServerKeyin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-
getStoredKey
public String getStoredKey(String username) throws UnsupportedOperationException, UserNotFoundException Description copied from interface:AuthProviderReturns a SCRAM-SHA-1 stored key for a user.- Specified by:
getStoredKeyin interfaceAuthProvider- Throws:
UnsupportedOperationExceptionUserNotFoundException
-