Package org.jivesoftware.openfire.auth
Class POP3AuthProvider
- java.lang.Object
-
- org.jivesoftware.openfire.auth.POP3AuthProvider
-
- All Implemented Interfaces:
AuthProvider
public class POP3AuthProvider extends Object implements AuthProvider
An AuthProvider that authenticates using a POP3 server. It will automatically create local user accounts as needed. To enable this provider, set system properties as follows:provider.auth.className = org.jivesoftware.openfire.auth.POP3AuthProviderprovider.user.className = org.jivesoftware.openfire.user.POP3UserProvider
- pop3.host -- (required) the name (or IP) of the POP3 server.
- pop.port -- the port of the POP3 server. The default value is 110 for standard connections and 995 for SSL connections.
- pop3.domain -- the mail domain (e.g. gmail.com).
- pop3.authRequiresDomain -- set this to true if the POP3 server requires a full email address for authentication (foo@example.com) rather than just a username (foo). The default value is false.
- pop3.ssl -- true if an SSL connection to the POP3 server should be used. The default is false.
- pop3.debug -- true if debugging output for the POP3 connection should be enabled. The default is false.
- pop3.authCache.enabled -- true if authentication checks should be cached locally. This will decrease load on the POP3 server if users continually authenticate. The default value is false.
- pop3.authCache.size -- the maximum size of the authentication cache (in bytes). The default value is 512 K.
- pop3.authCache.maxLifetime -- the maximum lifetime of items in the authentication cache (in milliseconds). The default value is one hour.
- Author:
- Sean Meiners
-
-
Constructor Summary
Constructors Constructor Description POP3AuthProvider()Initialiazes the POP3AuthProvider with values from the global config file.
-
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
-
-