Quelqu'un pourrait-il expliquer quand passer outre configure(HttpSecurity)
, configure(WebSecurity)
et configure(AuthenticationManagerBuilder)
?
la source
Quelqu'un pourrait-il expliquer quand passer outre configure(HttpSecurity)
, configure(WebSecurity)
et configure(AuthenticationManagerBuilder)
?
configure (AuthenticationManagerBuilder) est utilisé pour établir un mécanisme d'authentification en permettant aux AuthenticationProviders d'être ajoutés facilement: par exemple, ce qui suit définit l'authentification en mémoire avec les connexions intégrées «utilisateur» et «admin».
public void configure(AuthenticationManagerBuilder auth) {
auth
.inMemoryAuthentication()
.withUser("user")
.password("password")
.roles("USER")
.and()
.withUser("admin")
.password("password")
.roles("ADMIN","USER");
}
configure (HttpSecurity) permet la configuration de la sécurité basée sur le Web au niveau des ressources, en fonction d'une correspondance de sélection - par exemple, l'exemple ci-dessous limite les URL commençant par / admin / aux utilisateurs qui ont le rôle ADMIN, et déclare que toutes les autres URL doivent être authentifié avec succès.
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
}
configure (WebSecurity) est utilisé pour les paramètres de configuration qui ont un impact sur la sécurité globale (ignorer les ressources, définir le mode de débogage, rejeter les demandes en implémentant une définition de pare-feu personnalisée). Par exemple, la méthode suivante ferait en sorte que toute demande commençant par / resources / soit ignorée à des fins d'authentification.
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}
Vous pouvez vous référer au lien suivant pour plus d'informations Spring Security Java Config Preview: Sécurité Web
http.authorizeUrls()
, peut-être qu'elle a été renommée il y ahttp.authorizeRequests()
quelque temps.L'utilisation générale de la
ignoring()
méthode WebSecurity omet Spring Security et aucune des fonctionnalités de Spring Security ne sera disponible. WebSecurity est basé sur HttpSecurity.WebSecurity dans l'exemple ci-dessus permet à Spring d'ignorer
/resources/**
et/publics/**
. Par conséquent, le.antMatchers("/publics/**").hasRole("USER")
dans HttpSecurity n'est pas pris en compte .configure(HttpSecurity)
permet la configuration de la sécurité Web au niveau des ressources , en fonction d'une correspondance de sélection - par exemple, l'exemple ci-dessous restreint les URL commençant par/admin/
aux utilisateurs qui ont le rôle ADMIN et déclare que toutes les autres URL doivent être authentifiées avec succès.configure(WebSecurity)
est utilisé pour les paramètres de configuration qui ont un impact sur la sécurité globale (ignorer les ressources, définir le mode de débogage, rejeter les demandes en implémentant une définition de pare-feu personnalisée). Par exemple, la méthode suivante entraînerait l'ignorance de toute demande commençant par/resources/
à des fins d' authentification .SecurityBuilder utilisé pour créer un fichier
AuthenticationManager
. Permet d'intégrer facilement l' authentification mémoire, l'authentification LDAP, l'authentification basée sur JDBC, l'ajout de UserDetailsService et l'ajout d'AuthenticationProvider .la source