Class TigaseCustomAuth

  • All Implemented Interfaces:
    AuthRepository, DataSourceAware<DataRepository>, Repository, RepositoryVersionAware
    Direct Known Subclasses:
    TigaseSPAuth

    public class TigaseCustomAuth
    extends AbstractAuthRepositoryWithCredentials
    implements DataSourceAware<DataRepository>, RepositoryVersionAware
    The user authentication connector allows for customized SQL queries to be used. Queries are defined in the configuration file and they can be either plain SQL queries or stored procedures.
    If the query starts with characters: { call then the server assumes this is a stored procedure call, otherwise it is executed as a plain SQL query. Each configuration value is stripped from white characters on both ends before processing.
    Please don't use semicolon ';' at the end of the query as many JDBC drivers get confused and the query may not work for unknown obvious reason.
    Some queries take arguments. Arguments are marked by question marks '?' in the query. Refer to the configuration parameters description for more details about what parameters are expected in each query.
    Example configuration.
    The first example shows how to put a stored procedure as a query with 2 required parameters.
     add-user-query={ call TigAddUserPlainPw(?, ?) }
     

    The same query with plain SQL parameters instead:
     add-user-query=insert into users (user_id, password) values (?, ?)
     

    Created: Sat Nov 11 22:22:04 2006
    Author:
    Artur Hefczyc
    • Field Detail

      • DEF_CONNVALID_KEY

        public static final java.lang.String DEF_CONNVALID_KEY
        Query executing periodically to ensure active connection with the database.
        Takes no arguments.
        Example query:
         select 1
         
        See Also:
        Constant Field Values
      • DEF_INITDB_KEY

        public static final java.lang.String DEF_INITDB_KEY
        Database initialization query which is run after the server is started.
        Takes no arguments.
        Example query:
         update tig_users set online_status = 0
         
        See Also:
        Constant Field Values
      • DEF_ADDUSER_KEY

        public static final java.lang.String DEF_ADDUSER_KEY
        Query adding a new user to the database.
        Takes 2 arguments: (user_id (JID), password)
        Example query:
         insert into tig_users (user_id, user_pw) values (?, ?)
         
        See Also:
        Constant Field Values
      • DEF_DELUSER_KEY

        public static final java.lang.String DEF_DELUSER_KEY
        Removes a user from the database.
        Takes 1 argument: (user_id (JID))
        Example query:
         delete from tig_users where user_id = ?
         
        See Also:
        Constant Field Values
      • DEF_GETPASSWORD_KEY

        public static final java.lang.String DEF_GETPASSWORD_KEY
        Retrieves user password from the database for given user_id (JID).
        Takes 1 argument: (user_id (JID))
        Example query:
         select user_pw from tig_users where user_id = ?
         
        See Also:
        Constant Field Values
      • DEF_UPDATEPASSWORD_KEY

        public static final java.lang.String DEF_UPDATEPASSWORD_KEY
        Updates (changes) password for a given user_id (JID).
        Takes 2 arguments: (password, user_id (JID))
        Example query:
         update tig_users set user_pw = ? where user_id = ?
         
        See Also:
        Constant Field Values
      • DEF_USERLOGIN_KEY

        public static final java.lang.String DEF_USERLOGIN_KEY
        Performs user login. Normally used when there is a special SP used for this purpose. This is an alternative way to a method requiring retrieving user password. Therefore at least one of those queries must be defined: user-login-query or get-password-query.
        If both queries are defined then user-login-query is used. Normally this method should be only used with plain text password authentication or sasl-plain.
        The Tigase server expects a result set with user_id to be returned from the query if login is successful and empty results set if the login is unsuccessful.
        Takes 2 arguments: (user_id (JID), password)
        Example query:
         select user_id from tig_users where (user_id = ?) AND (user_pw = ?)
         
        See Also:
        Constant Field Values
      • DEF_USERLOGOUT_KEY

        public static final java.lang.String DEF_USERLOGOUT_KEY
        This query is called when user logs out or disconnects. It can record that event in the database.
        Takes 1 argument: (user_id (JID))
        Example query:
         update tig_users, set online_status = online_status - 1 where user_id = ?
         
        See Also:
        Constant Field Values
      • DEF_UPDATELOGINTIME_KEY

        public static final java.lang.String DEF_UPDATELOGINTIME_KEY
        See Also:
        Constant Field Values
      • DEF_USERS_COUNT_KEY

        public static final java.lang.String DEF_USERS_COUNT_KEY
        See Also:
        Constant Field Values
      • DEF_USERS_DOMAIN_COUNT_KEY

        public static final java.lang.String DEF_USERS_DOMAIN_COUNT_KEY
        See Also:
        Constant Field Values
      • DEF_LISTDISABLEDACCOUNTS_KEY

        public static final java.lang.String DEF_LISTDISABLEDACCOUNTS_KEY
        See Also:
        Constant Field Values
      • DEF_DISABLEACCOUNT_KEY

        @Deprecated
        public static final java.lang.String DEF_DISABLEACCOUNT_KEY
        Deprecated.
        See Also:
        Constant Field Values
      • DEF_ENABLEACCOUNT_KEY

        @Deprecated
        public static final java.lang.String DEF_ENABLEACCOUNT_KEY
        Deprecated.
        See Also:
        Constant Field Values
      • DEF_UPDATEACCOUNTSTATUS_KEY

        public static final java.lang.String DEF_UPDATEACCOUNTSTATUS_KEY
        See Also:
        Constant Field Values
      • DEF_ACCOUNTSTATUS_KEY

        public static final java.lang.String DEF_ACCOUNTSTATUS_KEY
        See Also:
        Constant Field Values
      • DEF_NONSASL_MECHS_KEY

        public static final java.lang.String DEF_NONSASL_MECHS_KEY
        Comma separated list of NON-SASL authentication mechanisms. Possible mechanisms are: password and digest. digest mechanism can work only with get-password-query active and only when password are stored in plain text format in the database.
        See Also:
        Constant Field Values
      • DEF_SASL_MECHS_KEY

        public static final java.lang.String DEF_SASL_MECHS_KEY
        Comma separated list of SASL authentication mechanisms. Possible mechanisms are all mechanisms supported by Java implementation. The most common are: PLAIN, DIGEST-MD5, CRAM-MD5.
        "Non-PLAIN" mechanisms will work only with the get-password-query active and only when passwords are stored in plain text format in the database.
        See Also:
        Constant Field Values
      • DEF_INITDB_QUERY

        public static final java.lang.String DEF_INITDB_QUERY
        See Also:
        Constant Field Values
      • DEF_ADDUSER_QUERY

        public static final java.lang.String DEF_ADDUSER_QUERY
        See Also:
        Constant Field Values
      • DEF_DELUSER_QUERY

        public static final java.lang.String DEF_DELUSER_QUERY
        See Also:
        Constant Field Values
      • DEF_GETPASSWORD_QUERY

        public static final java.lang.String DEF_GETPASSWORD_QUERY
        See Also:
        Constant Field Values
      • DEF_USERS_COUNT_QUERY

        public static final java.lang.String DEF_USERS_COUNT_QUERY
        See Also:
        Constant Field Values
      • DEF_USERS_DOMAIN_COUNT_QUERY

        public static final java.lang.String DEF_USERS_DOMAIN_COUNT_QUERY
        See Also:
        Constant Field Values
      • DEF_LISTDISABLEDACCOUNTS_QUERY

        public static final java.lang.String DEF_LISTDISABLEDACCOUNTS_QUERY
        See Also:
        Constant Field Values
      • DEF_UPDATEACCOUNTSTATUS_QUERY

        public static final java.lang.String DEF_UPDATEACCOUNTSTATUS_QUERY
        See Also:
        Constant Field Values
      • DEF_ACCOUNTSTATUS_QUERY

        public static final java.lang.String DEF_ACCOUNTSTATUS_QUERY
        See Also:
        Constant Field Values
      • DEF_NONSASL_MECHS

        public static final java.lang.String DEF_NONSASL_MECHS
        See Also:
        Constant Field Values
    • Constructor Detail

      • TigaseCustomAuth

        public TigaseCustomAuth()