Package tigase.db

# Interface AuthRepository

All Superinterfaces:
  `Repository`

All Known Implementing Classes:
  `AbstractAuthRepositoryWithCredentials`, `AuthRepositoryImpl`, `AuthRepositoryMDImpl`, `AuthRepositoryMDPoolBean`, `AuthRepositoryPool`, `DrupalWPAuth`, `DummyRepository`, `JDBCRepository`, `LdapAuthProvider`, `TigaseAuth`, `TigaseCustomAuth`, `TigaseSPAuth`, `XMLRepository`

public interface AuthRepository extends Repository
Interface `AuthRepository` defines a proxy bridge between user authentication data storage and the Tigase server authentication logic. Important thing about the authentication repository is that it not only stores login credentials but also performs actual user authentication. This is because available authentication mechanisms depend on the way data are stored in the repository (database).
Created: Sun Nov 5 21:15:46 2006

Author:
  Artur Hefczyc

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static enum`
  `AuthRepository.AccountStatus`
  `static class`
  `AuthRepository.DefaultCredentials`
  `static class`
  `AuthRepository.SingleCredential`

  ## Nested classes/interfaces inherited from interface tigase.db.Repository

  `Repository.Meta, Repository.SchemaId`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DATA_KEY`
  Property key name for `otherAuth` method call.
  `static final String`
  `DIGEST_ID_KEY`
  `static final String`
  `DIGEST_KEY`
  `static final String`
  `MACHANISM_KEY`
  Property key name for `otherAuth` method call.
  `static final String`
  `PASSWORD_KEY`
  `static final String`
  `PROTOCOL_KEY`
  Property key name for `otherAuth` method call.
  `static final String`
  `PROTOCOL_VAL_NONSASL`
  Property value for `otherAuth` method call.
  `static final String`
  `PROTOCOL_VAL_SASL`
  Property value for `otherAuth` method call.
  `static final String`
  `REALM_KEY`
  Property key name for `otherAuth` method call.
  `static final String`
  `RESULT_KEY`
  Property key name for `otherAuth` method call.
  `static final String`
  `SERVER_NAME_KEY`
  Property key name for `otherAuth` method call.
  `static final String`
  `USER_ID_KEY`
  Property key name for `otherAuth` method call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addUser(BareJID user, String password)`
  `AuthRepository.AccountStatus`
  `getAccountStatus(BareJID user)`
  `long`
  `getActiveUsersCountIn(Duration duration)`
  `default Collection<String>`
  `getCredentialIds(BareJID user)`
  `default Credentials`
  `getCredentials(BareJID user, String credentialId)`
  `String`
  `getPassword(BareJID user)`
  Deprecated.
  `String`
  `getResourceUri()`
  `getResourceUri` method returns database connection string.
  `default Collection<String>`
  `getUsernames(BareJID user)`
  Deprecated.
  `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.
  `default boolean`
  `isMechanismSupported(String domain, String mechanism)`
  `default boolean`
  `isUserDisabled(BareJID user)`
  Deprecated.
  `void`
  `loggedIn(BareJID jid)`
  Do some actions on repository, when user logs in.
  `void`
  `logout(BareJID user)`
  `boolean`
  `otherAuth(Map<String,Object> authProps)`
  Deprecated.
  `void`
  `queryAuth(Map<String,Object> authProps)`
  Deprecated.
  `default void`
  `removeCredential(BareJID user, String credentialId)`
  `void`
  `removeUser(BareJID user)`
  `void`
  `setAccountStatus(BareJID user, AuthRepository.AccountStatus status)`
  `default void`
  `setCredentialsCodecs(CredentialsEncoderBean encoder, CredentialsDecoderBean decoder)`
  `default void`
  `setUserDisabled(BareJID user, Boolean value)`
  Deprecated.
  `default void`
  `updateCredential(BareJID user, String credentialId, String password)`
  `default void`
  `updateCredential(BareJID user, String credentialId, String mechanism, String data)`
  `void`
  `updatePassword(BareJID user, String password)`
  Deprecated.

  ### Methods inherited from interface tigase.db.Repository

  `initRepository`

- ## Field Details

  - ### DATA_KEY

    static final String DATA_KEY
    Property key name for `otherAuth` method call. It is used to provide an extra authentication data by the client to the authentication logic. Please note the `RESULT_KEY` property key is used to provide authentication data from the server to the client. This property is used to provide authentication data from the client to the server.
    See Also:
      - Constant Field Values

  - ### DIGEST_ID_KEY

    static final String DIGEST_ID_KEY
    See Also:
      - Constant Field Values

  - ### DIGEST_KEY

    static final String DIGEST_KEY
    See Also:
      - Constant Field Values

  - ### MACHANISM_KEY

    static final String MACHANISM_KEY
    Property key name for `otherAuth` method call. It is used to provide desired authentication mechanism to the authentication logic.
    See Also:
      - Constant Field Values

  - ### PASSWORD_KEY

    static final String PASSWORD_KEY
    See Also:
      - Constant Field Values

  - ### PROTOCOL_KEY

    static final String PROTOCOL_KEY
    Property key name for `otherAuth` method call. It is used to provide desired authentication protocol to the authentication logic.
    See Also:
      - Constant Field Values

  - ### PROTOCOL_VAL_NONSASL

    static final String PROTOCOL_VAL_NONSASL
    Property value for `otherAuth` method call. It is used to provide desired authentication NON-SASL protocol to the authentication logic.
    See Also:
      - Constant Field Values

  - ### PROTOCOL_VAL_SASL

    static final String PROTOCOL_VAL_SASL
    Property value for `otherAuth` method call. It is used to provide desired authentication SASL protocol to the authentication logic.
    See Also:
      - Constant Field Values

  - ### REALM_KEY

    static final String REALM_KEY
    Property key name for `otherAuth` method call. It is used to provide authentication realm to the authentication logic. In most cases, the realm is just a domain name.
    See Also:
      - Constant Field Values

  - ### RESULT_KEY

    static final String RESULT_KEY
    Property key name for `otherAuth` method call. It is used to provide authentication handshaking data during login process. Some authentication mechanisms require exchanging requests between the client and the server. This property key points back to the data which need to be sent back to the client.
    See Also:
      - Constant Field Values

  - ### SERVER_NAME_KEY

    static final String SERVER_NAME_KEY
    Property key name for `otherAuth` method call. It is used to provide authentication domain to the authentication logic. It is highly recommended that this property is always set, even if the authentication protocol/mechanism does not need it strictly.
    See Also:
      - Constant Field Values

  - ### USER_ID_KEY

    static final String USER_ID_KEY
    Property key name for `otherAuth` method call. It is used to provide a user ID on successful user login. Please note, the key points to the object of `BareJID` type.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### addUser

    void addUser(BareJID user, String password) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### getAccountStatus

    AuthRepository.AccountStatus getAccountStatus(BareJID user) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### getCredentials

    default Credentials getCredentials(BareJID user, String credentialId) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### getPassword

    @Deprecated String getPassword(BareJID user) throws TigaseDBException
    Deprecated.
    Throws:
      `TigaseDBException`

  - ### getResourceUri

    String getResourceUri()
    `getResourceUri` method returns database connection string.
    Returns:
      a `String` value of database connection string.

  - ### getCredentialIds

    default Collection<String> getCredentialIds(BareJID user) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### getUsernames

    @Deprecated default Collection<String> getUsernames(BareJID user) throws TigaseDBException
    Deprecated.
    Throws:
      `TigaseDBException`

  - ### getActiveUsersCountIn

    long getActiveUsersCountIn(Duration duration)
    Parameters:
      `duration` - Time range within which active users should be counted. Method is only used by statistics.
    Returns:
      number of active users in required range

  - ### getUsersCount

    long getUsersCount()
    This method is only used by the server statistics component to report number of registered users.
    Returns:
      a `long` number of registered users in the repository.

  - ### getUsersCount

    long getUsersCount(String domain)
    This method is only used by the server statistics component to report number of registered users for given domain.
    Parameters:
      `domain` - for which get the statistics
    Returns:
      a `long` number of registered users in the repository.

  - ### isMechanismSupported

    default boolean isMechanismSupported(String domain, String mechanism)

  - ### isUserDisabled

    @Deprecated default boolean isUserDisabled(BareJID user) throws TigaseDBException
    Deprecated.
    Throws:
      `TigaseDBException`

  - ### loggedIn

    void loggedIn(BareJID jid) throws TigaseDBException
    Do some actions on repository, when user logs in. (for example update `last_login_time`)
    Parameters:
      `jid` - JID of logged user.
    Throws:
      `TigaseDBException` - if an error occurs

  - ### logout

    void logout(BareJID user) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### otherAuth

    @Deprecated boolean otherAuth(Map<String,Object> authProps) throws TigaseDBException, AuthorizationException
    Deprecated.
    Throws:
      `TigaseDBException`
      `AuthorizationException`

  - ### queryAuth

    @Deprecated void queryAuth(Map<String,Object> authProps)
    Deprecated.
    `queryAuth` returns mechanisms available for authentication.
    Parameters:
      `authProps` - a `Map` value with parameters for authentication.

  - ### removeCredential

    default void removeCredential(BareJID user, String credentialId) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### removeUser

    void removeUser(BareJID user) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### setAccountStatus

    void setAccountStatus(BareJID user, AuthRepository.AccountStatus status) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### setCredentialsCodecs

    default void setCredentialsCodecs(CredentialsEncoderBean encoder, CredentialsDecoderBean decoder)

  - ### setUserDisabled

    @Deprecated default void setUserDisabled(BareJID user, Boolean value) throws TigaseDBException
    Deprecated.
    Throws:
      `TigaseDBException`

  - ### updateCredential

    default void updateCredential(BareJID user, String credentialId, String password) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### updateCredential

    default void updateCredential(BareJID user, String credentialId, String mechanism, String data) throws TigaseDBException
    Throws:
      `TigaseDBException`

  - ### updatePassword

    @Deprecated void updatePassword(BareJID user, String password) throws TigaseDBException
    Deprecated.
    Throws:
      `TigaseDBException`