ConfigServletWebServerApplicationContext: Возникла исключительная ситуация во время инициализации контекста - отмена refre sh попытка: org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка создания бина с именем «securityConfig»: неудовлетворенная зависимость, выражаемая через читателя; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем readerRepository: сбой вызова метода init; вложенное исключение: java .lang.IllegalArgumentException: неуправляемый тип: класс java .io.Reader
package com.example.readinglist;
import java.io.Reader;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Repository;
@Repository
public interface ReaderRepository extends JpaRepository<Reader, String> {
UserDetails findOne(String username);
}
ReadingListApplication:
package com.example.readinglist;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ReadinglistApplication {
public static void main(String[] args) {
SpringApplication.run(ReadinglistApplication.class, args);
}
}
Файл конфигурации безопасности:
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);
}
});
}
}