- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WebSocket的⽤户⾝份认证
关于Session认证的探索
使⽤环境
SpringBoot 2.x, Spring 4.x
碰到的问题
由于WebSocket是基于TCP的⼀种独⽴实现,跟HTTP没什么关系。在WebSocket进⾏权限验证时⽆法拿到Tomcat内置的 。
session
解决⽅案
既然不能从Tomcat中拿到需要session,那倒可以在⽤户登陆时先将⽤户session⽤Map存储起来,后⾯便可以在WebSocket中利⽤Map
拿到相应的⽤户信息。
⾸先需要⼀个⽤来存储 Session 的Map容器,使⽤了单例模式保证有唯⼀实例,并且使⽤Map 存储了 JSESSIONID 以及相应的 HttpSession :
public class SessionContext {
private static SessionContext instance
private MapString, HttpSession map
private SessionContext() {
map = new HashMap()
}
public static SessionContext getInstance() {
if (instance == null) {
instance = new SessionContext()
}
return instance
}
synchronized void AddSession(HttpSession session) {
if (session != null) {
map.put(session.getId(), session)
}
}
synchronized void DelSession(HttpSession session) {
if (session != null) {
map.remove(session.getId())
}
}
public synchronized HttpSession getSession(String session_id) {
if (session_id == null) return null
return map.get(session_id)
}
}
为此需要,⼀个HttpSession监听器,监听Session的创建与销毁,并相应新增与删除Map集合中的键值对:
@WebListener
public class SessionListener implements HttpSessionListener {
private SessionContext sessionContext = SessionContext.getInstance()
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
(创建Session)
sessionContext.AddSession(httpSessionEvent.getSession())
}
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
HttpSession session = httpSessionEvent.getSession()
sessionC
您可能关注的文档
- 2022~2023国家电网招聘考试考试题库及答案解析第130期.pdf
- 2022~2023安全员考试题库及答案参考3.pdf
- 2022~2023演出经纪人考试题库及答案参考32.pdf
- 2022~2023演出经纪人考试题库及答案第697期.pdf
- 2022~2023演出经纪人考试题库及答案第801期.pdf
- 2022~2023演出经纪人考试题库及答案第82期.pdf
- 2022~2023演出经纪人考试题库及答案第936期.pdf
- 2022~2023特种设备作业考试题库及答案参考30.pdf
- 22届心理学测评卷(完整章节)题目+答案解析.pdf
- 22春“中药学”专业《药用植物学》在线作业含答案参考8.pdf
最近下载
- IDSA耐药革兰氏阴性杆菌感染治疗指南解读PPT课件.pptx VIP
- 精品解析:四川省成都市锦江区七中育才学校2022-2023学年九年级上学期期中数学试题(解析版).docx VIP
- 传播学基础教程精品课课件(全套).ppt VIP
- 危化经营单位主要负责人及安全生产管理人员培训 .pdf VIP
- 第八章半导体表面与MIS结构SemiconductorsurfaceandMIS.ppt VIP
- T_CHTIA 002-2023 科技成果评价标准实施指南.pdf
- 圆的性质定理.docx VIP
- 生产经营单位主要负责人、安全生产管理人员培训大纲.pdf VIP
- 四则混合运算100道(专项训练)-2024-2025学年五年级上册数学人教版.docx VIP
- 护理人员在急诊护理中的团队协作与沟通.pptx VIP
原创力文档


文档评论(0)