1. 修改realm,继承AuthorizingRealm并实现方法doGetAuthorizationInfo获取数据库的角色信息
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { System.out.println("=========>MyRealm doGetAuthorizationInfo"); Set<String> set = new HashSet<>() ; SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(set) ; set.add("user") ; if("admin".equals(principalCollection.getPrimaryPrincipal())){ set.add("admin") ; } return authorizationInfo; }
本case中,将所有访问这个添加 user 角色,如果名称为 admin 再添加 admin 角色
2. spring-context-shiro.xml中配置realm
这里直接配置了多realm的实现,多realm的情况下,只要一个角色满足要即可
3. 配置有角色要求的url
这里对所有url配置均需要 user 这个角色,对admin这个页面则需要 admin 这个角色