开发者学堂课程【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 表达式注解,对应的注解开启的位置要与其注解支持对应,测试出不来效果的情况,针对情况做出调整,必要时重新启动。