簡體   English   中英

Openfire配置以集成MySQL的自定義數據庫

[英]Openfire configuration to Integrate custom database for MySQL

我正在嘗試在Ubuntu上為MySQL設置OpenFire。 問題是我無法通過數據庫B對用戶進行身份驗證。

這是我需要的配置

1)數據庫A保留OpenFire表。 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

非常感謝 !!!

幫不了那幾個信息。 這是您應該做的。 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 admin服務器屬性中,以避免重新引導服務器。 如果出現問題,請從openfire的OfProperty表中刪除該內容。

Manoj您的配置似乎還可以,它應該可以工作,我也有這樣的配置,它可以正常工作。

您是否嘗試調試代碼?
您是否檢查過日志以確保代碼沒有崩潰?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM