Как правильно инициализировать бин UserDetailsService? - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь понять учебник для Spring Security в Pluralsight.

В этом объявлен компонент UserDetailsService.

@Bean
UserDetailsService userDetailsService(DataSource dataSource) {

    return new JdbcUserDetailsManager(){
        @Override
        protected List<GrantedAuthority> loadUserAuthorities(String username) {
            return AuthorityUtils.createAuthorityList("ROLE_USER");
        }
    };
}

Но хотя я правильно скопировал код, я получаю следующую ошибку:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDetailsService' defined in donner.enterprises.godscontest.GodscontestApplication: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required  at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1708) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] ...

Я понял эту ошибку, что источник данных не инициализирован или неверен в моем объявлении.

Но этот DataSource работает правильно.
Я проверил его без этого Бина, и он работал.
В Debugger я также вижу, что dataSode правильно вставлен в UserDetailsService, но он все еще не работает начало.
Как избавиться от этой проблемы?

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