Class JDBCAdminProvider

  • All Implemented Interfaces:
    AdminProvider

    public class JDBCAdminProvider
    extends Object
    implements AdminProvider
    The JDBC admin provider allows you to use an external database to define the administrators users. It is best used with the JDBCAuthProvider & JDBCGroupProvider to provide integration between your external system and Openfire. All data is treated as read-only so any set operations will result in an exception.

    To enable this provider, set the following in the system properties:

    • provider.admin.className = org.jivesoftware.openfire.admin.JDBCAdminProvider
    Then you need to set your driver, connection string and SQL statements:
    • jdbcProvider.driver = com.mysql.jdbc.Driver
    • jdbcProvider.connectionString = jdbc:mysql://localhost/dbname?user=username&password=secret
    • jdbcAdminProvider.getAdminsSQL = SELECT user FROM myAdmins

    If you want to be able to update the admin users via the UI, add the following properties:

    • jdbcAdminProvider.insertAdminsSQL = INSERT INTO myAdmins (user) VALUES (?)
    • jdbcAdminProvider.deleteAdminsSQL = DELETE FROM myAdmins WHERE user = ?

    In order to use the configured JDBC connection provider do not use a JDBC connection string, set the following property

    • jdbcAdminProvider.useConnectionProvider = true
    Author:
    Robert Marcano
    • Constructor Detail

      • JDBCAdminProvider

        public JDBCAdminProvider()
        Constructs a new JDBC admin provider.
    • Method Detail

      • assumePersistedDataIsEscaped

        protected boolean assumePersistedDataIsEscaped()
        XMPP disallows some characters in identifiers, requiring them to be escaped. This implementation assumes that the database returns properly escaped identifiers, but can apply escaping by setting the value of the 'jdbcAdminProvider.isEscaped' property to 'false'.
        Returns:
        'false' if this implementation needs to escape database content before processing.
      • getAdmins

        public List<org.xmpp.packet.JID> getAdmins()
        Description copied from interface: AdminProvider
        Returns a list of JIDs of accounts with administrative privileges.
        Specified by:
        getAdmins in interface AdminProvider
        Returns:
        The list of admin users.
      • setAdmins

        public void setAdmins​(List<org.xmpp.packet.JID> newAdmins)
        Description copied from interface: AdminProvider
        Sets the list of admin accounts, by JID.
        Specified by:
        setAdmins in interface AdminProvider
        Parameters:
        newAdmins - List of JIDs of accounts to grant admin access to.
      • isReadOnly

        public boolean isReadOnly()
        Description copied from interface: AdminProvider
        Indicates whether the admin list is read-only or not. In other words, whether an admin can change who is an admin from the Openfire admin interface.
        Specified by:
        isReadOnly in interface AdminProvider
        Returns:
        True or false if the admin list can be edited.