Desidero utilizzare la sicurezza Spring con MongoDB (utilizzando i dati Spring) e recuperare gli utenti dal mio database per la sicurezza Spring. Tuttavia, non posso farlo poiché il mio tipo di servizio utenti non sembra essere supportato.Autenticazione con Spring Security + Spring data + MongoDB
Questa è la mia classe UserService:
public class UserService {
private ApplicationContext applicationContext;
private MongoOperations mongoOperations;
public UserService() {
applicationContext = new AnnotationConfigApplicationContext(MongoConfig.class);
mongoOperations = (MongoOperations) applicationContext.getBean("mongoTemplate");
}
public User find(String username) {
return mongoOperations.findOne(Query.query(Criteria.where("username").is(username)), User.class);
}
}
E la mia classe SecurityConfig:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
UserService userService;
@Autowired
public void configAuthBuilder(AuthenticationManagerBuilder builder) throws Exception {
builder.userDetailsService(userService); //THIS DOES NOT WORK
builder.inMemoryAuthentication().withUser("username").password("password").roles("USER");
}
}
La linea ho commentato dice:
The inferred type UserService is not a valid substitute for the bounded parameter <T extends UserDetailsService>.
Come posso risolvere il problema in modo da poter recuperare gli utenti dal mio database?
Esperto di sicurezza proprio lì! :) Apprezzo sempre Faraj! – Moody
Uomo grazie mille per questa risposta! – zaqpiotr
Puoi includere "importazioni" anche nella tua risposta? Sono confuso sulla classe User. È una classe modello personalizzata? –