实现权限验证拦截器
@Componentpublic class PermissionScopeInterceptor extends BaseBffPermissionScopeHandlerInterceptorAdapter { @Override protected void assemblePermissionScopeData(Collection<PermissionScopeData> collection) { // TODO 调用服务拼装更多的权限和数据范围定义用于验证,具体参考代码示例 } @Override protected boolean validatePermissionWithoutScope(PermissionScopeData permissionScopeData) { Long userId = ClientRequestContextHolder.current().getUserId(); String permissionKey = permissionScopeData.getPermissionKey(); // TODO 验证用户是否有权限 }}
MVC 配置拦截器
略
自定义实现数据范围验证器
/** * 验证组织数据范围 */@Componentpublic class OrgPermissionScopeValidator implements PermissionScopeValidator { @Override public boolean validate(PermissionScopeData permissionScopeData) { Long userId = ClientRequestContextHolder.current().getUserId(); // TODO 进行实际验证,具体参考代码示例 return true; }}
注册自定义验证器
@Configurationpublic class PermissionScopeConfig { @Autowired private OrgPermissionScopeValidator orgPermissionScopeValidator; @Bean protected PermissionScopeValidatorMapping permissionScopeValidatorMapping() { PermissionScopeValidatorMapping mapping = new PermissionScopeValidatorMapping(); // 添加各种 scopeType 实现 mapping.add(ScopeConstants.SCOPE_TYPE_ORG, orgPermissionScopeValidator); return mapping; }}