【问题标题】:Openfire configuration to Integrate custom database for MySQLOpenfire 配置为 MySQL 集成自定义数据库
【发布时间】:2016-06-13 14:27:24
【问题描述】:

我正在尝试在 Ubuntu for MySQL 上设置 OpenFire。问题是我无法通过数据库 B 对用户进行身份验证。

这是我需要的配置

1) 用于保存 OpenFire 表的数据库 A。 2) 现有数据库 B 包含用户通过 openfire 登录所需的用户信息

遵循自定义数据库集成的 openfire 指南。 https://www.igniterealtime.org/builds/openfire/docs/latest/documentation/db-integration-guide.html

如果有类似配置的人能够成功配置openfire,请帮助。

这里是openfire.xml,xml中提到的所有属性也已经保存在ofProp表中了..

<jive> 

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

  <database> 
    <defaultProvider> 
      <driver>com.mysql.jdbc.Driver</driver>  
      <serverURL>jdbc:mysql://localhost:3306/DBOpenFire?rewriteBatchedStatements=true</serverURL>  
      <username encrypted="true">200a0b84b1fa2jsdsdjds31c2abf99393c0a31a1de5c734edf</username>  
      <password encrypted="true">67452fbde9c80636f8486ea43932kksddfdksjdsd0b12284eac45455</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>  

  <provider> 
    <auth> 
      <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className> 
    </auth>
    <user>
      <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
    </user>
  </provider> 

  <jdbcProvider>
       <driver>com.mysql.jdbc.Driver</driver>
       <connectionString>jdbc:mysql://localhost/DBUsers?user=root&amp;password=mypasscode</connectionString>
   </jdbcProvider>

  <jdbcAuthProvider> 
    <passwordSQL>SELECT Password from tblUser where UserName=?</passwordSQL>  
    <passwordType>plain</passwordType> 
  </jdbcAuthProvider>  

  <jdbcUserProvider> 
     <loadUserSQL>SELECT * FROM tblUser where UserName=?</loadUserSQL> 
     <userCountSQL>SELECT COUNT(*) FROM tblUser</userCountSQL>
     <allUsersSQL>SELECT UserName FROM tblUser </allUsersSQL>
     <searchSQL>SELECT UserNameFROM tblUser WHERE</searchSQL>
     <usernameField>UserName</usernameField>
     <nameField>UserName</nameField>
  </jdbcUserProvider> 
</jive>

属性值:

jdbcAuthProvider.passwordSQL              SELECT UserPassword from tblUser where UserName=?
jdbcAuthProvider.passwordType             plain
jdbcProvider.driver                       com.mysql.jdbc.Driver
jdbcProvider.connectionString             jdbc:mysql://localhost:3306/DBUsers?user=root&password=mypasscode
jdbcUserProvider.loadUserSQL              SELECT * FROM tblUser where UserName=?
jdbcUserProvider.userCountSQL             SELECT COUNT(*) FROM tblUser
jdbcUserProvider.allUsersSQL              SELECT UserName FROM tblUser
jdbcUserProvider.searchSQL                SELECT UserName FROM tblUser WHERE
jdbcUserProvider.usernameField            UserName
jdbcUserProvider.nameField                UserName
jdbcUserProvider.useConnectionProvider    true
jdbcAuthProvider.useConnectionProvider    true
provider.user.className                   org.jivesoftware.openfire.user.JDBCUserProvider
provider.auth.className                   org.jivesoftware.openfire.auth.JDBCAuthProvider
admin.authorizedJIDs                      admin@example.com

非常感谢!!!

【问题讨论】:

    标签: mysql ubuntu openfire


    【解决方案1】:

    无法提供这些信息。这是你应该做的。 1-检查ubuntu是否包含要连接的mysql驱动。

    2-检查与数据库B的连接。

    provider.auth.className org.jivesoftware.openfire.auth.JDBCAuthProvider provider.user.className org.jivesoftware.openfire.user.JDBCUserProvider

    3-为 JID、电子邮件、JID 数量创建自定义查询

    4-为数据库创建自定义查询,以防您使用不明确的密码。

    5-为组创建自定义查询,以防您想使用外部名册

    仅供参考:在 openfire 管理服务器属性中插入这些查询以避免重新启动服务器。如果出现问题,请从 openfire 的 OfProperty 表中删除该内容。

    【讨论】:

    • Ubuntu 确实有 mysql 驱动程序,openfire 可以连接到数据库 A 并通过 Spark 登录到 openfire。我在配置 openfire 以对数据库 B 的使用进行身份验证时遇到问题。两个数据库都在同一台机器上。 .
    • 将 xml 添加到原始问题中。已经在 XML 以及属性表中添加了 JDBCAuthProvider 和 JDBCUserProvider。
    • 你用那个配置得到了什么结果
    • 上述配置后,甚至无法登录到openfire管理面板。配置好了吗?
    • 当你为用户使用外部数据库时使用 admin.authorizedJIDs
    【解决方案2】:

    Manoj 你的配置似乎没问题,它应该可以工作,我也有这样的配置,它工作正常。

    您是否尝试过调试代码?
    您是否检查了日志以确保代码没有崩溃?

    【讨论】:

    • 嗨 sohaib,我正在通过 spark 和 openfire 管理控制台测试 d 连接,因此不涉及任何代码/崩溃。你能在这里粘贴你的配置吗?请为 XML 和 ofProp 表。
    • Manoj,我在 ofProperty 表中有和你一样的配置,但是在 xml 中没有这样的配置,只有 ofProperty。除此之外,我在 Auth Provider 和 User Provider 类中都有自定义更改,但它们完全是特定于业务逻辑的。如果您有 Openfire 内部部署,则需要先检查日志以确认没有异常。
    • @ShoaibAhmadGondal 需要你的帮助,你可以加入聊天室吗?
    • @Bhavin 是的,我已加入受邀房间。
    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 2011-11-06
    • 2011-05-25
    • 2015-03-27
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2017-08-22
    相关资源
    最近更新 更多