类 SecurityAttributeAnalyzer
java.lang.Object
cn.herodotus.stirrup.oauth2.authorization.processor.SecurityAttributeAnalyzer
Description: SecurityMetadata异步处理Service
- 作者:
- : gengwei.zheng
- Date:
- : 2021/8/1 17:43
-
构造器概要
构造器构造器说明SecurityAttributeAnalyzer(SecurityAttributeStorage securityAttributeStorage, Map<HerodotusRequest, List<cn.herodotus.stirrup.core.identity.domain.HerodotusSecurityAttribute>> permitAllAttributes) -
方法概要
修饰符和类型方法说明voidprocessAttributeTransmitters(List<cn.herodotus.stirrup.core.identity.domain.AttributeTransmitter> attributeTransmitters) 处理分发的 SecurityAttribute,将其转换、解析为表达式权限,并存入本地缓存,用于权限校验void各个服务静态化配置的权限过滤,通常为通配符型或者全路径型,很少有站位符型。
-
构造器详细资料
-
SecurityAttributeAnalyzer
public SecurityAttributeAnalyzer(SecurityAttributeStorage securityAttributeStorage, Map<HerodotusRequest, List<cn.herodotus.stirrup.core.identity.domain.HerodotusSecurityAttribute>> permitAllAttributes)
-
-
方法详细资料
-
processLocalSecurityMatchers
public void processLocalSecurityMatchers()各个服务静态化配置的权限过滤,通常为通配符型或者全路径型,很少有站位符型。即:大多数情况为Category.WILDCARD和Category.PLACEHOLDER,很少有Category.FULL_PATH此处的逻辑是: 1. 先处理各个服务静态化配置的权限,当前假设不会有
Category.FULL_PATH类型的权限。后期如果该种权限较多再补充即可。 同时,静态服务都是开发人员手工配置,假定手工配置时就会对是否冲突进行处理,当然也可能出现冲突,那么这个开发人员得多不负责。 2. 经过考虑,服务本地接口扫描完,就对所有的 RequestMapping 做一遍解析,现在感觉意义不大。 因为,RequestMapping 汇总至 UPMS 后,还会做一次统一的分发。所以当前的设计思路是不对 RequestMapping 进行处理。后续根据需要再补充即可。 -
processAttributeTransmitters
public void processAttributeTransmitters(List<cn.herodotus.stirrup.core.identity.domain.AttributeTransmitter> attributeTransmitters) 处理分发的 SecurityAttribute,将其转换、解析为表达式权限,并存入本地缓存,用于权限校验处理过程中,会根据规则对权限类型分组,然后进行去重的操作。
- 参数:
attributeTransmitters- 权限数据
-