通过给接口服务方法添加注解可以实现权限校检,可以加在控制器方法上,也可以加在业务方法上,一般加在控制器方法上。
@RequiresAuthentication | 验证用户登录,等同于方法subject.isAuthenticated() |
@RequiresUser |
验证用户是否被记忆; 登录认证成功subject.isAuthenticated()为true 登录后被记忆subject.isRemembered()为true |
@RequiresGuest |
验证是否是一个guest的请求,是否是游客的请求 此时subject.getPrincipal()为n |
@RequiresRoles | 验证subject是否有相应的角色,有角色访问方法,没有的话则会抛出异常AuthorizationException。 例如:@RequiresRoles("aRoleName") public void someMethod(); 在subject中有aRoleName角色才能访问someMethod() |
@RequiresPermissions | 验证subject是否有相应的权限,有权限访问方法,没有则会抛出异常AuthorizationException。 例如:@RequiresPermissions("file:read" ,"wite:aFile.txt") public void someMethod(); subject必须同时拥有"file:read" 和"wite:aFile.txt"权限才能访问someMethod()方法 |