Java TokenProcessor令牌校验工具类
发布时间 - 2026-01-11 00:05:34 点击率:次关于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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
C#如何调用原生C++ COM对象详解
如何用低价快速搭建高质量网站?
Laravel如何实现多对多模型关联?(Eloquent教程)
如何在云虚拟主机上快速搭建个人网站?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
如何正确下载安装西数主机建站助手?
JavaScript常见的五种数组去重的方式
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
网站页面设计需要考虑到这些问题
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
香港服务器网站推广:SEO优化与外贸独立站搭建策略
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
如何为不同团队 ID 动态生成多个非值班状态按钮
如何确保西部建站助手FTP传输的安全性?
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Laravel Fortify是什么,和Jetstream有什么关系
WEB开发之注册页面验证码倒计时代码的实现
如何获取上海专业网站定制建站电话?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
javascript日期怎么处理_如何格式化输出
如何为不同团队 ID 动态生成多个“认领值班”按钮
JavaScript实现Fly Bird小游戏
canvas 画布在主流浏览器中的尺寸限制详细介绍
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Bootstrap CSS布局之列表
进行网站优化必须要坚持的四大原则
在centOS 7安装mysql 5.7的详细教程
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
nginx修改上传文件大小限制的方法
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel如何配置Horizon来管理队列?(安装和使用)
JavaScript如何实现继承_有哪些常用方法
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Laravel如何实现用户注册和登录?(Auth脚手架指南)
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何用VPS主机快速搭建个人网站?
利用python获取某年中每个月的第一天和最后一天
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
香港服务器建站指南:免备案优势与SEO优化技巧全解析

