Skip to content

权限验证

API 接口通常要通过授权验证才可以访问,框架提供了服务来验证接口声明的权限。

@PreAuthorize

PreAuthorize 是 Spring Security 提供的一个注解,用于在方法调用前进行权限验证。 它允许我们使用 SpEL (Spring Expression Language) 表达式来定义复杂的访问控制规则。

PermissionExaminator

PermissionExaminator 是框架提供的权限验证服务,用来判断当前用户是否拥有或缺少指定权限。

PermissionExaminator 与 PreAuthorize 配合即可完成权限验证逻辑。 示例如下:

java
@ApiOperation("列表")
@GetMapping
@PreAuthorize("@ss.hasPermi('foo:list')")
public AjaxResult<PageVo<FooVo>> list(FooQueryDto dto, PageInfo page) {
    Page<FooVo> list = service.search(dto, page);
    return AjaxResult.success(new PageVo<>(list));
}

上例表示在验证权限时,调用 PermissionExaminator 的 hasPermi 方法,判断当前用户是否持有名为“foo:list”的权限。

提示

PermissionExaminator 服务注册为 ss,方便书写。

权限标识(上例中的 foo:list),需要与系统菜单中设置的按钮 url 一致。