日期:2014-05-16 浏览次数:20372 次
最近做有关JSP与DISCUZ 整合,搞了好久,还是搞不定,后来发现下面这篇文章,呵呵.爽.?
?
作者?:See?
?
http://blog.sina.com.cn/s/blog_49298ed001000a99.html?
?
最近在实验室做项目用到的一个东西,拿来介绍一下。?
?
?
需求:现有行业应用网站一个,使用JSP开发,假设网址为app.com;及Discuz 论坛一个,使用PHP开发,假设网址为bbs.com。?现在希望将应用网站和论坛的用户进行整合,即,如果用户在应用网站已经登录,那么从应用网站点击链接进入论坛后将直接成为登录状态。?
?
Discuz 论坛提供的Passport(通行证)接口可以很好的实现上述需求。通行证可以在Discuz 论坛的系统设置中开启,开启通行证之后的论坛将不再接受除管理员以外的用户的登录请求,而与应用网站进行统一登录管理。整合之后的用户注册、登录、注销流程,请阅读参考资料[1]。下面介绍实现的整个流程,并给出关键代码。?
?
1?开发DiscuzPassport及Encryption两个类,实现与Discuz 一致的数据加密。原始代码由参考资料[2]给出,这里对其进行了一定程度的修改。?
?
-----DiscuzPassport.java-----?
?
import?java.io.UnsupportedEncodingException;?
import?java.util.Map;?
import?java.util.Iterator;?
import?java.util.Random;?
import?java.util.Set;?
import?sun.misc.BASE64Decoder;?
?
public?class?DiscuzPassport?{?
?
public?static?String?encrypt(String?src,?String?key)?{?
Random?random?=?new?Random();?
random.setSeed(System.currentTimeMillis());?
String?rand?=?""?+?random.nextInt()?%?32000;?