Hi,
I need to use an external users table of another mysql database.
I read the guide and with the help of this message I have configured new openfire.xml file.
When I tried to access to my web control panel (http://server:9090), openfire asked me to reconfigure all settings.
is it normal? Because I had already configured the server with mysql. Now I just need to use an external table for users.
Thanks.
wroot
2
It shouldn’t do any harm to run this setup again and connect it to the same database.
it seemed odd. Nevertheless, I tried to redo the web configuration wizard of openfire.
Unfortunately, the server still takes users from the main mysql database of openfire.
I want to better sum up the situation.
Now I have a single database, called openfire, which also contains the users table.
Instead I want to move only the users table to another database called myapp, leaving the entire configuration in openfire database.
Is it possibile? I think so from what I read in the guide.
So I just changed the openfire.xml configuration file that I write below:
<?xml version="1.0" encoding="UTF-8"?>
<jive> <adminConsole> <port>9090</port> <securePort>9091</securePort> </adminConsole> <locale>en</locale> <connectionProvider> <className>org.jivesoftware.database.DefaultConnectionProvider</className> </connectionProvider> <database>
<!-- THIS SHOULD BE OPENFIRE DATABASE THAT CONTAINS SETTINGS -->
<defaultProvider> <driver>com.mysql.jdbc.Driver</driver> <serverURL>jdbc:mysql://localhost:3306/openfire</serverURL> <username>DbOpenfireUser</username> <password>DbOpenfirePassword</password> <testSQL>select 1</testSQL> <testBeforeUse>true</testBeforeUse> <testAfterUse>true</testAfterUse> <minConnections>5</minConnections> <maxConnections>25</maxConnections> <connectionTimeout>1.0</connectionTimeout> </defaultProvider> </database> <!-- THIS SHOULD BE MYAPP DATABASE THAT CONTAINS USERS TABLE -->
<jdbcProvider> <driver>com.mysql.jdbc.Driver</driver> <connectionString>jdbc:mysql://localhost/myapp?user=dbMyappUser&password=dbMyappPassword</connectionString> </jdbcProvider> <provider> <auth> <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className> </auth> <user> <className>org.jivesoftware.openfire.user.JDBCUserProvider</className> </user> </provider> <jdbcAuthProvider> <passwordSQL>SELECT pass FROM users WHERE user=?</passwordSQL> <passwordType>plain</passwordType> </jdbcAuthProvider> <jdbcUserProvider> <loadUserSQL>SELECT name,email FROM users WHERE user=?</loadUserSQL> <userCountSQL>SELECT COUNT(*) FROM users</userCountSQL> <allUsersSQL>SELECT user FROM users</allUsersSQL> <searchSQL>SELECT user FROM users WHERE</searchSQL> <usernameField>user</usernameField> <nameField>name</nameField> <emailField>email</emailField> </jdbcUserProvider>
<admin/> <log> <debug> <enabled>true</enabled> </debug> </log>
</jive>
This configuration does not work because I always see the list of users stored in the openfire database.