¿Alguien podría explicar cuándo anular configure(HttpSecurity)
, configure(WebSecurity)
y configure(AuthenticationManagerBuilder)
?
fuente
¿Alguien podría explicar cuándo anular configure(HttpSecurity)
, configure(WebSecurity)
y configure(AuthenticationManagerBuilder)
?
configure (AuthenticationManagerBuilder) se utiliza para establecer un mecanismo de autenticación al permitir que AuthenticationProviders se agreguen fácilmente: por ejemplo, lo siguiente define la autenticación en memoria con los inicios de sesión de 'usuario' y 'administrador' incorporados.
public void configure(AuthenticationManagerBuilder auth) {
auth
.inMemoryAuthentication()
.withUser("user")
.password("password")
.roles("USER")
.and()
.withUser("admin")
.password("password")
.roles("ADMIN","USER");
}
configure (HttpSecurity) permite la configuración de la seguridad basada en web a nivel de recursos, en función de una coincidencia de selección, por ejemplo, el ejemplo siguiente restringe las URL que comienzan con / admin / a los usuarios que tienen el rol ADMIN y declara que cualquier otra URL debe ser autenticado correctamente.
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
}
configure (WebSecurity) se utiliza para las opciones de configuración que afectan la seguridad global (ignorar recursos, establecer el modo de depuración, rechazar solicitudes mediante la implementación de una definición de firewall personalizada). Por ejemplo, el siguiente método haría que cualquier solicitud que comience con / resources / se ignore para fines de autenticación.
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}
Puede consultar el siguiente enlace para obtener más información Spring Security Java Config Preview: Web Security
http.authorizeUrls()
, tal vez se le cambió el nombre a hacehttp.authorizeRequests()
algún tiempo.El uso general del
ignoring()
método WebSecurity omite Spring Security y ninguna de las funciones de Spring Security estará disponible. WebSecurity se basa por encima de HttpSecurity.WebSecurity en el ejemplo anterior permite que Spring ignore
/resources/**
y/publics/**
. Por lo tanto,.antMatchers("/publics/**").hasRole("USER")
no se considera en HttpSecurity .configure(HttpSecurity)
permite la configuración de la seguridad basada en web a nivel de recursos , basándose en una coincidencia de selección, por ejemplo, el ejemplo siguiente restringe las URL que comienzan con/admin/
a los usuarios que tienen la función ADMIN y declara que cualquier otra URL debe autenticarse correctamente.configure(WebSecurity)
se utiliza para las opciones de configuración que afectan la seguridad global (ignorar recursos, establecer el modo de depuración, rechazar solicitudes mediante la implementación de una definición de firewall personalizada). Por ejemplo, el siguiente método haría que/resources/
se ignorara cualquier solicitud que comience con para fines de autenticación .SecurityBuilder utilizado para crear un
AuthenticationManager
. Permite crear fácilmente autenticación de memoria, autenticación LDAP, autenticación basada en JDBC, agregar UserDetailsService y agregar AuthenticationProvider .fuente