=======20160627 Begin ========
更正:通过多次尝试,和openfire源码分析,发现openfire是不能以插件形式替换默认登录机制的.会提示找不到自定义的Provider,因为openfire查找Provider会在openfire/lib目录下查找,并不会在openfire/plugins/下查找.所以解决方法是:把写好的Provider打成jar包,放到openfire/lib下,再替换默认的登录机制,即可实现登录机制替换.
替换后,会出现不少问题.具体的问题可以根据异常方法栈找到解决方法,一般是因为:换了登录机制后,必须要重写许多方法,比如createUser等,否则,当你在控制台上新建用户时,就会出现异常.
=======20160627 End========
前言:
我的openfire使用的是内置的数据库,如果不是内置的数据库,解决方案也类似.
亲,如果你还不会配Openfire,或是还不会写openfire的 插件,或是还不会用Ant编译插件,可以参看我转载的这篇文章:http://blog.youkuaiyun.com/lc0817/article/details/51379432
先说说我是如何替换默认登录机制的(如果你不关心过程,只关心结果,可以跳过前言部分)
1.通过百度,发现客户端认证与UserProvider,AuthProvider这个两接口有关.(这里只分析UserProvider,authProvider类似)
2.利用Eclipse,找到UserProvider接口的所有实现类,有CrowdUserProvider,DefaultUserProvider,HybridUserProvider等等.
3.聪明的你,看到DefaultUserProvider就应该和我有一样的想法了.

本文介绍了如何在Openfire 4.0.2中替换默认的用户登录认证机制,通过分析源码和修改内嵌数据库脚本,将自定义的UserProvider类打包放入lib目录,从而实现登录机制替换。过程中遇到的问题如控制台新建用户异常,需要重写相应方法。此外,鉴权插件的实现与UserProvider类似,通过替换'provider.auth.className'。
最低0.47元/天 解锁文章
2555

被折叠的 条评论
为什么被折叠?



