文档章节

Springsecurity之SecurityContextHolderStrategy

克虏伯
 克虏伯
发布于 08/19 00:36
字数 187
阅读 10
收藏 1

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x

先上一张图:

                                           图1 SecurityContextHolderStrategy的三个实现类

1. ThreadLocalSecurityContextHolderStrategy

    它里面使用的是ThreadLocal,如下List-1所示:

    List-1 

private static final ThreadLocal<SecurityContext> contextHolder = new ThreadLocal<SecurityContext>();

2.InheritableThreadLocalSecurityContextHolderStrategy

    它里面使用的是InheritableThreadLocal,如下List-2所示:

    List-2

private static final ThreadLocal<SecurityContext> contextHolder = new InheritableThreadLocal<SecurityContext>();

    ThreadLocal和InheritableThreadLocal之间是有区别的,InheritableThreadLocal的作用更广,这里就不再深入。

3.GlobalSecurityContextHolderStrategy

    它里面使用的是静态属性,如下List-3所示:

    List-3

private static SecurityContext contextHolder;

 

© 著作权归作者所有

共有 人打赏支持
上一篇: VPN记录
下一篇: Redis之命令记录
克虏伯

克虏伯

粉丝 15
博文 318
码字总数 106998
作品 0
渝北
程序员
私信 提问
加载中

评论(3)

O
OSC_LKaiog

引用来自“汉斯-冯-拉特”的评论

引用来自“OSC_LKaiog”的评论

你好,请问下,文章中的类图,用什么软件画的?
Intellij idea中,在java类上,鼠标右键->Diagrams->show diagram,就得到这个类图了

好的,谢谢!
克虏伯
克虏伯

引用来自“OSC_LKaiog”的评论

你好,请问下,文章中的类图,用什么软件画的?
Intellij idea中,在java类上,鼠标右键->Diagrams->show diagram,就得到这个类图了
O
OSC_LKaiog
你好,请问下,文章中的类图,用什么软件画的?
使用Spring Security开发基于表单的认证(一)

使用Spring Security开发基于表单的认证(一) SpringSecurity核心功能: 认证(你是谁) 授权(你能干什么) 攻击防护(防止伪造身份) 使用springsecurity的默认安全机制: 访问接口时,会弹...

JS_HCX
04/29
0
0
SpringBoot+mybatis+springsecurity实现用户角色数据库管理

SpringSecurity是专门针对基于Spring项目的安全框架,充分利用了依赖注入和AOP来实现安全管控。在很多大型企业级系统中权限是最核心的部分,一个系统的好与坏全都在于权限管控是否灵活,是否...

ben4
2017/11/24
0
0
【SpringSecurity】用户自定义认证

自定义用户认证逻辑 处理用户信息获取逻辑-UserDetailsService 用户信息被封装在一个接口里面的UserDetailsService,由SpringSecurity提供,如下: 该接口里面有一个loadUserByUsername方法,...

zlt995768025
05/13
0
0
Spring Security权限框架理论与实战演练

本章首先让大家学习到Spring Security权限框架的架构,之后大家可以学习到Spring Security权限框架的核心概念,包括拦截器、数据库管理、缓存、自定义决策等等,之后会手把手带大家基于Sprin...

芥末无疆sss
10/18
0
0
Springsecurity之SecurityContext

先上一张图,如下图1所示,SecurityContext只有俩个方法,即getAuthentication()和setAuthentication(),如下: 图1 SecurityContext的类图 图2 SecurityContextHolder 而SecurityContextHold...

克虏伯
09/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

babel6升级到7,jest-babel报错:Requires Babel "^7.0.0-0", but was loaded with "6.26.3".

自从将前端环境更新到babel7,jest-babel之前是基于babel6的,执行时候就会报:Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 很烦,因为连续帮好几台电脑修复这个问题,所以记...

曾建凯
23分钟前
1
0
探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部