Using an External DB for users to connect to Openfire

Hi!

I would like to use Openfire with Sparkweb.

I use Sparkweb into a php session (the users only have to type login and password one time), so in order to run the session i need to connect users into a mysql database. I would like to use these users with openfire.

The problem is that openfire need encrypted passwords. I tried to add an external DB to openfire but i’m not sure i’m right.

I can’t run a php session if I don’t know how openfire encrypt the password, and if openfire doesn’t support plain password

my openfire.xml =>

I use the external database litii,

table users,

login password email.

when i lunch openfire for the first time i was using an other database called “openfire” , then i modified openfire.xml and after reloading of the service, 24tables from openfire had been added to my external database “litii”.

<?xml version="1.0" encoding="UTF-8"?>
<port>9090</port> 

<securePort>9091</securePort>

fr

<className>org.jivesoftware.database.DefaultConnectionProvider</className>
<defaultProvider>

  <driver>com.mysql.jdbc.Driver</driver> 

  <serverURL>jdbc:mysql://localhost:8889/litii</serverURL> 

  <username>litii</username> 

  <password>litii</password> 

  <!-- <testSQL>select 1</testSQL>  --> 

  <testBeforeUse>true</testBeforeUse> 

  <testAfterUse>true</testAfterUse> 

  <minConnections>5</minConnections> 

  <maxConnections>25</maxConnections> 

  <connectionTimeout>1.0</connectionTimeout>

</defaultProvider>
<driver>com.mysql.jdbc.Driver</driver> 

<connectionString>jdbc:mysql://localhost:8889/litii?user=litii&amp;password=lit ii</connectionString>
<auth>

  <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>

</auth> 

<user>

  <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>

</user>
<passwordSQL>SELECT password FROM users WHERE login=?</passwordSQL> 

<passwordType>plain</passwordType>
<loadUserSQL>SELECT CONCAT login,password FROM users WHERE login=?</loadUserSQL> 

<userCountSQL>SELECT COUNT(*) FROM users</userCountSQL> 

<allUsersSQL>SELECT login FROM users</allUsersSQL> 

<searchSQL>SELECT login FROM users WHERE</searchSQL> 

<usernameField>login</usernameField> 

<nameField>CONCAT(login)</nameField> 

<emailField>email</emailField>

admin,testuser

true

<?xml version="1.0" encoding="UTF-8"?>
<port>9090</port> 

<securePort>9091</securePort>

fr

<className>org.jivesoftware.database.DefaultConnectionProvider</className>
<defaultProvider>

  <driver>com.mysql.jdbc.Driver</driver> 

  <serverURL>jdbc:mysql://localhost:8889/litii</serverURL> 

  <username>litii</username> 

  <password>litii</password> 

  <!-- <testSQL>select 1</testSQL>  --> 

  <testBeforeUse>true</testBeforeUse> 

  <testAfterUse>true</testAfterUse> 

  <minConnections>5</minConnections> 

  <maxConnections>25</maxConnections> 

  <connectionTimeout>1.0</connectionTimeout>

</defaultProvider>
<driver>com.mysql.jdbc.Driver</driver> 

<connectionString>jdbc:mysql://localhost:8889/litii?user=litii&amp;password=lit ii</connectionString>
<auth>

  <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>

</auth> 

<user>

  <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>

</user>
<passwordSQL>SELECT password FROM users WHERE login=?</passwordSQL> 

<passwordType>plain</passwordType>
<loadUserSQL>SELECT CONCAT login,password FROM users WHERE login=?</loadUserSQL> 

<userCountSQL>SELECT COUNT(*) FROM users</userCountSQL> 

<allUsersSQL>SELECT login FROM users</allUsersSQL> 

<searchSQL>SELECT login FROM users WHERE</searchSQL> 

<usernameField>login</usernameField> 

<nameField>CONCAT(login)</nameField> 

<emailField>email</emailField>

admin,testuser

true

When i tried to open the web admin panel, the browser return theses errors :

java.lang.UnsupportedOperationException
     at org.jivesoftware.openfire.user.JDBCUserProvider.createUser(JDBCUserProvider.java:238)
     at org.jivesoftware.openfire.auth.JDBCAuthProvider.createUser(JDBCAuthProvider.java:368)
     at org.jivesoftware.openfire.auth.JDBCAuthProvider.authenticate(JDBCAuthProvider.java:152)
     at org.jivesoftware.openfire.auth.AuthFactory.authenticate(AuthFactory.java:158)
     at org.jivesoftware.openfire.admin.login_jsp._jspService(login_jsp.java:149)
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
     at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:66)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:42)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:70)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:146)
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
     at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
     at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
     at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
     at org.mortbay.jetty.Server.handle(Server.java:324)
     at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
     at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
     at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
     at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
     at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
     at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
     at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

Exception :

I’m lost right now.

I would like to know if I can use plain password with openfire, is that possible?

Please help me