This is my Openfire.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file stores bootstrap properties needed by Openfire.
Property names must be in the format: "prop.name.is.blah=value"
That will be stored as:
<prop>
<name>
<is>
<blah>value</blah>
</is>
</name>
</prop>
Most properties are stored in the Openfire database. A
property viewer and editor is included in the admin console.
-->
<!-- root element, all properties must be under this element -->
<jive>
<adminConsole>
<!-- Disable either port by setting the value to -1 -->
<port>9090</port>
<securePort>9091</securePort>
</adminConsole>
<locale>en</locale>
<admin>
<authorizedUsernames>super</authorizedUsernames>
</admin>
<!-- Network settings. By default, Openfire will bind to all network interfaces.
Alternatively, you can specify a specific network interfaces that the server
will listen on. For example, 127.0.0.1. This setting is generally only useful
on multi-homed servers. -->
<!--
<network>
<interface></interface>
</network>
-->
<!-- SPDY Protocol is npn.
(note: npn does not work with Java 8)
add -Xbootclasspath/p:/OPENFIRE_HOME/lib/npn-boot.jar to .vmoptions file -->
<!--
<spdy>
<protocol>npn</protocol>
</spdy>
-->
<connectionProvider>
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
</connectionProvider>
<database>
<defaultProvider>
<driver>com.mysql.jdbc.Driver</driver>
<serverURL>jdbc:mysql://localhost:3306/samkit?rewriteBatchedStatements=true</se rverURL>
<username encrypted="true">d8300c2ab590632295caaf97f214bf33535b3d158e270fef</username>
<password encrypted="true">24aa3ac201756b9912ca972fee52c1757e67392b5077a917c5a055b217c36a 27</password>
<testSQL>select 1</testSQL>
<testBeforeUse>false</testBeforeUse>
<testAfterUse>false</testAfterUse>
<minConnections>5</minConnections>
<maxConnections>25</maxConnections>
<connectionTimeout>1.0</connectionTimeout>
</defaultProvider>
</database>
<setup>true</setup>
<jdbcProvider>
<driver>com.mysql.jdbc.Driver</driver>
<connectionString>jdbc:mysql://localhost/openfire_db?user=root&password=hel lo</connectionString>
</jdbcProvider>
<provider>
<auth>
<className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
</auth>
<user>
<className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
</user>
<group>
<className>org.jivesoftware.openfire.group.JDBCGroupProvider</className>
</group>
</provider>
<jdbcAuthProvider>
<passwordSQL>SELECT password FROM users WHERE username=?</passwordSQL>
<passwordType>plain</passwordType>
</jdbcAuthProvider>
<jdbcUserProvider>
<loadUserSQL>SELECT name,email FROM user WHERE username=?</loadUserSQL>
<userCountSQL>SELECT COUNT(*) FROM user</userCountSQL>
<allUsersSQL>SELECT username FROM user</allUsersSQL>
<searchSQL>SELECT username FROM user WHERE</searchSQL>
<usernameField>username</usernameField>
<nameField>name</nameField>
<emailField>email</emailField>
</jdbcUserProvider>
</jive>
This is mysql side ofProperty table queries:
UPDATE `samkit`. `OfProperty` SET propValue = 'org.jivesoftware.openfire.user.JDBCUserProvider' WHERE name = 'provider.user.className';
UPDATE `samkit`. `OfProperty` SET propValue = 'org.jivesoftware.openfire.auth.JDBCAuthProvider' WHERE name = 'provider.auth.className';
INSERT INTO `samkit`. `OfProperty` VALUES ('jdbcProvider.driver', 'com.mysql.jdbc.Driver'),
('JdbcProvider.connectionString', 'jdbc:mysql://localhost:3306/samkit?User=root&password=password'),
('Admin.authorizedJIDs', 'admin @ localhost, test @ localhost'),
('JdbcAuthProvider.passwordSQL', 'SELECT password FROM user WHERE username =?'),
('JdbcAuthProvider.passwordType', 'plain'),
('JdbcUserProvider.loadUserSQL', 'SELECT username, email FROM user WHERE username =?'),
('JdbcUserProvider.userCountSQL', 'SELECT COUNT (*) FROM user'),
('JdbcUserProvider.allUsersSQL', 'SELECT username FROM user'),
('JdbcUserProvider.searchSQL', 'SELECT username FROM user WHERE'),
('JdbcUserProvider.usernameField', 'username'),
('JdbcUserProvider.nameField', 'username'),
('JdbcUserProvider.emailField', 'email');
insert into user values(1,'super','super','super@kloudscript.net','Password@1234');
I tried to connect with user super, and got error like :
frontend side: Login failed: make sure your username and password are correct and that you're an admin or moderator.
Error.log:
2015.07.08 17:02:16 org.jivesoftware.openfire.auth.JDBCAuthProvider - Exception in JDBCAuthProvider
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
One more issue is with openfire.xml is that, all the changes are reverted back to default when restart the server....