Package org.jivesoftware.openfire.auth
Class NativeAuthProvider
java.lang.Object
org.jivesoftware.openfire.auth.NativeAuthProvider
- All Implemented Interfaces:
AuthProvider
Authenticates using the native operating system authentication method. On Windows,
this means Win32 authentication; on Unix/Linux, PAM authentication. New user accounts
will be created automatically as needed.
Authentication is handled using the Shaj library. In order for this provider to work, the appropriate native library must be loaded. The appropriate native library must be manually moved from the resources/nativeAuth directory to the lib directory.
To enable this provider, set the following in the system properties:
provider.auth.className = org.jivesoftware.openfire.auth.NativeAuthProvider
provider.user.className = org.jivesoftware.openfire.user.NativeUserProvider
- nativeAuth.domain -- on Windows, the domain to use for authentication. If the value is not set, the machine's default domain will be used or standard OS auth will be used if the machine is not part of a domain. On Unix/Linux, this value specifies the PAM module to use for authentication. If the value is not set, the PAM module "other" will be used.
- Author:
- Matt Tucker
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
authenticate
(String username, String password) Returns if the username and password are valid; otherwise this method throws an UnauthorizedException.int
getIterations
(String username) getPassword
(String username) Returns the user's password.getServerKey
(String username) getStoredKey
(String username) boolean
void
setPassword
(String username, String password) Sets the user's password.boolean
Returns true if this UserProvider is able to retrieve user passwords from the backend user store.
-
Constructor Details
-
NativeAuthProvider
public NativeAuthProvider()
-
-
Method Details
-
authenticate
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.
-
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
Description copied from interface:AuthProvider
Sets the user'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.
-
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
- Specified by:
getSalt
in interfaceAuthProvider
- Throws:
UnsupportedOperationException
UserNotFoundException
-
getIterations
public int getIterations(String username) throws UnsupportedOperationException, UserNotFoundException - Specified by:
getIterations
in interfaceAuthProvider
- Throws:
UnsupportedOperationException
UserNotFoundException
-
getServerKey
public String getServerKey(String username) throws UnsupportedOperationException, UserNotFoundException - Specified by:
getServerKey
in interfaceAuthProvider
- Throws:
UnsupportedOperationException
UserNotFoundException
-
getStoredKey
public String getStoredKey(String username) throws UnsupportedOperationException, UserNotFoundException - Specified by:
getStoredKey
in interfaceAuthProvider
- Throws:
UnsupportedOperationException
UserNotFoundException
-