FilterSecurityInterceptor详解
我们已经有了认证,有了请求的封装,有了Session的关联…还缺一个:由什么控制哪些资源是受限的,这些受限的资源需要什么权限,需要什么角色…这一切和访问控制相关的操作,都是由FilterSecurityInterceptor完成的。
FilterSecurityInterceptor的工作流程用笔者的理解可以理解如下:FilterSecurityInterceptor从SecurityContextHolder中获取Authentication对象,然后比对用户拥有的权限和资源所需的权限。前者可以通过Authentication对象直接获得,而后者则需要引入我们之前一直未提到过的两个类:SecurityMetadataSource,AccessDecisionManager。理解清楚决策管理器的整个创建流程和SecurityMetadataSource的作用需要花很大一笔功夫,这里,暂时只介绍其大概的作用。
在JavaConfig的配置中,我们通常如下配置路径的访问控制:
@Override
protected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/resources/**", "/signup", "/about").permitAll().antMatchers("/admin/**").hasRole("ADMIN").antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')").anyRequest().authenticated().withObjectPostProcessor(new ObjectPostProcessor<FilterSecurityInterceptor>() {public <O extends FilterSecurityInterceptor> O postProcess(O fsi) {fsi.setPublishAuthorizationSuccess(true);return fsi;}});
}
在ObjectPostProcessor的泛型中看到了FilterSecurityInterceptor,以笔者的经验,目前并没有太多机会需要修改FilterSecurityInterceptor的配置。
FilterSecurityInterceptor详解相关推荐
- Spring Security应用详解(集成SpringBoot)
Spring Security应用详解 集成SpringBoot 工作原理 认证流程 授权流程 集成SpringBoot 1.Spring Boot介绍 Spring Boot是一套Spring的快速 ...
- Spring Security 详解
0. 简介 Spring Security 是 Spring家族中的一个安全管理框架.相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富. 一般来说中大型的项目都是 ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
- docker常用命令详解
docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...
- 通俗易懂word2vec详解词嵌入-深度学习
https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...
- 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法
深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...
- CUDA之nvidia-smi命令详解---gpu
nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...
- Bert代码详解(一)重点详细
这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...
- CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
最新文章
- C语言的单链表实现队列
- NSPredicate
- 团队作业9--beta版本测试报告及发布说明
- javascript:面向对象编程基础:继承
- python创建虚拟环境命令_Python创建虚拟环境报错
- Navicat中无法自定义标量值函数的问题
- printf如何消后续0_Hello World背后的故事:如何在Linux上编译C语言程序
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_08-新增页面-前端-Api调用...
- linux重启oracle 各种方法
- 关于IOC反射错误(无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性...)的诊断办法...
- linux patch 命令小结
- mmdetection自定义模型
- Excel如何复制一摸一样的表格或建立副本
- linux公社_如何在Linux上搭建个人流媒体服务器
- Domain Adaptation and Graph Neural Networks
- 怎么知道网站是否被黑 服务器是否被入侵呢
- 高企认定人员及研发费要求?
- 如何编写出优秀的代码
- 一种将pkl转成excel的弯道[可以实现有点奇怪,以防excel显示不全]
- 快速切换IP的批处理!
热门文章
- 拍视频用30帧还是60帧更好,帧率如何设置60帧的问题
- 如何不靠运气变得富有 (十四) —— 特殊技能(specific knowledge)极富创造性或技术性
- jtf_rs_defresources_srp_v引起的问题 同义词无数据 基表有数据
- 阿里云服务器申请免费ssl证书
- java抽象类详细介绍
- edge保存页面html,Edge浏览器怎么保存网页 保存网页方法介绍
- linux微信登陆失败,微信登不上去怎么办 微信登陆失败解决方法
- java getbytes_JAVA的getBytes()方法
- 名词后面用过去分词的具体用法是怎么样的?
- 怎么在线把QLV格式转成MP4