方法上添加注解
@GetMapping("/role")
@RequiresPermissions(value={"user:update","user:*"},logical= Logical.OR)
@RequiresRoles("user")
public String testRole(){
return "获取权限";
}
启用注解
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager){
AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
return authorizationAttributeSourceAdvisor;
}
重写认证
public class MyShiroRealm extends AuthorizingRealm {
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
String username = (String) principalCollection.getPrimaryPrincipal();
Set<String> roleString = new HashSet<>();
roleString.add("admin");
Set<String> perms = new HashSet<>();
perms.add("user:update");
SimpleAuthorizationInfo s = new SimpleAuthorizationInfo();
s.setStringPermissions(perms);
s.setRoles(roleString);
return s;
}
}