Package org.jivesoftware.openfire.auth
Class MappedAuthProvider
java.lang.Object
org.jivesoftware.openfire.auth.MappedAuthProvider
- All Implemented Interfaces:
AuthProvider
A
AuthProvider that delegates to a user-specific AuthProvider.
This class related to, but is distinct from HybridAuthProvider. 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 the mappedAuthProvider.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
FieldsModifier and TypeFieldDescriptionprotected final AuthProviderMapperUsed to determine what provider is to be used to operate on a particular user.static final StringName 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 -
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) getPassword(String username) Returns the user's password.getServerKey(String username) getStoredKey(String username) booleanvoidsetPassword(String username, String password) Sets the users's password.booleanReturns true if this UserProvider is able to retrieve user passwords from the backend user store.
-
Field Details
-
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:
-
mapper
Used to determine what provider is to be used to operate on a particular user.
-
-
Constructor Details
-
MappedAuthProvider
public MappedAuthProvider()
-
-
Method Details
-
authenticate
public void authenticate(String username, String password) throws UnauthorizedException, ConnectionException, InternalUnauthenticatedException 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.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: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, UnsupportedOperationException 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.UnsupportedOperationException- if the provider does not support the operation (this is an optional operation).
-
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
- Specified by:
getSaltin interfaceAuthProvider- Throws:
UserNotFoundException
-
getIterations
- Specified by:
getIterationsin interfaceAuthProvider- Throws:
UserNotFoundException
-
getServerKey
- Specified by:
getServerKeyin interfaceAuthProvider- Throws:
UserNotFoundException
-
getStoredKey
- Specified by:
getStoredKeyin interfaceAuthProvider- Throws:
UserNotFoundException
-