日期:2014-05-19  浏览次数:20682 次

关于SpringSecurity3.1中实现UserDetailsService所遇到的问题
最近将Spring3.1.1和SpringSecurity3.1.0+Hibernate4进行整合,在实现自定义UserDetailsService时,遇到无法注入其他bean的问题,不知道有没有朋友遇到过,希望得到帮助,先谢谢了!
@Repository("myUserDetailService")
@Transactional(readOnly = true)
public class MyUserDetailService implements UserDetailsService {

@Autowired
private UserDAO userDAO;

@Override
public UserDetails loadUserByUsername(String userName)
throws UsernameNotFoundException {
System.out.println("登录名[" + userName + "]");
System.out.println("userDAO=" + userDAO);
  boolean enables = true;
boolean accountNonExpired = true;
boolean credentialsNonExpired = true;
boolean accountNonLocked = true;
Collection<GrantedAuthority> auths = new ArrayList<GrantedAuthority>();
User userdetail = new User(userName, "12345", enables,
accountNonExpired, credentialsNonExpired, accountNonLocked,
auths);
return userdetail;
}
}

打印出来的userDAO一直都为null;
而我在另外一个Service中也是这样写的,却没有任何问题。

希望得到有SpringSecurity使用经验朋友的帮助。


------解决方案--------------------
你的userdao,有问题没有?
userdao加了注解没?
如果是userdao 是接口,最好用@Resource注入