Package org.jivesoftware.openfire.auth
Class MappedAuthProvider
- java.lang.Object
-
- org.jivesoftware.openfire.auth.MappedAuthProvider
-
- All Implemented Interfaces:
AuthProvider
public class MappedAuthProvider extends Object implements AuthProvider
AAuthProvider
that delegates to a user-specific AuthProvider. This class related to, but is distinct fromHybridAuthProvider
. The Hybrid variant of the provider iterates over providers, operating on the first applicable instance. This Mapped variant, however, maps each user to exactly one provider. To use this provider, use the following system property definition:provider.auth.className = org.jivesoftware.openfire.user.MappedAuthProvider
AuthProviderMapper
must be configured using themappedAuthProvider.mapper.className
system property. It is of importance to note that most AuthProviderMapper implementations will require additional configuration.- Author:
- Guus der Kinderen, guus@goodbytes.nl
-
-
Field Summary
Fields Modifier and Type Field Description protected AuthProviderMapper
mapper
Used to determine what provider is to be used to operate on a particular user.static String
PROPERTY_MAPPER_CLASSNAME
Name of the property of which the value is expected to be the classname of the AuthProviderMapper instance to be used by instances of this class.
-
Constructor Summary
Constructors Constructor Description MappedAuthProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
authenticate(String username, String password)
Returns if the username and password are valid; otherwise this method throws an UnauthorizedException.int
getIterations(String username)
String
getPassword(String username)
Returns the user's password.String
getSalt(String username)
String
getServerKey(String username)
String
getStoredKey(String username)
boolean
isScramSupported()
void
setPassword(String username, String password)
Sets the users's password.boolean
supportsPasswordRetrieval()
Returns true if this UserProvider is able to retrieve user passwords from the backend user store.
-
-
-
Field Detail
-
PROPERTY_MAPPER_CLASSNAME
public static final String PROPERTY_MAPPER_CLASSNAME
Name of the property of which the value is expected to be the classname of the AuthProviderMapper instance to be used by instances of this class.- See Also:
- Constant Field Values
-
mapper
protected final AuthProviderMapper mapper
Used to determine what provider is to be used to operate on a particular user.
-
-
Method Detail
-
authenticate
public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException
Description copied from interface:AuthProvider
Returns if the username and password are valid; otherwise this method throws an UnauthorizedException.- Specified by:
authenticate
in interfaceAuthProvider
- Parameters:
username
- the username or full JID.password
- the password- Throws:
UnauthorizedException
- if the username and password do not match any existing user.ConnectionException
- it there is a problem connecting to user and group systemInternalUnauthenticatedException
- if there is a problem authentication Openfire itself into the user and group system
-
getPassword
public String getPassword(String username) throws UserNotFoundException, UnsupportedOperationException
Description copied from interface:AuthProvider
Returns the user's password. This method should throw an UnsupportedOperationException if this operation is not supported by the backend user store.- Specified by:
getPassword
in 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, UnsupportedOperationException
Description copied from interface:AuthProvider
Sets the users's password. This method should throw an UnsupportedOperationException if this operation is not supported by the backend user store.- Specified by:
setPassword
in 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.UnsupportedOperationException
- if the provider does not support the operation (this is an optional operation).
-
supportsPasswordRetrieval
public boolean supportsPasswordRetrieval()
Description copied from interface:AuthProvider
Returns 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 anUnsupportedOperationException
if invoked.- Specified by:
supportsPasswordRetrieval
in interfaceAuthProvider
- Returns:
- true if this UserProvider is able to retrieve user passwords from the backend user store.
-
isScramSupported
public boolean isScramSupported()
- Specified by:
isScramSupported
in interfaceAuthProvider
-
getSalt
public String getSalt(String username) throws UserNotFoundException
- Specified by:
getSalt
in interfaceAuthProvider
- Throws:
UserNotFoundException
-
getIterations
public int getIterations(String username) throws UserNotFoundException
- Specified by:
getIterations
in interfaceAuthProvider
- Throws:
UserNotFoundException
-
getServerKey
public String getServerKey(String username) throws UserNotFoundException
- Specified by:
getServerKey
in interfaceAuthProvider
- Throws:
UserNotFoundException
-
getStoredKey
public String getStoredKey(String username) throws UserNotFoundException
- Specified by:
getStoredKey
in interfaceAuthProvider
- Throws:
UserNotFoundException
-
-