Overview | Package | Class | Tree | Deprecated | Index | Help
| Openfire 3.4.4 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.4.4 Javadoc
  PREV CLASS NEXT CLASS | FRAMES NO FRAMES
  SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

  Copyright © 2003-2007 Jive Software.