tigase.db.ldap

## Class LdapAuthProvider

- java.lang.Object
- - tigase.db.ldap.LdapAuthProvider

- All Implemented Interfaces:
    AuthRepository

      public class LdapAuthProvider
      extends Object
      implements AuthRepository

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static String[]` | `non_sasl_mechs`
    `protected static String[]` | `sasl_mechs`
    `static String` | `USER_DN_PATTERN_KEY` Example: `uid=%s,ou=people,dc=xmpp-test,dc=org`

    - ### Fields inherited from interface tigase.db.AuthRepository

      `DATA_KEY, DIGEST_ID_KEY, DIGEST_KEY, MACHANISM_KEY, PASSWORD_KEY, PROTOCOL_KEY, PROTOCOL_VAL_NONSASL, PROTOCOL_VAL_SASL, REALM_KEY, RESULT_KEY, SERVER_NAME_KEY, USER_ID_KEY, USERNAME_KEY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LdapAuthProvider()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addUser(tigase.xmpp.BareJID user, String password)` Describe `addUser` method here.
    `boolean` | `digestAuth(tigase.xmpp.BareJID user, String digest, String id, String alg)` Deprecated.
    `String` | `getResourceUri()` `getResourceUri` method returns database connection string.
    `long` | `getUsersCount()` This method is only used by the server statistics component to report number of registered users.
    `long` | `getUsersCount(String domain)` This method is only used by the server statistics component to report number of registered users for given domain.
    `void` | `initRepository(String resource_uri, Map<String,String> params)` `initRepository` method is doing initialization for database connection.
    `void` | `logout(tigase.xmpp.BareJID user)` Describe `logout` method here.
    `boolean` | `otherAuth(Map<String,Object> props)` Describe `otherAuth` method here.
    `boolean` | `plainAuth(tigase.xmpp.BareJID user, String password)` Deprecated.
    `void` | `queryAuth(Map<String,Object> authProps)` `queryAuth` returns mechanisms available for authentication.
    `void` | `removeUser(tigase.xmpp.BareJID user)` Describe `removeUser` method here.
    `void` | `updatePassword(tigase.xmpp.BareJID user, String password)` Describe `updatePassword` method here.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### non_sasl_mechs

          protected static final String[] non_sasl_mechs

    - #### sasl_mechs

          protected static final String[] sasl_mechs

    - #### USER_DN_PATTERN_KEY

          public static final String USER_DN_PATTERN_KEY

      Example: `uid=%s,ou=people,dc=xmpp-test,dc=org`
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### LdapAuthProvider

          public LdapAuthProvider()

  - ### Method Detail

    - #### addUser

          public void addUser(tigase.xmpp.BareJID user,
                     String password)
                       throws UserExistsException,
                              TigaseDBException

      Description copied from interface: `AuthRepository`
      Describe `addUser` method here.
      Specified by:
        `addUser` in interface `AuthRepository`
      Parameters:
        `user` - a `BareJID` value
        `password` - a `String` value
      Throws:
        `UserExistsException` - if an error occurs
        `TigaseDBException` - if an error occurs

    - #### digestAuth

          @Deprecated
          public boolean digestAuth(tigase.xmpp.BareJID user,
                                      String digest,
                                      String id,
                                      String alg)
                             throws UserNotFoundException,
                                    TigaseDBException,
                                    AuthorizationException

      Deprecated.
      Description copied from interface: `AuthRepository`
      `digestAuth` method performs non-sasl, digest authentication as described in non-sasl authentication XEP-0078 For now it is empty and always returns `false` as I don't have description for database with passwords.
      Specified by:
        `digestAuth` in interface `AuthRepository`
      Parameters:
        `user` - a `BareJID` value of user name
        `digest` - a `String` value password digest sum
        `id` - a `String` value session ID used for digest sum calculation.
        `alg` - a `String` value of algorithm ID used for digest sum calculation.
      Returns:
        a `boolean` value `true` on successful authentication, `false` on authentication failure.
      Throws:
        `UserNotFoundException` - if an given user name is not found in the authentication repository.
        `TigaseDBException` - if an error occurs during during accessing database;
        `AuthorizationException` - if an error occurs during authentication process.

    - #### getResourceUri

          public String getResourceUri()

      Description copied from interface: `AuthRepository`
      `getResourceUri` method returns database connection string.
      Specified by:
        `getResourceUri` in interface `AuthRepository`
      Returns:
        a `String` value of database connection string.

    - #### getUsersCount

          public long getUsersCount()

      Description copied from interface: `AuthRepository`
      This method is only used by the server statistics component to report number of registered users.
      Specified by:
        `getUsersCount` in interface `AuthRepository`
      Returns:
        a `long` number of registered users in the repository.

    - #### getUsersCount

          public long getUsersCount(String domain)

      Description copied from interface: `AuthRepository`
      This method is only used by the server statistics component to report number of registered users for given domain.
      Specified by:
        `getUsersCount` in interface `AuthRepository`
      Returns:
        a `long` number of registered users in the repository.

    - #### initRepository

          public void initRepository(String resource_uri,
                            Map<String,String> params)
                              throws DBInitException

      Description copied from interface: `AuthRepository`
      `initRepository` method is doing initialization for database connection. It may also do lazy initialization with database. Connection to database might be established during the first authentication request.
      Specified by:
        `initRepository` in interface `AuthRepository`
      Parameters:
        `resource_uri` - a `String` value of database connection string. The string must also contain database user name and password if required for connection.
      Throws:
        `DBInitException` - if an error occurs during access database. It won't happen however as in this method we do simple variable assigment.

    - #### logout

          public void logout(tigase.xmpp.BareJID user)
                      throws UserNotFoundException,
                             TigaseDBException

      Description copied from interface: `AuthRepository`
      Describe `logout` method here.
      Specified by:
        `logout` in interface `AuthRepository`
      Parameters:
        `user` - a `BareJID` value
      Throws:
        `UserNotFoundException` - if an error occurs
        `TigaseDBException` - if an error occurs

    - #### otherAuth

          public boolean otherAuth(Map<String,Object> props)
                            throws UserNotFoundException,
                                   TigaseDBException,
                                   AuthorizationException

      Description copied from interface: `AuthRepository`
      Describe `otherAuth` method here.
      Specified by:
        `otherAuth` in interface `AuthRepository`
      Parameters:
        `props` - a `Map` value
      Returns:
        a `boolean` value
      Throws:
        `UserNotFoundException` - if an error occurs
        `TigaseDBException` - if an error occurs
        `AuthorizationException` - if an error occurs

    - #### plainAuth

          @Deprecated
          public boolean plainAuth(tigase.xmpp.BareJID user,
                                     String password)
                            throws UserNotFoundException,
                                   TigaseDBException,
                                   AuthorizationException

      Deprecated.
      Description copied from interface: `AuthRepository`
      `plainAuth` method performs non-sasl, plain authentication as described in non-sasl authentication XEP-0078.
      Specified by:
        `plainAuth` in interface `AuthRepository`
      Parameters:
        `user` - a `BareJID` value of user name
        `password` - a `String` value of plain user password.
      Returns:
        a `boolean` value `true` on successful authentication, `false` on authentication failure.
      Throws:
        `UserNotFoundException` - if an given user name is not found in the authentication repository.
        `TigaseDBException` - if an error occurs during during accessing database;
        `AuthorizationException` - if an error occurs during authentication process.

    - #### queryAuth

          public void queryAuth(Map<String,Object> authProps)

      Description copied from interface: `AuthRepository`
      `queryAuth` returns mechanisms available for authentication.
      Specified by:
        `queryAuth` in interface `AuthRepository`
      Parameters:
        `authProps` - a `Map` value with parameters for authentication.

    - #### removeUser

          public void removeUser(tigase.xmpp.BareJID user)
                          throws UserNotFoundException,
                                 TigaseDBException

      Description copied from interface: `AuthRepository`
      Describe `removeUser` method here.
      Specified by:
        `removeUser` in interface `AuthRepository`
      Parameters:
        `user` - a `BareJID` value
      Throws:
        `UserNotFoundException` - if an error occurs
        `TigaseDBException` - if an error occurs

    - #### updatePassword

          public void updatePassword(tigase.xmpp.BareJID user,
                            String password)
                              throws UserNotFoundException,
                                     TigaseDBException

      Description copied from interface: `AuthRepository`
      Describe `updatePassword` method here.
      Specified by:
        `updatePassword` in interface `AuthRepository`
      Parameters:
        `user` - a `BareJID` value
        `password` - a `String` value
      Throws:
        `UserNotFoundException`
        `TigaseDBException` - if an error occurs

Copyright © 2013 Tigase. All rights reserved.