Advertisement

第6章 Shiro的功能扩展:@RequiresPermission实现与应用指南

阅读量:

今天想介绍的是一个自定义的注解,即@RequiresMethodPermissions。为何会产生这个想法?原因在于Shiro所提供的权限相关注解@RequiresPermissions需要传入一个Permission参数。在实际开发过程中,我们需要提前对所有权限字符串(例如使用通配符Permission的情况)进行统一规划,并且所有开发人员在编码时都必须严格按照该权限表进行操作。因此,我们可以简化一些步骤,将权限字符串的规划方式设定为完整的类名与方法名的组合形式,即:[ClassName]:[MethodName]。这样一来,注解的使用形式就变成了如下所示:

@RequiresPermissions("cn.sharetop.example.HelloController:addUser")

然而,这样的写法是否还能进一步优化?比如能否让权限字符串更具可读性?例如:

@RequiresPermissions("新增用户")

为了实现这一目标,我们决定自定义一个注解,并将其命名为@RequiresMethodPermissions。

首先,需要定义这个注解。其中value属性用于存储权限的中文描述,并非用于判断的实际权限字符串。真正用于判断的字符串实际上是被该注解修饰的方法及其所在类的名称:

复制代码
    @Target({ElementType.TYPE, 

全部评论 (0)

还没有任何评论哟~