Overview | Package | Class | Tree | Deprecated | Index | Help
| Openfire 3.7.1 Javadoc
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jivesoftware.openfire.ldap
Class LdapAuthProvider

    java.lang.Object
      org.jivesoftware.openfire.ldap.LdapAuthProvider

All Implemented Interfaces:
  AuthProvider

    public class LdapAuthProvider

extends Object
implements 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 milleseconds. If property is not set, the default value is 7200000 (2 hours).

Author:
  Matt Tucker

Constructor Summary
`LdapAuthProvider()`

Method Summary
`void` | `authenticate(String username, String password)` Returns if the username and password are valid; otherwise this method throws an UnauthorizedException.
`void` | `authenticate(String username, String token, String digest)` Returns if the username, token, and digest are valid; otherwise this method throws an UnauthorizedException.
`String` | `getPassword(String username)` Returns the user's password.
`boolean` | `isDigestSupported()` Returns true if this AuthProvider supports digest authentication according to JEP-0078.
`boolean` | `isPlainSupported()` Returns true if this AuthProvider supports authentication using plain-text passwords according to JEP--0078.
`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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### LdapAuthProvider

    public LdapAuthProvider()

Method Detail

### isPlainSupported

    public boolean isPlainSupported()

  Description copied from interface: `AuthProvider`
  Returns true if this AuthProvider supports authentication using plain-text passwords according to JEP--0078. Plain text authentication is not secure and should generally only be used for a TLS/SSL connection.

  Specified by:
    `isPlainSupported` in interface `AuthProvider`
  Returns:
    true if plain text password authentication is supported by this AuthProvider.

### isDigestSupported

    public boolean isDigestSupported()

  Description copied from interface: `AuthProvider`
  Returns true if this AuthProvider supports digest authentication according to JEP-0078.

  Specified by:
    `isDigestSupported` in interface `AuthProvider`
  Returns:
    true if digest authentication is supported by this AuthProvider.

### authenticate

    public void authenticate(String username,
                             String password)
                      throws UnauthorizedException

  Description copied from interface: `AuthProvider`
  Returns if the username and password are valid; otherwise this method throws an UnauthorizedException.

  If `AuthProvider.isPlainSupported()` returns false, this method should throw an UnsupportedOperationException.

  Specified by:
    `authenticate` in interface `AuthProvider`
  Parameters:
    `username` - the username or full JID.
    `password` - the passwordl
  Throws:
    `UnauthorizedException` - if the username and password do not match any existing user.

### authenticate

    public void authenticate(String username,
                             String token,
                             String digest)
                      throws UnsupportedOperationException

  Description copied from interface: `AuthProvider`
  Returns if the username, token, and digest are valid; otherwise this method throws an UnauthorizedException.

  If `AuthProvider.isDigestSupported()` returns false, this method should throw an UnsupportedOperationException.

  Specified by:
    `authenticate` in interface `AuthProvider`
  Parameters:
    `username` - the username or full JID.
    `token` - the token that was used with plain-text password to generate the digest.
    `digest` - the digest generated from plain-text password and unique token.
  Throws:
    `UnsupportedOperationException`

### 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 interface `AuthProvider`
  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: `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 interface `AuthProvider`
  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 then `AuthProvider.getPassword(String)` will throw an `UnsupportedOperationException` if invoked.

  Specified by:
    `supportsPasswordRetrieval` in interface `AuthProvider`
  Returns:
    true if this UserProvider is able to retrieve user passwords from the backend user store.

Overview | Package | Class | Tree | Deprecated | Index | Help
| Openfire 3.7.1 Javadoc
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2008 Jive Software.