我是中国学生,最近我使用了springMVC + shrio,但是在程序中我不能使用session,因为每次我需要权限时,它都会执行以下方法:doGetAuthorizationInfo(PrincipalCollection principals)
,然后找到数据库和搜索权限等。
protected AuthorizationInfo doGetAuthorizationInfo(
PrincipalCollection principals) {
/* 这里编写授权代码 */
Object ob = principals.fromRealm(getName()).iterator().next();
String userName = (String) ob;
User user = roleService.findUser(userName);
Set<String> roleNames = roleService.findRoleName(user.getId());
Set<String> permissions = roleService.findUrls(user.getId());
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(roleNames);
info.setStringPermissions(permissions);
return info;
}
答案 0 :(得分:0)
我找到答案,因为我没有使用缓存。
添加一些配置:
<!-- 配置EHCache缓存 -->
<property name="cacheManager" ref="shiroEhcacheManager" />
- &GT;