`
awdxzc
  • 浏览: 333032 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Openfire 整合自有用户系统

阅读更多

写在前面:openfire的群我们自己实现了持久化的群,所以本文不考虑群方面的用户操作。


本人使用Mysql作为openfire的数据库,自有系统的用户库也是Mysql。需要将openfire的用户全部走自己的业务系统进行授权和验证,所以需要在openfire中进行自有用户数据库的整合。


Let's go ------------------------------------------------



针对用户的验证:openfire提供的默认的处理类是DefaultAuthProvider,需要使用自己的处理类那么就需要修改为JDBCAuthProvider。



需要修改些自己需要验证的配置:



它在控制台会hidden很多比较敏感的配置,具体请参照:
http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/db-integration-guide.html



不需要修改openfire任何代码,只需要做到这里,基本上就完成了自有数据库验证的整合。重启登录,你会发现admin帐号无法登陆,请确认admin账户在自有数据库是否存在,并且密码加密方式是否正确。一切OK后admin console可以登录。 用spark客户端测试登录正常。


----------------------------------------------------------------------------------

针对用户的检索:openfire提供的默认处理类是DefaultUserProvider,需要使用自己的处理类,不然的话在用户检索那里会发现查询出来的目的库还是openfire自由的数据库用户表ofUser,修改为JDBCUserProvider。




添加一部分需要自己配置的属性:




保存重启,点击用户/组,等啊等,等好久打不开,为什么?查看源代码发现JDBCUserProvider有个地方有问题,查询出了所有的用户,显然和DefaultUserProvider不一样。查看了3.7.1和3.8.1的源代码,这一块都是没有解决的。3.8.2已经修复此BUG。参见下图:



修改:




修改这里代码重新上传openfire.jar,重启。OK。







版权声明]本站内文章,如未特别注明,均系原创或翻译之作,本人保留一切权利。本站原创及译作未经本人许可,不得用于商业用途及传统媒体。网络媒体可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。及此说明,重中之重。
分享到:
评论
1 楼 三里小龙 2013-08-19  
想请教一下,默认provider.user.className = org.jivesoftware.openfire.user.DefaultUserProvider,现在把它改成org.jivesoftware.openfire.user.JDBCUserProvider,然后重启服务器并登录,会报异常:java.lang.UnsupportedOperationException
at org.jivesoftware.openfire.user.JDBCUserProvider.createUser(JDBCUserProvider.jav a:173)
at org.jivesoftware.openfire.auth.JDBCAuthProvider.createUser(JDBCAuthProvider.jav a:404)
at org.jivesoftware.openfire.auth.JDBCAuthProvider.authenticate(JDBCAuthProvider.java,这个是什么原因造成的呢?谢谢~

相关推荐

Global site tag (gtag.js) - Google Analytics