- 浏览: 309832 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
di1984HIT:
不错,不错。
Jquery.LazyLoad.js插件修正版下载,实现图片延迟加载特效 -
fncj:
好东西,
freemarker常用技巧 -
xwy55555:
说得很清楚
大型网站框架的演变 -
gxz1989611:
这个东西好,我转载了~~
40 个轻量级 JavaScript 库 -
gxz1989611:
恩,这个标题真是考虑到了SEO啊!!!
这才是真正的JQuery.ajax传递中文参数的解决方法
DisCuz论坛与网站集成
参考文件 http://www.discuz.net/usersguide/advanced_passport.htm#title
1) 以admin(admin,admin)身份登陆bbs 点击系统设置 à 扩展设置à 通行证设置
2) 在通行证设置中应用程序URL地址填写网站的地址(http://localhost:8080/mall/)
3) 通行证私有密匙(1234567890)
4) 应用程序注册地址(member/regist.shtml)
5) 应用程序登陆地址(member/welcome.shtml)
6) 应用程序推出地址(member/logoff.shtml)
7) 保存退出
在Constants中设置参数
//用于discuz登陆验证和通行证
public static String DISCUZKEY="1234567890"; //通行密匙
public static String DZURL="http://localhost:82/discuz/";可改
再suning.properties中
web.url=http://localhost:8080/mall/
bbs.url=http://localhost:82/discuz/
在网站的登陆程序(在com.arvato.suning.member.web.action.loginAction)中添加
查找当前数据库如果参数正确,且用户存在则登陆bbs
//设置登陆时所需的参数username,password,time,email是必填的具体的内容见参考文件
//member为会员的模型
String info = "username=" + member.getNickname() + "&password="
+ member.getPassword() + "&time="
+ DiscuzPassport.time() + "&email=" + member.getEmail();
// Constants.DISCUZKEY是admin在discuz中设置的通行证私有密匙
String auth = DiscuzPassport.passport_encrypt(info,
Constants.DISCUZKEY);
//disforward为forward的参数 在地址栏中可以得到forward的内容
String discuzforward = disforward;
String verify = DiscuzPassport.md5("login" + auth
+ discuzforward + Constants.DISCUZKEY);
//auth和discuzford一定要经过
auth=URLEncoder.encode(auth, "UTF-8");
discuzforward=URLEncoder.encode(discuzforward, "UTF-8");
//登陆discuz的路径 action ,auth,forward,verifty是必需的不能少,如果错了报Illegal request等错误,祥见参考文件
String disurl = PropertiesMgt.getPropertiesKey(Constants.PROPERTIES_FILE_PATH, "bbs.url")+"api/passport.php?action=login&auth=" + auth
+ "&forward=" + discuzforward + "&verify=" + verify;
//跳转到设置好的路径,注意redirect一定为true
request.setAttribute("disurl", disurl);
forward = new ActionForward(disurl);
forward.setRedirect(true);
return forward;
在网站的注销程序(com.arvato.suning.member.web.action.LoginOffAction)中
Member memberModel = (Member) request.getSession().getAttribute(Constants.SESSION_MEMBER_MODEL);
request.getSession().removeAttribute(Constants.SESSION_MEMBER_MODEL);
//得到如果注销discuz后跳转的路径
String discuzforward = request.getParameter("forward");
//得到配置文件中网站所在的ip及路径
String weburl = PropertiesMgt.getPropertiesKey(Constants.PROPERTIES_FILE_PATH, "web.url");
//得到配置文件中discuz所在的ip及路径
String discuzurl = PropertiesMgt.getPropertiesKey(Constants.PROPERTIES_FILE_PATH, "bbs.url");
//如果得到了forward则可以设定discuzforward的跳转路径
if (discuzforward != null && !discuzforward.equals("")){
discuzforward = weburl+"/member/welcome.shtml";
//verify为discuz注销时需要的通行证包括(logout:action的动作,discuzforward:跳转的路径,Constants. DISCUZKEY admin设置在 discuz的通行证私有密匙);
String verify = DiscuzPassport.md5("logout" + discuzforward+ Constants.DISCUZKEY);
//disurl为调用discuz注销的实际路径需要 action,forward,discuz路径
String disurl = discuzurl+"api/passport.php?action=logout&auth=&forward="
+ discuzforward + "&verify=" + verify;
return new ActionForward(disurl, true);
}
else{
return mapping.findForward(Constants.SUCCESS_KEY);
}
package com.arvato.suning.util;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.Date;
import java.util.Random;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DiscuzPassport {
/**
* 通行证编码
*
* @param txt
* @param key
* @return
*/
public static String passport_encrypt(String txt, String key) {
Random random = new Random();
int dd = random.nextInt(32000);
String encryptKey = md5(String.valueOf(dd));
byte[] keybyte = encryptKey.getBytes();
byte[] txtbyte = txt.getBytes();
int ctr = 0;
int j = 0;
byte[] tmp = new byte[2 * txtbyte.length];
for (int i = 0; i < txt.length(); i++) {
ctr = ctr == keybyte.length ? 0 : ctr;
tmp[j++] = keybyte[ctr];
tmp[j++] = xor(txtbyte[i], keybyte[ctr++]);
}
return new BASE64Encoder().encode(passport_key(tmp, key));
}
/**
* 通行证密匙处理函数
*
* @param btxt
* @param key
* @return
*/
public static byte[] passport_key(byte[] btxt, String key) {
key =md5(key);
byte[] keyAry = key.getBytes();
int ctr = 0;
byte[] tmp = new byte[btxt.length];
for (int i = 0; i < btxt.length; i++) {
ctr = (ctr == keyAry.length) ? 0 : ctr;
tmp[i] = xor(btxt[i], keyAry[ctr++]);
}
return tmp;
}
/**
* 通行证解码
*
* @param txt
* @param key
* @return
* @throws IOException
*/
public String passport_decrypt(String txt, String key) throws IOException {
byte[] t = new BASE64Decoder().decodeBuffer(txt);
byte[] btxt = passport_key(t, key);
byte[] btmp = new byte[btxt.length];
int j = 0;
for (int i = 0; i < btxt.length; i++, j++)
btmp[j] = xor(btxt[i], btxt[++i]);
return btmp.toString();
}
/**
* 异或操作
发表评论
-
Kaptcha使用
2012-07-04 10:18 1922简单的装备起来很简单,网上一大把,就不说了。 ... -
kaptcha 验证码在spring mvc 中的使用
2012-07-04 10:11 2099... -
Java编程中“为了性能”尽量要做到的一些地方
2012-05-29 16:09 1005下面是参考网络资源总结的一些在Java编程中尽可能要做到的 ... -
freemarker常用技巧
2012-05-03 10:21 312991. freemarker 简介 ... -
Spring邮件发送(可带附件,模板,群发,异步发送等功能)
2011-09-20 16:19 2393... -
Quartz
2011-09-14 16:35 1484博客 ... -
eclipse下启动tomcat出现Setting property 'source' to 'org.eclipse.jst.jee.server: '错误的
2011-06-08 16:08 3454在eclipse中启动tomcat时 ... -
Maven常用插件使用说明之deploy
2011-06-02 23:37 5341Maven的deploy插件用于把Maven自动构 ... -
Hudson+Maven+SVN 快速搭建持续集成环境
2011-06-01 10:35 1704hudson 是一个可扩展的持 ... -
struts2 中使用 chain Result 时 actionMessage 和 actionError 未复制的原因
2011-05-24 22:43 2189在网上查询N久,未解决。 一说必须使用 chain Res ... -
Quartz时间规则
2011-03-07 16:26 1978* * * * * ... -
Spring Quartz 任务调度
2011-03-07 16:07 1513关 ... -
可以设置你提交代码是必须写注释,可以规定长度至少为多少
2010-12-23 13:58 3792不少开发员提交修改的时候都不写注释,导致查看历史时很费劲,也不 ... -
Tomcat UTF-8 乱码问题解决办法
2010-12-20 16:13 2231关于java的乱码,一直是双字节字符环境开发者的问题,不同 ... -
eclipse中将java项目转换为web项目
2010-11-19 16:03 28581、进入项目目录,找到.project文件,打开。 2、 ... -
poi 新手教程
2010-10-28 15:10 1270poi 新手教程 Jakarta_POI 使用Ja ... -
Subversion Windows迁移到Linux服务器的步骤
2010-06-01 09:59 1479首先在Windows上,使用svnadmin dump res ... -
JAVA读写Properties文件
2009-04-30 21:05 3374JAVA读写Properties文件 ... -
Tomcat out of memory解决
2009-03-01 23:09 6872Tomcat 默认可以使用的内存为 128MB ,在较大型 ... -
Tomcat加入到系统服务中
2009-01-20 09:55 1497命令行使用sc命令.关于sc命令的详解,请自 ...
相关推荐
这篇讲解将深入探讨如何在你的网站中集成Discuz的登录、注册和退出功能,以实现更流畅的用户体验和高效的用户管理。 一、 Discuz论坛登录集成 1. API接口:Discuz提供了API接口供外部系统调用,你可以通过API来...
这个项目虽然在设计和功能上可能无法与互联网上的大型知名网站相媲美,但它为学习和理解J2EE应用程序开发提供了宝贵的实践案例。 **J2EE技术介绍** J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的...
+X3.1与通达OA2013增强版集成方法解析 #### 一、通达OA2013增强版概述 通达OA2013增强版是由中国兵器工业信息中心通达信科自主研发的一款网络智能办公系统,旨在为企业提供高效、便捷的办公自动化解决方案。该系统...
Discuz X2.5是一款非常流行的社区论坛软件,而CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议,广泛应用于多应用系统中,以实现用户只需一次登录即可访问所有系统。...
NT BBS与RTX的集成为企业提供了一个全面的沟通解决方案,将论坛的开放性与即时通讯的高效性相结合,极大地提升了团队协作的效率和便捷性。对于需要构建内部社区和强化内部沟通的企业来说,这是一项值得投资的技术...
7.2 (论坛) 通过本集成安装包,您可以立即全新安装上述产品到您的站点。 ------------------------------------------- 安装方法 ------------------------------------------- 注意: 本集成包仅适合您的...
X2,一款知名的社区论坛系统,内置了UCenter组件,它允许与其他应用如通达OA2011实现用户数据的同步,使得用户在一个平台上登录后,无需再次登录就能在另一个平台上自由活动。这种集成方式大大提升了用户体验,同时...
《XpShop网店系统与Discuz 2.0论坛集成详解》 在电子商务领域,一套稳定、功能完善的网店系统是企业在线业务的核心。本文将详细探讨"网店系统XpShop(捆绑集成Discuz 2.0论坛)"这一dotnet电子商务系统源代码,以及其...
X2.5与CAS3.5的集成是提高社区论坛安全性、便利性的有效手段。通过单点登录,管理员可以统一管理用户账户,用户则能享受到无缝切换应用的体验。然而,集成过程涉及代码修改和服务器配置,需要一定的技术基础,因此...
Board 论坛系统(简称 Discuz! 论坛,中国国家版权局著作权登记号 2006SR11895)是一个采用 PHP 和 MySQL 等其他多种数据库构建的高效论坛解决方案.作为商业软件产品,Discuz! 在代码质量,运行效率,负载能力,安全等级,...
对于开发者来说,Discuz.NET版提供了API和Web服务,允许与其他系统集成,如SNS社交网络、电子商务平台等。通过API,开发者可以实现数据同步,比如用户信息、帖子内容的导入导出,增强了系统的可扩展性。 在安全性...
X3.1社区论坛与通达OA2013增强版办公自动化软件进行集成,利用Discuz!自带的UCenter系统实现用户信息的同步与单点登录功能。 首先,我们需要了解什么是Discuz! X3.1。Discuz! X3.1是一个由康盛创想(北京)科技有限...
论坛的一种扩展,它允许管理员集成第三方短信服务提供商,以便通过短信进行用户验证和通知。安装此插件后,用户在注册或重置密码时可以接收到短信验证码,增强了账户的安全性。此外,还可以用于发送论坛活动消息,...
Discuz是中国知名的开源社区软件,广泛应用于各类网站,其核心特性是提供了一个强大且灵活的论坛管理平台。 这个插件适用于Discuz 2.5到3.1版本,这意味着它经过了多次更新和优化,以适应Discuz系统的变化。对于...
"Discuz论坛桌面显示"是指通过特定的方式将Discuz论坛集成到桌面环境中,以便用户无需通过浏览器就能直接访问和操作论坛。这种方式通常是为了提供更加便捷的用户体验,特别是在与企业内部的通达OA(Office ...
进行深度定制,如优化性能、增加新功能、调整界面布局,甚至与其他系统集成。同时,Discuz! 社区和第三方开发者提供了丰富的插件和模块,使得这个平台具有极高的可扩展性。 总的来说,"discuz完整源码下载"涵盖了...
在本文中,我们将详细探讨如何利用Discuz内核构建一个电影资源网站,包括电影门户和论坛,并结合提供的教程,帮助你快速上手。 首先,电影网站源码的搭建基础是Discuz,它是一款基于PHP和MySQL的社区论坛软件。...
【Discuz论坛网站行业模版】是一款专为搭建论坛型网站设计的专业模板,适用于各种行业,如技术交流、教育咨询、兴趣爱好等。这款模版以其丰富的功能、易用性和高度自定义性,成为了开发者们快速构建具有社区互动功能...
1. 本插件仅适用于Discuz!7.0测试版,其他版本不能保证正常使用。 2. 修改config.uch.php文件(附件包里) 如果您的UCHome和Discuz数据在同一库里,请按照Discuz根目录下的config.inc.php修改,否则请按照UCHome根...
《Discuz论坛源代码详解及应用指南》 Discuz是一款广泛应用的开源社区论坛软件,以其强大的功能和灵活性深受广大站长喜爱。本篇文章将深入解析Discuz论坛源代码,旨在帮助开发者更好地理解和掌握这款社区平台的核心...