关于TokenProcessor令牌校验工具类废话不多说了,直接给大家贴代码了,一切内容就在下面一段代码中,具体代码详情如下所示:
public class TokenProcessor {
private long privious;// 上次生成表单标识号得时间值
private static TokenProcessor instance = new TokenProcessor();
public static String FORM_TOKEN_KEY = "FORM_TOKEN_KEY";
private TokenProcessor() {
}
public static TokenProcessor getInstance() {
return instance;
}
/**
* 验证请求中得标识号是否有效,如果请求中的表单标识与当前用户session中的相同,返回结果true=
*/
public synchronized boolean isTokenValid(HttpServletRequest request) {
// 为避免session对象不存在时候创建Session对象
HttpSession session = request.getSession(false);
if (session == null) {
return false;
}
String saved = (String) session.getAttribute(FORM_TOKEN_KEY);
if (saved == null) {
return false;
}
String token = (String) request.getParameter(FORM_TOKEN_KEY);
if (token == null) {
return false;
}
return saved.equals(token);
}
/**
* 验证请求中得标识号是否有效,如果请求中的表单标识与当前用户session中的相同,返回结果true=
*/
public synchronized boolean isTokenValid(HttpServletRequest request,String token) {
// 未避免session对象不存在时候创建Session对象
HttpSession session = request.getSession(false);
if (session == null) {
return false;
}
String saved = (String) session.getAttribute(FORM_TOKEN_KEY);
if (saved == null) {
return false;
}
if (token == null) {
return false;
}
return saved.equals(token);
}
/**
* 清除存储在当前用户session中的表单标识号
*/
public synchronized void reset(HttpServletRequest request) {
HttpSession session = request.getSession(false);
if (session == null) {
return;
}
session.removeAttribute(FORM_TOKEN_KEY);
}
/**
* 产生表单标识号并将之保存在当前用户得session中
*/
public synchronized void saveToken(HttpServletRequest request) {
HttpSession session = request.getSession();
try {
byte id[] = session.getId().getBytes();
long current = System.currentTimeMillis();
if (current == privious) {
current++;
}
privious = current;
byte now[] = String.valueOf(current).getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(id);
md.update(now);
String token = toHex(md.digest());
session.setAttribute(FORM_TOKEN_KEY, token);
} catch (NoSuchAlgorithmException e) {
}
}
/**
* 将一个字节数转换成十六进制得字符串
*/
public String toHex(byte buffer[]) {
StringBuffer sb = new StringBuffer(buffer.length * 2);
for (int i = 0; i < buffer.length; i++) {
sb.append(Character.forDigit((buffer[i] & 0x60) >> 4, 16));
sb.append(Character.forDigit(buffer[i] & 0x0f, 16));
}
return sb.toString();
}
}
以上所述是小编给大家介绍的Java TokenProcessor令牌校验工具类,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# tokenprocessor
# 校验工具类
# java单点登录(SSO)的实现
# java冷知识:javac AbstractProcessor详解
# 详解Java8与Runtime.getRuntime().availableProcessors()
# Java redisson实现分布式锁原理详解
# Java使用Redisson分布式锁实现原理
# Java编程redisson实现分布式锁代码示例
# 入门到精通Java SSO单点登录原理详解
# 表单
# 令牌
# 给大家
# 不存在
# 小编
# 中得
# 就在
# 在此
# 说了
# 不多
# 所示
# 转换成
# 所述
# 给我留言
# 将之
# 感谢大家
# 为避免
# 疑问请
# 有任何
# request
相关文章:
建站之星logo尺寸如何设置最合适?
如何通过西部数码建站助手快速创建专业网站?
如何选择网络建站服务器?高效建站必看指南
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
家具网站制作软件,家具厂怎么跑业务?
如何用虚拟主机快速搭建网站?详细步骤解析
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何构建满足综合性能需求的优质建站方案?
如何选购建站域名与空间?自助平台全解析
如何选择高效稳定的ISP建站解决方案?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
如何撰写建站申请书?关键要点有哪些?
如何高效生成建站之星成品网站源码?
,怎么在广州志愿者网站注册?
建站之星2.7模板:企业网站建设与h5定制设计专题
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
建站之星微信建站一键生成小程序+多端营销系统
制作销售网站教学视频,销售网站有哪些?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何快速查询网站的真实建站时间?
济南企业网站制作公司,济南社保单位网上缴费步骤?
公司网站设计制作厂家,怎么创建自己的一个网站?
C++时间戳转换成日期时间的步骤和示例代码
如何通过主机屋免费建站教程十分钟搭建网站?
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
建站之星与建站宝盒如何选择最佳方案?
官网网站制作腾讯审核要多久,联想路由器newifi官网
公司门户网站制作流程,华为官网怎么做?
如何获取上海专业网站定制建站电话?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
C#怎么创建控制台应用 C# Console App项目创建方法
如何正确下载安装西数主机建站助手?
如何通过NAT技术实现内网高效建站?
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何在Windows 2008云服务器安全搭建网站?
Swift中switch语句区间和元组模式匹配
建站之星备案流程有哪些注意事项?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何配置IIS站点权限与局域网访问?
文字头像制作网站推荐软件,醒图能自动配文字吗?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何在建站主机中优化服务器配置?
网站制作的步骤包括,正确网址格式怎么写?
如何在橙子建站上传落地页?操作指南详解
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
*请认真填写需求信息,我们会在24小时内与您取得联系。