@Service public class SecurityMetadataSourceAnalyzer extends Object
Description: SecurityMetadata异步处理Service
| 构造器和说明 |
|---|
SecurityMetadataSourceAnalyzer(SecurityMetadataSourceStorage securityMetadataSourceStorage,
SecurityMetadataSourceParser securityMetadataSourceParser) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
processSecurityMetadata(List<SecurityAttribute> securityAttributes)
处理 UPMS 分发的 SecurityAttributes,将其转换、解析为表达式权限,并存入本地缓存,用于权限校验
处理过程中,会根据规则对权限类型分组,然后进行去重的操作。
|
void |
processSecurityRequestMapping()
各个服务静态化配置的权限过滤,通常为通配符型或者全路径型,很少有站位符型。
|
public SecurityMetadataSourceAnalyzer(SecurityMetadataSourceStorage securityMetadataSourceStorage, SecurityMetadataSourceParser securityMetadataSourceParser)
public void processSecurityRequestMapping()
Category.WILDCARD 和 Category.PLACEHOLDER,很少有 Category.FULL_PATH
此处的逻辑是:
1. 先处理各个服务静态化配置的权限,当前假设不会有Category.FULL_PATH类型的权限。后期如果该种权限较多再补充即可。
同时,静态服务都是开发人员手工配置,假定手工配置时就会对是否冲突进行处理,当然也可能出现冲突,那么这个开发人员得多不负责。
2. 经过考虑,服务本地接口扫描完,就对所有的 RequestMapping 做一遍解析,现在感觉意义不大。
因为,RequestMapping 汇总至 UPMS 后,还会做一次统一的分发。所以当前的设计思路是不对 RequestMapping 进行处理。后续根据需要再补充即可。
public void processSecurityMetadata(List<SecurityAttribute> securityAttributes)
处理过程中,会根据规则对权限类型分组,然后进行去重的操作。
securityAttributes - 权限数据Copyright © 2023 Dromara. All rights reserved.