类 SecurityAttributeAnalyzer

java.lang.Object
cn.herodotus.stirrup.oauth2.authorization.processor.SecurityAttributeAnalyzer

@Component public class SecurityAttributeAnalyzer extends Object

Description: SecurityMetadata异步处理Service

作者:
: gengwei.zheng
Date:
: 2021/8/1 17:43
  • 构造器详细资料

  • 方法详细资料

    • processLocalSecurityMatchers

      public void processLocalSecurityMatchers()
      各个服务静态化配置的权限过滤,通常为通配符型或者全路径型,很少有站位符型。即:大多数情况为 Category.WILDCARDCategory.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 - 权限数据