Spring Security --- authorizeRequests配置

8 篇文章 2 订阅
订阅专栏

目录

自定义配置类之访问权限

匹配顺序规则

访问控制包含

访问控制url匹配

访问控制方法

角色、权限判断

使用注解进行角色权限控制

自定义403异常返回处理


  • 自定义配置类之访问权限

  • http.authorizeRequests()主要是对url进行访问权限控制
  • 通过这个方法来实现url授权操作
  • 支持链式写法

  • 匹配顺序规则

  • 在所有匹配规则中取所有规则的交集
  • 配置顺序影响了之后授权效果
  • 越是具体的应该放在前面,越是笼统的应该放到后面
  • 访问控制包含

    • 访问控制url匹配
    • 访问控制方法
    • 角色判断
    • 权限判断
  • 访问控制url匹配

  • anyRequest()
  • 表示匹配所有的url请求

  • antMatcher(String regx)
  • 传递一个ant表达式参数,表示匹配所有满足ant表达式的请求
  • ant表达式中特殊字符解释
  • antMatcher(HttpMethod.*, String regx)
  • 传递一个请求方法类型参数加ant表达式参数,表示匹配所有满足ant表达式的指定请求方式的url
  • regexMatchers(String regexPattern)
  • 传递一个参数使用正则表达式进行匹配
  • 和antMatchers()主要的区别就是参数,antMatchers()参数是ant表达式,而regexMatchers()参数是正则表达式
  • 演示案例: 使用正则表达式放行一个名称以demo结尾的js文件,让用户可以匿名访问

  • regexMatchers(HttpMethod.*, String regexPattern)
  • 演示案例: 使用正则表达式放行一个名称以demo结尾的js文件,让用户可以通过get请求匿名访问

  • 访问控制方法

  • 角色、权限判断

  • 预置了两个用户,给用户也设置了权限, 现在用这两个用户来演示一下角色和权限的访问控制

  • hasRole()
  • 演示案列: 具有admin权限的用户才可以访问role.html

  • hasAnyRole()

  • hasAuthority()

  • hasAnyAuthority()

  • access()
  • 上面实现的访问控制的方法都可以使用access()来代替,因为他们本质上都是调用了access()

  • 使用注解进行角色权限控制

  • 首先如果要启动spring security提供的角色权限注解的话,需要在配置类上添加@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)注解
  • 这样才能开启@Secured和@PreAuthorize注解

  • @Secured注解的使用

  • 判断是否具有角色权限,匹配的字符串需要添加前缀“ROLE_角色权限”
  • 作用:在用户向浏览器发送一个请求时会去访问控制器中的方法,然后在访问此控制器中的方法之前会先去UserDetailsService用户细节实现类的实现方法中return的User对象查看是否具有@Secured注解中指定的角色
  • 如果有指定的角色,那么系统允许用户访问此控制器方法,否则,系统不允许访问此控制器方法
  • @PreAuthorize注解的使用

  • 进入方法之前进行角色权限认证
  • 作用:在浏览器发送一个请求后,会访问控制器中的对应的方法,@PreAuthorize注解 会在访问控制器中的方法之前进行权限认证,看看UserDetailsService用户细节实现类中对应的用户有没有相应的权限,如果有那么该用户发送的请求可以进入控制器中对应的方法,如果没有相应的权限,那么用户发送的请求不能进去控制器中对应的方法;
  • @PostAuthorize注解的使用

  • 方法执行之后再判断用户的角色权限
  • 响应结果获取到"in",匹配,说明权限可以访问

  • 响应结果获取到"out",不匹配,说明权限不足, 抛出403异常

  • 作用:在访问控制器中的相关方法之后(方法的return先不访问),进行权限认证,去看看UserDetailsService用户细节实现类中用户是否有对应的权限,如果有的话,那么控制器方法的最后一句return语句会执行,否则,控制器方法的最后一句return语句不会执行
  • 自定义403异常返回处理

  • 首先, 自定义403异常处理器

  • 其次, 在spring security自定义配置类中注入该处理器对象,并通过http设置

  • 重启项目,再次访问,当无权限访问时就是使用自定义的403进行处理响应
spring-security-crypto-5.5.2-API文档-中文版.zip
06-04
赠送jar包:spring-security-crypto-5.5.2.jar; 赠送原API文档:spring-security-crypto-5.5.2-javadoc.jar; 赠送源代码:spring-security-crypto-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-...
Spring Security(十四):5.4 Authorize Requests
weixin_30767835的博客
12-17 4521
Our examples have only required users to be authenticated and have done so for every URL in our application. We can specify custom requirements for our URLs by adding multiple children to ourhttp.aut...
SpringSecurity权限管理框架系列(六)-Spring Security框架自定义配置类详解(二)之authorizeRequests配置详解
最爱嫣夜来
03-24 9308
1、预置演示环境 这个演示环境继续沿用 SpringSecurit权限管理框架系列(五)-Spring Security框架自定义配置类详解(一)之formLogin配置详解的环境。 2、自定义配置类之请求授权详解
Spring Security之基于HttpRequest配置权限
Evan_L的博客
03-24 1487
前面我们探索了基于方法的权限配置方式,今天我们聊聊最为常用的基于HttpRequest的权限配置方式。
请求授权(Authorize Requests)
热门推荐
苏美尔人的天空
08-23 3万+
我们的案例目前使用的是WebSecurityConfigurerAdapter中默认的HttpSecurity对象的配置,该配置是要求应用中所有url的访问都需要进行验证。我们也可以自定义哪些URL需要权限验证,哪些不需要。只需要在我们的SecurityConfig类中覆写configure(HttpSecurity http)方法即可。 protected void configure(H
http.authorizeRequests()详解
lyy的博客
04-05 2550
表示可以匿名访问匹配的URL。访问控制方法都很简单, 只要匹配到url后直接在后面追加调用这个方法就行了,链式调用特别简单,不演示了。如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问。下面分别讲一下url匹配规则都有哪些,权限控制方法都有哪些。如果有参数,参数表示角色,则其中任何一个角色可以访问。如果有参数,参数表示权限,则其中任何一个权限可以访问。如果有参数,参数表示角色,则其角色可以访问。如果有参数,参数表示权限,则其权限可以访问。表示所匹配的URL都不允许被访问。
SpringSecurity授权(访问控制)
wyy的博客
10-30 5471
一、 访问控制url匹配 在前面讲解了认证中所有常用配置,主要是对httpSecurity.formLogin()进行操作。而在配置类中httphttpSecurity.authorizeRequests()主要是对url进行控制,也就是我们所说的授权(访问控制)。httpSecurity.authorizeRequests()也支持连缀写法,可以有很多url匹配规则和很多权限控制方法。这些内容进行各种组合就形成了Spring Security中的授权。 在所有匹配规则中取所有规则的交集。配置顺序影响了之
Spring Security(五):权限配置
Shair911的博客
02-09 1697
TODO
spring-security-oauth2文档
最新发布
03-26
spring-security-oauth2-boot-reference-2.6.8 是最后一版的官方文档
spring-security-core-5.3.9.RELEASE-API文档-中文版.zip
07-14
赠送jar包:spring-security-core-5.3.9.RELEASE.jar; 赠送原API文档:spring-security-core-5.3.9.RELEASE-javadoc.jar; 赠送源代码:spring-security-core-5.3.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
spring-security-oauth2-2.3.5.RELEASE-API文档-中文版.zip
05-09
赠送jar包:spring-security-oauth2-2.3.5.RELEASE.jar; 赠送原API文档:spring-security-oauth2-2.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-2.3.5.RELEASE-sources.jar; 赠送Maven依赖信息...
spring-security-jwt-1.0.10.RELEASE-API文档-中文版.zip
05-09
赠送jar包:spring-security-jwt-1.0.10.RELEASE.jar; 赠送原API文档:spring-security-jwt-1.0.10.RELEASE-javadoc.jar; 赠送源代码:spring-security-jwt-1.0.10.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
Spring Security6 全新写法,大变样!
江南一点雨的专栏
06-14 4458
自定义 JSON 登录也和之前旧版不太一样了。小伙伴们知道,Spring Security 中默认的登录接口数据格式是 key-value 的形式,如果我们想使用 JSON 格式来登录,那么就必须自定义过滤器或者自定义登录接口,下面松哥先来和小伙伴们展示一下这两种不同的登录形式。Spring Security 默认处理登录数据的过滤器是 UsernamePasswordAuthenticationFilter,在这个过滤器中,系统会通过。
Spring Security 接口认证鉴权入门实践指南
互联网从业者/大数据架构师/全栈开发者
01-11 3017
Web API 接口服务场景里,用户的认证和鉴权是很常见的需求,Spring Security 据说是这个领域里事实上的标准,实践下来整体设计上确实有不少可圈可点之处,也在一定程度上印证了小伙们经常提到的 “太复杂了” 的说法也是很有道理的。 本文以一个简单的 SpringBoot Web 应用为例,重点介绍以下内容: 演示 Spring Security 接口认证和鉴权的配置方法; 以内存和数据库为例,介绍认证和鉴权数据的存储和读取机制; 若干模块的自定义实现,包括:认证过滤器、认证或鉴权失败处理器等
spring security——学习笔记(day02)-基于默认的表单认证实现自定义登录页面
键上艺术家
12-18 1204
目录 3.表单认证 接下来学习基于表单认证的适用方式,由简单逐步深入学习,开始吧! 3.表单认证 默认的表单认证已经学了请看 2.3.3 ,现在产生了一些使用疑问, 1.不想使用security自带的登录页面,怎么自定义登陆页面? 2.想使用数据库操作用户的增删改查怎么办? 下面一一对应学习。 首先先解释一下 WebSecurityConfigurerAdapter 类中重写了三个 configure 方法:可跳过。 1.认证管理器配置方法 :void configure(Aut..
Spring Security HttpSecurity.authorizeRequests
Claroja
03-19 5923
http.authorizeRequests() .antMatchers("/login.html").permitAll()//放行/login.html,不需要认证 // .antMatchers("/css/**","/js/**","/images/**").permitAll()//放行静态资源 // .antMatchers("/**/*.png").permitAll()//放行...
SpringSecurity——HttpSecurity常用方法
允诺@晴天的博客
01-28 9798
文章目录HttpSecurity 常用方法及说明HttpSecurity常用方法详解antMatcher与antMatchers的区别以及使用场景requestMatchers()authorizeRequests()匹配规则URL匹配保护URL登录login登出logout多个antMatchers在Spring HttpSecurity 常用方法及说明 通常我们在使用Spring Securty的时候会继 WebSecurityConfigurerAdapter,通过以下方法可配置拦截什么URL、设置
spring-boot-starter-security 配置
03-29
Spring Boot 项目中使用 Spring Security,需要添加 spring-boot-starter-security 依赖。以下是一个简单的配置示例: 1. 添加依赖 在 pom.xml 文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 2. 配置权限 在 Spring Security 中,权限(Authority)是指用户可以执行的操作。可以通过配置权限来限制用户的访问。 ``` @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/user/**").hasAnyRole("ADMIN", "USER") .antMatchers("/**").permitAll() .and().formLogin() .and().logout().logoutSuccessUrl("/login?logout"); } @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("admin").password("{noop}admin123").roles("ADMIN") .and() .withUser("user").password("{noop}user123").roles("USER"); } } ``` 在上面的配置中,我们定义了三个权限: - /admin/**:只有 ADMIN 角色的用户可以访问 - /user/**:只有 ADMIN 或 USER 角色的用户可以访问 - /**:所有用户都可以访问 最后,我们使用 inMemoryAuthentication() 方法来定义两个用户和它们的角色。 3. 配置登录和退出 在上面的配置中,我们使用 formLogin() 方法来配置登录页面和处理登录请求的 URL。同时,我们也使用 logout() 方法来配置退出登录的 URL 和成功退出后的跳转页面。 ``` .and().formLogin() .and().logout().logoutSuccessUrl("/login?logout"); ``` 这里我们配置了退出登录后跳转到登录页面,并添加了一个参数表示已经退出登录。 4. 配置 CSRF 在 Spring Security 中,默认开启了 CSRF(Cross-site Request Forgery)保护,可以有效防止跨站点攻击。如果你的应用程序不需要 CSRF 保护,可以通过以下配置关闭: ``` @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); } } ``` 5. 配置 HTTPS 在 Spring Security 中,可以通过以下配置开启 HTTPS 支持: ``` @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.requiresChannel() .anyRequest().requiresSecure(); } } ``` 以上就是使用 spring-boot-starter-security 进行 Spring Security 配置的示例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Spring-异常处理(10种讲解) 45885
  • 使用 GitHub Actions 实现项目的持续集成(CI) 15304
  • SQL触发器 14336
  • MySQL5.x与8.0 6796
  • Mybatis-Plus id生成策略控制 5236

分类专栏

  • 功能方案 2篇
  • DevOps实践 14篇
  • 业务 1篇
  • 论文-分布式 5篇
  • 大学项目集 5篇
  • 技术书籍 6篇
  • 分布式 7篇
  • 缓存 5篇
  • 思维模型 2篇
  • Stackoverflow 1篇
  • Mybatis源码 2篇
  • Spring源码 14篇
  • MySQL源码 2篇
  • Redis源码 5篇
  • 程序开发问题集 6篇
  • ElasticSearch 6篇
  • RabbitMQ 5篇
  • Docker 2篇
  • JVM 8篇
  • 网络编程 1篇
  • 并发&JUC 13篇
  • Java基础 34篇
  • Spring Security 8篇
  • SpringCloud 7篇
  • SpringBoot 14篇
  • Web & Vue & ECharts 5篇
  • Mybatis-Plus 7篇
  • Mybatis 15篇
  • Spring 40篇
  • SpringMVC 11篇
  • Maven 8篇
  • Redis 12篇
  • MySQL 24篇
  • JDBC 9篇
  • 面试直通-数据库 3篇
  • 操作系统 19篇
  • 计算机网络 30篇
  • 计算机组成原理 3篇
  • 设计模式 8篇
  • Servlet 5篇
  • 数据结构 27篇
  • 红黑树 3篇
  • 莫队 8篇
  • 加强 & 杂项 5篇
  • 分块 2篇
  • 树上启发式合并 3篇
  • 重链剖分 6篇
  • 线段树 4篇
  • tire 3篇
  • Linux 5篇

最新评论

  • Git服务器(中心仓库(裸仓库))搭建

    Kwan的解忧杂货铺: 博主的博客是我的学习良师,每篇文章都充满了启发,让我得到了更多的智慧,每一次阅读都是一次知识的盛宴,让我增长了不少见识,你的博文总是给予我新的思考和启发,真的很感谢你一直以来的辛勤付出。期待你的未来更新。

  • 使用 GitHub Actions 实现项目的持续集成(CI)

    天演L: 学到了,又一个加分点

大家在看

  • How to maintain a riding floor scrubber
  • 【简报】VITA 74 (VNX)总结
  • Cortex系列详解
  • Working principle of hand-push floor scrubber 436
  • 三种常见的排序方法

最新文章

  • Cookie的含义
  • 单点登录SSO的含义
  • Mybatis如何优化检索
2024年38篇
2023年139篇
2022年193篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔子队列

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源深圳夜总会只想退休的我被迫成了大将笔趣姓黄的女孩名字属牛起名qq刷钻外挂lolud当青春期遇上更年期美国疫情期间巧克力销量飙升郑氏女生起名字泰安花园洲空间搞笑留言代码华姓宝宝起名字乘胜狙击粤语在线观看中国梦是什么穿越之贤能妻五行起名详解博美起什么名字好听sodu小说搜索起个沙雕名字刘立风花开堪折胖达人面包老黄历起名打分属马的人起什么名字好复制粘贴不能用女儿的起名库张纪中版西游记剧情生化危机6百度云公司起名字大全免费水饺店巴哥犬起名九龙谷淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化