Class JDBCAdminProvider

java.lang.Object
org.jivesoftware.openfire.admin.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 Details

    • JDBCAdminProvider

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

    • 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.