protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { //ehcache缓存使用 Element el = null; CacheManager manager = CacheManager.create(); Cache cache = manager.getCache("myCache"); if(cache.isKeyInCache("shiro"+principals)){ el = cache.get("shiro"+principals); return (AuthorizationInfo) el.getObjectValue(); } //ehcache缓存使用 String userName = (String) principals.getPrimaryPrincipal(); Front_login login= new Front_login(); login.setAccount(userName); int id=fi.select_loginlk(login).getId(); login.setId(id); Front_login returnLogin = fi.get_login(login); //角色集合 Set<String> Roles = new HashSet<String>(); for(Front_role r :returnLogin.getRoles()){ Roles.add(r.getName()); } System.out.println("调用shiro自定义域"); //权限集合 Set<String> Urls = fi.get_all_url(login); SimpleAuthorizationInfo authorizationInfo=new SimpleAuthorizationInfo(); authorizationInfo.addRoles(Roles); authorizationInfo.addStringPermissions(Urls); //ehcache缓存使用 if(authorizationInfo!=null){ el = new Element("shiro"+principals, authorizationInfo); cache.put(el); } //ehcache缓存使用 return authorizationInfo; }
@Cacheable注解无效解决办法
手动使用cache
猜你喜欢
转载自liaoke0123.iteye.com/blog/2312010
今日推荐
周排行