Spring boot 在spring boot中创建自定义安全配置时出错

Spring boot 在spring boot中创建自定义安全配置时出错,spring-boot,spring-security,Spring Boot,Spring Security,ConfigServletWebServerApplicationContext:遇到异常 在上下文初始化期间-取消刷新尝试: org.springframework.beans.factory.unsatifiedDependencyException: 创建名为“securityConfig”的bean时出错:未满足依赖关系 通过字段“readerRepository”表示;嵌套异常是 org.springframework.beans.factory.BeanCreationExcepti

ConfigServletWebServerApplicationContext:遇到异常 在上下文初始化期间-取消刷新尝试: org.springframework.beans.factory.unsatifiedDependencyException: 创建名为“securityConfig”的bean时出错:未满足依赖关系 通过字段“readerRepository”表示;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“readerRepository”的bean:调用init方法 失败;嵌套异常是java.lang.IllegalArgumentException:不是 托管类型:类java.io.Reader

安全配置文件:

package com.example.readinglist;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

    @Autowired
    private ReaderRepository readerRepository;


    @Override
    protected void configure(HttpSecurity http) throws Exception{

        http.authorizeRequests()
        .antMatchers("/")
        .access("hasRole('Reader')")
        .antMatchers("/**").permitAll().and().formLogin().loginPage("/login")
        .failureUrl("/login?error=true");
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        auth.userDetailsService(new UserDetailsService(){

            @Override
            public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
                return readerRepository.findOne(username);
            }
        });
    }
}

我认为
readerRepository.findOne(username)
不会返回UserDetails对象。如果这是真的,您必须根据Reader对象中的信息创建一个新的UserDetails对象,并将其返回给您的存储库声明。 它必须是:

public interface ReaderRepository extends JpaRepository<<Name of your entity>, String> {
public接口ReaderRepository扩展了JpaRepository{

如果您的实体名称是
Reader
您导入了错误的类您导入了错误的读卡器实体-->您导入了“import java.io.Reader;” 您需要导入自定义读卡器实体类。

消息不是托管类型吗:class java.io.Reader clear?
java.io.Reader
不是实体
package com.example.readinglist;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

    @Autowired
    private ReaderRepository readerRepository;


    @Override
    protected void configure(HttpSecurity http) throws Exception{

        http.authorizeRequests()
        .antMatchers("/")
        .access("hasRole('Reader')")
        .antMatchers("/**").permitAll().and().formLogin().loginPage("/login")
        .failureUrl("/login?error=true");
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        auth.userDetailsService(new UserDetailsService(){

            @Override
            public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
                return readerRepository.findOne(username);
            }
        });
    }
}
public interface ReaderRepository extends JpaRepository<<Name of your entity>, String> {