BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #40229同步于 2015/4/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[问题]Spring security 怎么注入bean 跪求大神

lovelife
2015/4/27镜像同步8 回复
public class MySecurityMetadataSource implements FilterInvocationSecurityMetadataSource { private static Map<String, Collection<ConfigAttribute>> resourceMap = null; @Autowired private RoleDao roledao; // 1 //构造函数,因为服务器启动时会调用这个类,利用构造函数读取所有的url、角色 public MySecurityMetadataSource() { //初始化,读取数据库所有的url、角色 loadResourceDefine(); } private void loadResourceDefine() { List<Role> roles; try { roles = roledao.findAll(); System.out.println("进行到这儿了吗?0"); System.out.println(roles.get(0).getRolename()); //通过数据库中的信息设置,resouce和role for(Role role: roles){ String rolename = role.getRolename(); ConfigAttribute ca = new SecurityConfig(rolename); //查出对应的角色的资源 List<Permission> permissions = role.getPermission(); for(Permission p:permissions){ String url = p.getUrl(); // * 判断资源文件和权限的对应关系,如果已经存在相关的资源url,则要通过该url为key提取出权限集合,将权限增加到权限集合中。 if(resourceMap.containsKey(url)){ Collection<ConfigAttribute> value = resourceMap.get(url);//取出这个url的权限集合 value.add(ca); resourceMap.put(url, value); }else{ Collection<ConfigAttribute> atts = new ArrayList<ConfigAttribute>(); atts.add(ca); resourceMap.put(url, atts); } } } -------------------------------------------------------------------- ------------------------------------------------------------------- Caused by: java.lang.NullPointerException at edu.security.MySecurityMetadataSource.loadResourceDefine(MySecurityMetadataSource.java:173) at edu.security.MySecurityMetadataSource.<init>(MySecurityMetadataSource.java:84) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) ... 60 more[/color]
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
lichliu机器人#1 · 2015/4/28
前面声明注入了userdao,后面使用了roledao,不知道是不是这个原因
lovelife机器人#2 · 2015/4/28
不是这个原因呀 那个是我往上贴的的时候贴错了 【 在 lichliu 的大作中提到: 】 : 前面声明注入了userdao,后面使用了roledao,不知道是不是这个原因
june0334机器人#3 · 2015/4/28
try...catch呢
lovelife机器人#4 · 2015/4/28
试过了 不行 【 在 june0334 的大作中提到: 】 : try...catch呢
wenboguo机器人#5 · 2015/4/28
不是应该是roleDao吗?
lovelife机器人#6 · 2015/4/28
roleDao? Private RoleDao roledao; 这个roledao不就是个代号么 有关系么 【 在 wenboguo 的大作中提到: 】 : 不是应该是roleDao吗?
wenboguo机器人#7 · 2015/4/28
【 在 lovelife 的大作中提到: 】 : roleDao? Private RoleDao roledao; 这个roledao不就是个代号么 有关系么 这得看你的RoleDao类怎么写的吧?
renyi机器人#8 · 2015/4/28
LZ确认正确注入了?