欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shiro的@RequiresPermissions五种注解使用说明

程序员文章站 2024-03-02 18:43:58
...

@RequiresAuthentication

        验证用户是否登录,跟subject.isAuthenticated() 结果为true时一样。

@RequiresUser

        验证用户是否被记忆,user有两种含义:

                成功登录的(subject.isAuthenticated() 结果为true);

                被记忆的(subject.isRemembered()结果为true)。

@RequiresGuest

        验证是否是一个guest的请求,与@RequiresUser完全相反。

                 就是RequiresUser  == !RequiresGuest

                此时subject.getPrincipal() 结果为null.

@RequiresRoles

@RequiresRoles("user123");
public String text(){
    return "/text";
}

如果subject中有user123角色才可以访问方法text()。如果没有这个权限则会抛出异常AuthorizationException

@RequiresPermissions

@ApiOperation(value = "新增", notes = "新增")
@PostMapping("/add")
@RequiresPermissions("system:permission:add")
@ResponseBody
public AjaxResult add(@RequestBody TsysPermission tsysPermission){
	int b= sysPermissionService.insertSelective(tsysPermission);
	if(b>0){
		return success();
	}else{
		return error();
	}
}

        要求subject中必须同时含有system:permission:add的权限才能执行方法add()。否则抛出异常AuthorizationException