使用openfire时,userid字段可以替换用户名字段来组装JID吗?

时间:2014-02-25 02:35:15

标签: database xmpp openfire

我已经将openfire的'ofproperty'表的内容集成到了一些自定义数据库表中。默认情况下,openfire使用用户名将JID作为每个用户的标志进行分组。 在设置openfire的系统属性(一些sql语句)之后,它将使openfire中的'ofuser'table指向业务数据库的'users'表。 我不确定的是,openfire内部机制是否只识别用户名

因为我的整个即时消息已接近完成,现在我被要求尝试使用userid替换用户名,更改将涉及我项目中的许多其他业务逻辑。我不想看到每次改变都已完成的情况,但是openfire机制不接受它。

如果我使用userid替换用户名来组装jid,并相应地更改openfire的设置属性,它还能运行吗?

希望一些经验丰富的人给我一些建议......谢谢。

1 个答案:

答案 0 :(得分:0)

我认为如果openfire使用DefaultAuthProvider.java进行用户身份验证,这将无效。因为DefaultAuthProvider.java使用静态sql字符串

private static final String LOAD_PASSWORD =
        "SELECT plainPassword,encryptedPassword FROM ofUser WHERE username=?";

因此,如果您更改了无效的系统属性。您可以执行以下两项操作之一

  1. 根据您的需要更改DefaultAuthProvider.java(内部源代码)中的LOAD_PASSWORD字符串,然后编译并享受:)
  2. 通过实施AuthProvider接口编写您自己的AuthProvider
  3. 我认为第一个更容易