首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openfire自定义数据库登录

Openfire自定义数据库登录
EN

Stack Overflow用户
提问于 2015-01-28 09:33:36
回答 1查看 1.7K关注 0票数 0

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

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

代码语言:javascript
复制
<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登录失败

我的数据库表中有列:用户名、plainPassword、encryptedPassword、name、email、creationDate

谢谢..:)

EN

回答 1

Stack Overflow用户

发布于 2015-01-28 10:12:19

问题解决了,^_^.我需要在openfire.xml中添加以下内容:

代码语言:javascript
复制
<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表的属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28188764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档