权限控制之动态权限注解使用说明|学习笔记

简介: 快速学习权限控制之动态权限注解使用说明

开发者学堂课程【Spring Security知识精讲与实战演示(二)权限控制之动态权限注解使用说明】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/731/detail/13051


权限控制之动态权限注解使用说明

 

内容介绍

一、注解演示

二、注解步骤

三、结尾

 

一、注解演示

Secured-annotations=’’enabled’’

Pre-post-annotations=’’enabled’’

Jsr250-annotations=’’enabled’’

看这三种注解是怎么来的。刚才的注解就是可以加一个备注,这个就是//springSecurity 内部制定的注解。

 

二、注解步骤

@RolesAllowed() 这种写法跟上面是一样的,它里面也是一个数组,可以看到,以 @RolesAllowed(){“ROLE_PRODUCT’’,’’ROLE_ADMIN}) 这个为例来测试,这个就是 jsr250 注解,写这个注解必须要开启jsr250,这个注解对应哪一个注解支持要知道,在企业开发中开一个就可以,三个都开也可以,但注解和注解支持一定是对应的配套的,不能写乱,比如开启了secured,但是写的是 jsr250是不可以的,再一次来测试。重新启动,依然使用xiaoma登录,现在他是访问到了,订单这里边应该是Rose alone product,出现刷新不过来的情况,可以把这个 target 删掉。然后重新启动。已经加了这个注解,它就会起作用,重新下载。删掉 target 是要重新编译的,重新启动登录,继续用 xiaoma 登陆,这个订单没有问题 product 也没问题,继续在这里边写上一个叫 preAuthorize()这个就是 //spring 的 el 表达式注解,可以写一个没写过的 preAuthorize(“hasAnyAuthority(‘ROLE_PROCT’,’ROLE_ADMIN’)”)能写 el 表达式的,前提条件都是上面的这一句, use-expressions=”true”如果没有这个配置,页面最左侧header这地方就已经用过el表达式了,假如没有将这个改成true,那边就不好用,当然也可以去改配置使用,

再一次来测试,这里边也可以继续用xiaoma来登录,403没问题,现在可以直接让他访问首页,可以看到它登录成功了,那403就是权限不足,如果说访问product,是不可以的。

 

三、结尾

注意注解不要记乱,首先第一个,secured 这个是 spring security 内部的自己写的注解,@RolesAllowed()这个是 jsr250注解,最后一个是 spring 的 el 表达式注解,对应的注解开启的位置要与其注解支持对应,测试出不来效果的情况,针对情况做出调整,必要时重新启动。

image.png

相关文章
|
前端开发 微服务 容器
springcloud - 使用knife4j聚合微服务接口文档
springcloud - 使用knife4j聚合微服务接口文档
springcloud - 使用knife4j聚合微服务接口文档
|
数据安全/隐私保护
SpringSecurity利用@PreAuthorize注解自定义权限校验
利用@PreAuthorize注解自定义权限校验
3603 0
|
JSON 安全 Java
Spring Boot 序列化、反序列化
本文介绍了Spring Boot中的序列化和反序列化。Java提供默认序列化机制,通过实现Serializable接口实现对象到字节流的转换。Spring Boot默认使用Jackson处理JSON,可通过注解和配置自定义规则。然而,序列化可能引发安全问题,建议使用白名单、数据校验和安全库。最佳实践包括使用标准机制、自定义规则及注意版本控制。文章还提醒关注性能并提供了相关参考资料。
1020 2
|
数据采集 Java Linux
Java异常之【sun.security.validator.ValidatorException: PKIX path building failed: sun.security...】
Java异常之【sun.security.validator.ValidatorException: PKIX path building failed: sun.security...】
563 0
Java异常之【sun.security.validator.ValidatorException: PKIX path building failed: sun.security...】
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
319 3
|
存储 安全 Java
Spring Boot中的OAuth2认证与授权
Spring Boot中的OAuth2认证与授权
|
弹性计算 对象存储 开发者
新手必看:阿里云服务器可以试用吗?试用之后还能享受新用户价格吗?
阿里云服务器可以试用吗?阿里云服务器是可以试用的,目前个人实名认证用户可申请1核2GB配置每月750小时时长的试用,企业实名认证用户可试用的最高配置是4核16G,最长试用时间是3个月。试用之后还能享受新用户优惠价格吗?目前阿里云最新试用政策已更改,从2023年4月1号开始,云服务器ECS免费试用权益无法与新用户优惠购买活动同时享受,即:领取了云服务器ECS免费试用权益的用户,将不能参产品新用户的相关活动。
1527 0
新手必看:阿里云服务器可以试用吗?试用之后还能享受新用户价格吗?
|
NoSQL Redis
【Redis源码】Redis命令INCR、DECR、INCRBY、DECRBY学习(二)
【Redis源码】Redis命令INCR、DECR、INCRBY、DECRBY学习(二)
659 0
|
安全 JavaScript 前端开发
JDK8-JDK17中的新特性(var类型推断、模式匹配、Record、密封类)(一)
JDK8-JDK17中的新特性(var类型推断、模式匹配、Record、密封类)(一)