I'm newbie in Spring-World, I have a Spring Boot application with Spring Security and JPA. Also have CrudRepository and UserDetailsService, see below
Application class
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
UserDao
@Repository
public interface UserDao extends CrudRepository<User, Long> {
public Collection<User> findByName(String name);
}
ApiUserDetailsService
@Component
public class ApiUserDetailsService implements UserDetailsService {
@Autowired
private UserDao dao;
@Override
public UserDetails loadUserByUsername(final String username) throws UsernameNotFoundException {
assert dao != null;
...
}
}
Security Config
@Configuration
@EnableWebSecurity
public class HttpBasicAuthConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http.requestCache().requestCache(new NullRequestCache());
http.httpBasic();
http.authorizeRequests().anyRequest().authenticated();
}
@Autowired
public void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(new ApiUserDetailsService());
}
}
Why Autowired dao is always null? What I do wrong?