Spring Security基于注解的接口角色访问控制怎么实现(security,spring,编程语言)

时间:2024-05-09 09:25:53 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

    Spring+Security%E5%9F%BA%E4%BA%8E%E6%B3%A8%E8%A7%A3%E7%9A%84%E6%8E%A5%E5%8F%A3%E8%A7%92%E8%89%B2%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E6%80%8E%E4%B9%88%E5%AE%9E%E7%8E%B0

该过程发生在接口接收参数之前。 入参必须为 java.util.Collection 且支持 remove(Object) 的参数。如果有多个集合需要通过 filterTarget=<参数名> 来指定过滤的集合。内置保留名称 filterObject 作为集合元素的操作名来进行评估过滤。/p><p>样例:</p><pre>//入参为Collection&lt;String&gt;ids测试数据[&quot;Felordcn&quot;,&quot;felord&quot;,&quot;jetty&quot;]//过滤掉felordjetty为Felordcn@PreFilter(value=&quot;filterObject.startsWith(&#39;F&#39;)&quot;,filterTarget=&quot;ids&quot;)//如果当前用户持有ROLE_AD角色参数都符合否则过滤掉不是f开头的//DEMO用户不持有ROLE_AD角色故而集合只剩下felord@PreFilter(&quot;hasRole(&#39;AD&#39;)orfilterObject.startsWith(&#39;f&#39;)&quot;)</pre

4.4 @PostFilter

和@PreFilter 不同的是, 基于返回值相关的表达式,对返回值进行过滤。分页慎用!该过程发生接口进行数据返回之前。

5. 使用 securedEnabled

如果你在 @EnableGlobalMethodSecurity 设置 securedEnabled 为 true ,就开启了角色注解 @Secured ,该注解功能要简单的多,默认情况下只能基于角色(默认需要带前缀 ROLE_)集合来进行访问控制决策。

该注解的机制是只要其声明的角色集合(value)中包含当前用户持有的任一角色就可以访问。也就是 用户的角色集合和 @Secured 注解的角色集合要存在非空的交集。 不支持使用 SpEL 表达式进行决策。

6. 使用 jsr250Enabled

启用 JSR-250 安全控制注解,这属于 JavaEE 的安全规范(现为 jakarta 项目)。一共有五个安全注解。如果你在 @EnableGlobalMethodSecurity 设置 jsr250Enabled 为 true ,就开启了 JavaEE 安全注解中的以下三个:

@DenyAll 拒绝所有的访问

@PermitAll 同意所有的访问

@RolesAllowed 用法和 5. 中的 @Secured 一样。

本文:Spring Security基于注解的接口角色访问控制怎么实现的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Javascript中面向对象和原型原型链是怎样的下一篇:

9 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18