基于jwt和角色的访问控制解决方案
2024-08-25 19:34:39
0,主要解决两个问题:1身份验证(防止httpclient拼接请求),2权限控制
1,身份验证使用jwt,在java就是jjwt
jwt可以比较好的整合restful,对无状态客户端比较友好,(用session和cookie是有状态的,session由服务器维护,如果项目大了使用了分布式,
就一个session绑在一台特定的服务器上,不能很好的均衡负载
流程图:
jwt quick start
Key key = MacProvider.generateKey(); String compactJws = Jwts.builder()
.setSubject("Joe")
.signWith(SignatureAlgorithm.HS512, key)
.compact();
上面的compactJws就会产生下面的token
eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJKb2UifQ.yiV1GWDrQyCeoOswYTf_xvlgsnaVVYJM0mU6rkmRBf2T1MBl3Xh2kZii0Q9BdX5-G0j25Qv2WF4lA6jPl5GKuA
验证:
try { Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws); //OK, we can trust this JWT } catch (SignatureException e) { //don't trust the JWT!
}
2,基于角色权限控制
最新文章
- Java的多态
- logstash 添加nginx日志
- Windows 自动关机/定时关机 命令 shuntdown
- [Java Basics] multi-threading
- 提示Can't load package:dclite70.bpl解决方法
- js中window的属性
- JQ中$(document.ready())
- IE6存在的一些兼容
- (转)开源分布式搜索平台ELK(Elasticsearch+Logstash+Kibana)入门学习资源索引
- 【源码】canal和otter的高可靠性分析
- Deepin linux Compass.app安装
- Linux2:Linux目录结构
- Python3系列__01Python安装
- HybridStart发布v1.0测试版
- python异常处理与断言以及日志模块
- js验证身份证号,超准确
- java常见数据结构整理
- Mac显示同一程序的所有窗口
- Loadrunner 11 遇到的问题
- ss 命令学习
热门文章
- Unable to handle kernel NULL pointer dereference at virtual address 00000000【转】
- ES6 实现阶乘
- quartz(7)-源码分析
- 转: 在hibernate中查询使用list,map定制返回类型
- eclipse中的错误解决——The superclass ";javax.servlet.http.HttpServlet"; was not found on the Java Build Path
- iSCSI 在Linux下的模拟实验
- BZOJ 3329 Xorequ:数位dp + 矩阵快速幂
- sql内连接外连接自然连接
- Prism技术开发文档(五星级)
- 六 web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求