日期:2014-05-16  浏览次数:20372 次

JSP网站与Discuz注册整合

最近做有关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;?