熟悉若依
@PreAuthorize("@ss.hasPermi('system:role:add')")
注解的含义
@PreAuthorize("@ss.hasPermi('system:role:add')") 是一个Spring Security中的注解,用于在方法级别进行权限控制。
这个注解的含义是:只有在用户拥有 "system:role:add" 权限时,才允许调用被注解的方法。它通过调用 "ss.hasPermi()" 方法来进行权限判断,其中 'system:role:add' 是一个权限表达式,表示用户需要具备 "system:role:add" 权限才能执行该方法。
在具体实现中,通常需要定义 "ss.hasPermi()" 方法来判断用户是否具备指定的权限。这个方法可以根据不同的业务需求进行自定义实现,常见的实现包括从数据库或缓存中查询用户的权限信息,并与传入的权限表达式进行匹配。
使用 @PreAuthorize 注解可以在方法执行之前进行权限验证,确保只有具备相应权限的用户才能访问受保护的方法。这有助于提高系统的安全性和数据访问控制。
请注意,具体的权限逻辑和实现方式可能因所使用的框架或权限管理系统而有所不同,上述说明仅为一般概念的解释,具体实现请参考适用于您的框架和工具的文档和示例。
@ApiOperation("新增角色")
@PreAuthorize("@ss.hasPermi('system:role:add')")
@Log(title = "角色管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysRole role)
{
if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
{
return error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
}
else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
{
return error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
}
role.setCreateBy(getUsername());
return toAjax(roleService.insertRole(role));
}
方法 | 参数 | 描述 |
---|---|---|
hasPermi | String | 验证用户是否具备某权限 |
lacksPermi | String | 验证用户是否不具备某权限,与 hasPermi逻辑相反 |
hasAnyPermi | String | 验证用户是否具有以下任意一个权限 |
hasRole | String | 判断用户是否拥有某个角色 |
lacksRole | String | 验证用户是否不具备某角色,与 isRole逻辑相反 |
hasAnyRoles | String | 验证用户是否具有以下任意一个角色,多个逗号分隔 |
作者:Lemonade22
链接:https://juejin.cn/post/7249926456884117563
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。