【问题标题】:Spring security empty dependency bean on UserDetailsService own implementationUserDetailsS​​ervice自己实现上的Spring安全空依赖bean
【发布时间】:2011-06-27 21:46:51
【问题描述】:

我开发了包含 Spring、Wicket、Hibernate 和 Spring Security 的应用程序。一切正常,但现在我添加了自己的 UserDetailsS​​ervice 实现来从数据库中获取用户。我在 applicationContext-security.xml 文件中对其进行了配置,并使用 Spring 向我的 UserDAO 添加了依赖项。但是,由于我的 userDAO 为空,我得到了空指针异常。为什么这种依赖不起作用?例如,我在 WebPages 子类中以相同的方式执行此操作,并且一切正常。

@Service
public class ComicsUserDetailsService implements
        org.springframework.security.core.userdetails.UserDetailsService {

    @SpringBean
    private UserDAO userDAO;

    public ComicsUserDetailsService() {
        System.out.println("$$$ UserDetailsService created");
    }

    @Override
    public UserDetails loadUserByUsername(String username)
            throws UsernameNotFoundException, DataAccessException {

        (bla bla)
    }
}

UserDAO 是一个相当简单的类

@Service
public class UserDAO {

    public UserDAO() {
        System.out.println("$$$ UserDAO created");
    }

    @PersistenceContext
    private EntityManager em;

        (fetch and other bla bla methods) 
    }

【问题讨论】:

    标签: spring spring-security


    【解决方案1】:

    嗯,启蒙总是来得太晚。很简单,@SpringBean 注释是特定于检票口的。因此,在 SpringSecurity 中不依赖于检票口,因此只需将其替换为 @Autowired 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2013-08-01
      • 2017-10-27
      • 1970-01-01
      • 2018-10-25
      • 1970-01-01
      相关资源
      最近更新 更多