openfire外部用户身份验证

时间:2012-04-30 14:58:08

标签: xmpp openfire

我们公司需要将openfire用于xmpp聊天应用,我们希望使用现有的用户表进行身份验证,而不是使用openfire中的ofUser表。我已经在我们的服务器上安装了openfire,并将其配置为使用我们的mysql数据库,并创建了必要的表。我正在尝试按照here

找到的自定义数据库集成指南

但我无法让它发挥作用。我的配置文件如下(表名略有变化):

<jdbcProvider>
<driver>com.mysql.jdbc.Driver</driver>
<connectionString>jdbc:mysql://localhost/fueledin_winkage?user=fueledin_winkage&amp;password=845Fulton</connectionString>
</jdbcProvider>
<provider>
  <auth>
    <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
  </auth>
  <user>
    <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
  </user>
</provider>
<jdbcAuthProvider>
    <passwordSQL>SELECT password FROM users WHERE email=?</passwordSQL>
    <passwordType>md5</passwordType>
</jdbcAuthProvider>
<jdbcUserProvider>
    <loadUserSQL>SELECT email,email FROM users WHERE email=?</loadUserSQL>
    <userCountSQL>SELECT COUNT(*) FROM users</userCountSQL>
    <allUsersSQL>SELECT email FROM users</allUsersSQL>
    <searchSQL>SELECT email FROM users WHERE</searchSQL>
    <usernameField>email</usernameField>
    <nameField>email</nameField>
    <emailField>email</emailField>
</jdbcUserProvider>
<setup>true</setup>

这是一种奇怪的设置,因为用户可以在使用电子邮件登录时更改其用户名。有人可以解释我可能做错了什么,我尝试使用用户表中的用户登录到服务器但没有运气。此外,在我在浏览器中运行设置向导后,我编辑了配置脚本,如上所示,现在每次我去浏览器工具时它都会要求我再次运行设置向导,即使我再次运行它仍然要求然后。任何帮助都要提前感谢。

1 个答案:

答案 0 :(得分:3)

你必须在openfire的管理界面中设置params。这将为你完成这项工作。

如果你想在数据库中这样做,那就是表ofProperty;)

编辑:

像这样:

将所有XML节点更改为node.subnode,作为系统属性中的属性名称(在服务器管理器中)。

E.g:

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

将是

provider.auth.className
provider.user.className

属性值相同,例如provider.auth.className的值为org.jivesoftware.openfire.auth.JDBCAuthProviderprovider.user.className的值为org.jivesoftware.openfire.user.JDBCUserProvider

相关问题