我已经将openfire的'ofproperty'表的内容集成到了一些自定义数据库表中。默认情况下,openfire使用用户名将JID作为每个用户的标志进行分组。 在设置openfire的系统属性(一些sql语句)之后,它将使openfire中的'ofuser'table指向业务数据库的'users'表。 我不确定的是,openfire内部机制是否只识别用户名?
因为我的整个即时消息已接近完成,现在我被要求尝试使用userid替换用户名,更改将涉及我项目中的许多其他业务逻辑。我不想看到每次改变都已完成的情况,但是openfire机制不接受它。
如果我使用userid替换用户名来组装jid,并相应地更改openfire的设置属性,它还能运行吗?
希望一些经验丰富的人给我一些建议......谢谢。
答案 0 :(得分:0)
我认为如果openfire使用DefaultAuthProvider.java进行用户身份验证,这将无效。因为DefaultAuthProvider.java使用静态sql字符串
private static final String LOAD_PASSWORD =
"SELECT plainPassword,encryptedPassword FROM ofUser WHERE username=?";
因此,如果您更改了无效的系统属性。您可以执行以下两项操作之一
我认为第一个更容易