Openfire自定义数据库登录

时间:2015-01-28 09:33:36

标签: mysql xml database openfire

我正在尝试将Openfire与我使用Mysql工作台创建的自定义我的sql数据库连接..

我修改了openfire.xml文件,如下所示:

<jive> 
  <adminConsole> 
    <!-- Disable either port by setting the value to -1 -->  
    <port>9090</port>  
    <securePort>9091</securePort> 
  </adminConsole>  
  <locale>en</locale>  
  <!-- 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>
    -->  
  <connectionProvider> 
    <className>org.jivesoftware.database.DefaultConnectionProvider</className> 
  </connectionProvider>  
  <database> 
    <defaultProvider> 
      <driver>com.mysql.jdbc.Driver</driver>  
      <serverURL>jdbc:mysql://localhost:3306/openfire_db?rewriteBatchedStatements=true</serverURL>  
      <username encrypted="true">c130d8786ef86071bcb73f1d8da0eb34f544f389f480f60e</username>  
      <password encrypted="true">f15df01c5d651451f5f38c29332cf655ff1621d7c0e741ec</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&amp;password=hello</connectionString> 
  </jdbcProvider>  
  <provider/>  
  <jdbcAuthProvider> 
     <passwordSQL>SELECT plainPassword FROM users WHERE username=?</passwordSQL>  
     <passwordType>plain</passwordType> 
  </jdbcAuthProvider>  
  <jdbcUserProvider> 
    <loadUserSQL>SELECT name,email FROM users WHERE username=?</loadUserSQL>  
    <userCountSQL>SELECT COUNT(*) FROM users</userCountSQL>  
    <allUsersSQL>SELECT username FROM users</allUsersSQL>  
    <searchSQL>SELECT username FROM users WHERE</searchSQL>  
    <usernameField>username</usernameField>  
    <nameField>name</nameField>  
    <emailField>email</emailField> 
  </jdbcUserProvider> 
 </jive>

我没有错误,没有警告..但是当我尝试登录管理控制台时,我得到:

  

登录失败:请确保您的用户名和密码正确,并且您是管理员或主持人。

警告:

  

2015.01.28 11:31:20 org.jivesoftware.admin.LoginLimitManager - 用户从127.0.0.1失败的管理控制台登录尝试

我的数据库表用户有以下列:username,plainPassword,encryptedPassword,name,email,creationDate

谢谢.. :))

1 个答案:

答案 0 :(得分:0)

问题解决^ _ ^ ..我需要将以下内容添加到openfire.xml:

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

并更改ofProperty表的属性..