Xmpp openfire外部用户身份验证

Xmpp openfire外部用户身份验证,xmpp,openfire,Xmpp,Openfire,我们公司需要将openfire用于xmpp聊天应用程序,我们希望使用现有的用户表进行身份验证,而不是openfire中的ofUser表。我已经在我们的服务器上安装了openfire,并将其配置为使用mysql数据库,它已经创建了必要的表。我正在尝试按照找到的自定义数据库集成指南进行操作 但我不能让它工作。我的配置文件如下(表名略有更改): com.mysql.jdbc.Driver jdbc:mysql://localhost/fueledin_winkage?user=fueledin_wi

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

但我不能让它工作。我的配置文件如下(表名略有更改):


com.mysql.jdbc.Driver
jdbc:mysql://localhost/fueledin_winkage?user=fueledin_winkage&密码=845Fulton
org.jivesoftware.openfire.auth.jdbauthProvider
org.jivesoftware.openfire.user.JDBCUserProvider
从电子邮件=?
md5
选择email,email FROM users,其中email=?
从用户中选择计数(*)
选择来自用户的电子邮件
选择来自以下用户的电子邮件:
电子邮件
电子邮件
电子邮件
真的

这是一种奇怪的设置,因为用户可以随时更改用户名,以便使用电子邮件登录。有人能解释一下我可能做错了什么吗?我试着和我们用户表中的用户一起登录服务器,但没有成功。此外,在浏览器中运行安装向导后,我将配置脚本编辑为如上所示,现在每次我转到浏览器工具时,它都会要求我再次运行安装向导,即使我再次运行安装向导,之后它仍然会问我。感谢您的帮助。

您必须在openfire的管理界面中设置参数。这将为你做这项工作

如果要在数据库中执行此操作,请访问属性的表

编辑:

像这样:

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

例如:


属性值相同,例如
provider.auth.className
的值是
org.jivesoftware.openfire.auth.jdbauthProvider
provider.user.className
的值是
org.jivesoftware.openfire.user.jdbcuservider
您必须在openfire的管理界面中设置参数。这将为你做这项工作

如果要在数据库中执行此操作,请访问属性的表

编辑:

像这样:

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

例如:


属性值是相同的,例如
provider.auth.className
的值是
org.jivesoftware.openfire.auth.jdbauthProvider
,而
provider.user.className
的值是
org.jivesoftware.openfire.user.jdbcuservider

您能详细描述一下吗?谢谢你能详细描述一下吗?谢谢,我只是想知道,你有没有把它安装好并运行起来。我很想知道它是如何工作的,因为我目前正面临着同样的问题。干杯…我只是想知道,你有没有把它启动并运行。我很想知道它是如何工作的,因为我目前正面临着同样的问题。干杯
<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>
<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