关于spring security3 + s2sh MyUserDetailsServiceImpl无法注入 userManager

hlj079513 2011-05-29 01:12:06
最近在整合ss3+s2sh 想用自己定义的用户和角色
所以就自己定义了一个类实现了UserDetailsServiceImpl接口

@Component("myUserDetailServiceImpl")
public class MyUserDetailsServiceImpl implements UserDetailsService {
private TUserManager userManager;// Spring注入

public MyUserDetailsServiceImpl(){

System.out.println("MyUserDetailsServiceImpl init!");
}

@Override
public UserDetails loadUserByUsername(String username) {
Collection<GrantedAuthority> auths=new ArrayList<GrantedAuthority>();
String password=null;
System.out.println("username is " + username);
System.out.println(this.userManager.toString());
System.out.println(this.userManager.getClass());
//Collection<GrantedAuthority> auths = new ArrayList<GrantedAuthority>();
System.out.println("开始载入名字为"+username+" 的User...");
TUser u = new TUser();

//取得用户
try{
u = this.userManager.findtUser(username);//userManager 为 NULL
}catch (Exception e ){
e.printStackTrace();
}
System.out.println("载入成功");
if (u == null){
String message = "用户"+username+"不存在";
throw new UsernameNotFoundException(message);
}
password=u.getPassword();
//取得用户角色(role),即权限
Set<TRole> tRoles = u.getRoles();
for(TRole r : tRoles){
SimpleGrantedAuthority grantedAuthorityImpl = new SimpleGrantedAuthority(r.getName());
System.out.println("用户:["+u.getUsername()+"]拥有角色:["+r.getName()+"],即spring security中的access");
auths.add(grantedAuthorityImpl);
}

User user = new User(username,password, true, true, true, true, auths);
return user;
}

public TUserManager getUserManager() {
return userManager;
}
@Resource(name="tuserManager")
public void setUserManager(TUserManager userManager) {
this.userManager = userManager;//不会注入
System.out.println("=====spring注入userManager:"+this.userManager.toString()+"======");
}

}

我的spring是用注解来加载bean的
debug了好久 发现 spring 启动的时候 最先加载的bean就是上面的MyUserDetailsServiceImpl
而userManager 这个bean还没有init spring直接就帮我把他跳过去了 请问大家有没解决的方法?
我用xml的方式也试过了 结果是在userDao中注入SessionFactory 这样是能注进去的 但是sessionFactory 查找的时候
又出问题了 报了个session没有事务... 好吧 那我就在ApplicationContext.xml中给他txManager 还是不行...
大家有没ss3+s2sh 自定义user role的demo借小弟参考参考 - - 这块弄了2天了 还没什么进展


还有个问题请教下大大们 大家用spring的时候用xml多呢 还是用annotation多? 估计我这个问题就是annotation出现了问题
...全文
469 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小丑哥_V5 2013-06-13
  • 打赏
  • 举报
回复
不会是注解问题,应该是你的用法有问题而已,我之前也是用注解搞过,你可以到我的博客里看看
MonSter_TJ 2011-08-31
  • 打赏
  • 举报
回复
晕,求解anotation的注入方式
hlj079513 2011-05-29
  • 打赏
  • 举报
回复
解决了 还真是annotation的原因 我把配置文件的bean 全部用xml实现 就解决了

25,988

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧