Пустой бин зависимостей безопасности Spring для собственной реализации UserDetailsService - PullRequest
0 голосов
/ 15 февраля 2011

Я занимаюсь разработкой приложений, состоящих из Spring, Wicket, Hibernate и Spring Security.Все работает хорошо, но теперь я добавил собственную реализацию UserDetailsService для извлечения пользователей из базы данных.Я настроил его в файле applicationContext-security.xml и добавил зависимость для моего UserDAO с помощью Spring.Однако, я получил исключение нулевого указателя из-за того, что мой 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) 
    }

1 Ответ

2 голосов
/ 15 февраля 2011

Ну, просветление всегда приходит на минуту позже. Простая аннотация @SpringBean зависит от калитки. Следовательно, SpringSecurity не зависит от калитки, поэтому просто замените его на @Autowired и сделайте все возможное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...