Shiro注解式授权(RequiresRoles/RequiresPermissions/RequiresAuthentication/RequiresUser等)

@RequiresAuthentication

要求当前Subject已经在session中验证通过(验证当前用户是否登录:subject.isAuthenticated() 结果为true)

@RequiresUser

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

1) 一种是成功登录的(subject.isAuthenticated() 结果为true);

2) 另外一种是被记忆的(subject.isRemembered()结果为true)。

@RequiresGuest

用户没有登录认证或被记住过,验证是否是一个guest的请求,与@RequiresUser完全相反。换言之,RequiresUser == !RequiresGuest。此时subject.getPrincipal() 结果为null.

@RequiresPermissions

验证用户是否具有一个或多个权限,该注解将会经常在项目中使用,如果不满足条件则抛出AuthorizationException异常

1) 是否具有某一权限@RequiresPermission("account:create")

2) 是否具有多个权限@RequiresPermission({"account:create","account:update"})

@RequiresRoles

验证当前用户是否具有某角色,与验证权限类似

@RequiresRoles("super")
public string addAdmin(String username,String pwd){
	return adminService.addAdmin(username,pwd);
}