首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Access >

spring-security当资源急需的角色为空时不进决策管理器(AccessDecisionManager)或不进投票器

2013-04-02 
spring-security当资源需要的角色为空时不进决策管理器(AccessDecisionManager)或不进投票器spring securi

spring-security当资源需要的角色为空时不进决策管理器(AccessDecisionManager)或不进投票器

spring security 中文官方文档
http://www.mossle.com/docs/springsecurity3/html/springsecurity.html

spring security 安全权限管理手册
http://www.mossle.com/docs/auth/html/

?

匿名角色:ROLE_ANONYMOUS

?

当资源需要的角色为空时不进决策管理器(AccessDecisionManager)或不进投票器

?

spring-security 是看访问受控资源需要哪些角色,再看访问者有没有这些角色中的一个,如果有,可以访问。如果没有,不可以访问。

有一个问题是,受控资源要是没有配置可以访问的角色,那么它就不判断了,都可以访问,

我的理解是这种资源谁都不可以访问,

要想实现这种效果,可以用如下方法,

?

//加载所有资源与权限的关系       private void loadResourceDefine() {          if(resourceMap == null) {              resourceMap = new HashMap<String, Collection<ConfigAttribute>>();              List<Resources> resources = this.resourcesDao.findAll();              for (Resources resource : resources) {              //以权限名封装为Spring的security Object                Collection<ConfigAttribute> configAttributes = new ArrayList<ConfigAttribute>();                                   List<Role> roles = resourcesDao.getRolesByResouce(resource);    ConfigAttribute configAttribute;        if(roles.size()==0){    configAttribute = new SecurityConfig("supervisor"); //超级管理员    //configAttribute = new SecurityConfig("ROLE_NO_USER"); //没有人可以访问    configAttributes.add(configAttribute);    } else {log.info("{");for(Role role : roles){log.info(role.getName());configAttribute = new SecurityConfig(role.getName());configAttributes.add(configAttribute);}log.info("}");            }                resourceMap.put(resource.getUrl(), configAttributes);              }          }                          }

???

?在加载资源的需要的角色时,如果资源需要的角色是空的,给他配一个超级管理员,

热点排行