J'essaie de mettre en œuvre un exemple de démo pour la sécurité du ressort avec le démarrage de printemps pour vérifier l'authentification. J'essaie d'implémenter une séance d'entraînement de base pour la sécurité du printemps et d'obtenir le message suivant, ma classe de configuration de sécurité SecurityConfig.java, p> Et ma implémentation de baseAuthenticationfilterfilter comme suit, P> Comment puis-je résoudre ce problème? P> p>
3 Réponses :
Votre erreur semble être que le enregistrer un authentificationManager code> n'est pas présent comme un haricot de ressort.
Option 1 h1>
authentificationManager code> au printemps Haricot. Tout est fourni par le ressort pour le faire directement dans votre classe
SecurityConfig Code> en remplaçant le
WebSecurityConfigurierAdapter # authentificationManagerbean code> comme expliquer dans le Documentation de IT P>
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public CustomAuthenticationProvider authenticationProvider() throws Exception {
return new CustomAuthenticationProvider(authenticationManager());
}
}
Je ne suis pas sûr, mais n'udice pas le Vérifiez ce site pour plus d'informations
https://www.baeldung.com/spring-security-authentication-Provider p> CustomAuthentinCoVider Implément d'authentificationProvider code> et
authentificationManager code> est juste un conteneur pour les fournisseurs d'authentification et il semble que vous n'en avez pas. P >
beaucoup de problèmes sont là dans votre code.
Vous devez avoir préféré Vous devez avoir préféré Vous n'avez rien fait dans le code ci-dessous. (Obtenu l'objet d'authentification existant et le réglez-le sans créer d'objet d'authentification valide.) P> li>
OL> (ApplicationContext) authentificationManager () code>
Vous ne pouvez pas lancer l'authentificationManager à ApplicationContext P> LI>
.Addfilter (nouvelle applicationContexTheaderFilter (...)) code>
Je ne sais pas pourquoi vous utilisez ApplicationContexTheaderFilter code> pour une application de démonstration simple. P>
basicauthenticationfilter code> ou même une configuration par défaut simple fournie pour
httppsecurity code> avec
.httpbasic () code> p>
userneamepasswordAuthenticationfilter code> ou même une configuration par défaut simple fournie dans
httpsecurity code> avec
.formlogin () code> p>
ul> li>
CustomAuthenticanicationProvider étend basicaThenticationfilter code>
Un fournisseur d'authentification est celui qui implémente une interface authentificationAvider code>. Dans votre cas, la nommage doit être
xxxauthfilter code>. P> li>
List<GrantedAuthority> authorityList = new ArrayList<>();
GrantedAuthority authority = new SimpleGrantedAuthority("ROLE_USER");
authorityList.add(authority);
UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(username, password, authorityList);
//Note UsernamePasswordAuthenticationToken implements Authentication
SecurityContextHolder.getContext().setAuthentication(authToken);
Voir Stackoverflow.com/Questtions/52243774/...