Saltar al contenido

Configuración de Spring Security – HttpSecurity vs WebSecurity

Contamos con la mejor información que hemos encontrado online. Nosotros queremos que te sea útil y si quieres compartir alguna mejora hazlo libremente.

Solución:

Uso general de WebSecurity ignoring() método omite Spring Security y ninguna de las características de Spring Security estará disponible. WebSecurity se basa sobre HttpSecurity.

@Override
public void configure(WebSecurity web) throws Exception 
    web
        .ignoring()
        .antMatchers("/resources/**")
        .antMatchers("/publics/**");


@Override
protected void configure(HttpSecurity http) throws Exception 
    http
        .authorizeRequests()
        .antMatchers("/admin/**").hasRole("ADMIN")
        .antMatchers("/publics/**").hasRole("USER") // no effect
        .anyRequest().authenticated();

WebSecurity en el ejemplo anterior permite que Spring ignore /resources/** y /publics/**. Por lo tanto, la .antMatchers("/publics/**").hasRole("USER") en HttpSecurity es desconsiderado.

Esto omitirá por completo el patrón de solicitud de la cadena de filtros de seguridad. Tenga en cuenta que todo lo que coincida con esta ruta no tendrá ningún servicio de autenticación o autorización aplicado y será de libre acceso.

configure(HttpSecurity) permite la configuración de la seguridad basada en web en un nivel de recursos, según una coincidencia de selección, por ejemplo, el ejemplo siguiente restringe las URL que comienzan con /admin/ a los usuarios que tienen rol de ADMINISTRADORy declara que cualquier otra URL debe ser autenticado correctamente.

configure(WebSecurity) se utiliza para los ajustes de configuración que impactar la seguridad global (ignore los recursos, configure el modo de depuración, rechace las solicitudes implementando una definición de firewall personalizada). Por ejemplo, el siguiente método haría que cualquier solicitud que comience con /resources/ ser – estar ignorado para la autenticación propósitos


Consideremos el siguiente código, podemos ignorar la autenticación para el punto final proporcionado dentro de antMatchers usando ambos métodos.

@Override
public void configure(WebSecurity web) throws Exception 
    web
        .ignoring()
        .antMatchers("/login", "/register", "/api/public/**");


@Override
public void configure(HttpSecurity http) throws Exception 

    http
        .csrf().disable()
        .authorizeRequests()
        .antMatchers("/login", "/register", "/api/public/**").permitAll()
        .anyRequest().authenticated();

  • configure(WebSecurity web)

    El punto final utilizado en este método ignora los filtros de seguridad Spring, las características de seguridad (encabezados seguros, protección csrf, etc.) también se ignoran y no se establecerá ningún contexto de seguridad y no puede proteger los puntos finales para Cross-Site Scripting, ataques XSS, detección de contenido.

  • configure(HttpSecurity http)

    El punto de conexión utilizado en este método ignora la autenticación de los puntos de conexión utilizados en antMatchers y otras características de seguridad estarán vigentes, como encabezados seguros, protección CSRF, etc.

cuando usas HttpSecurity y tratar de permitAll() peticiones. Se permitirá el acceso a sus solicitudes desde Spring Security Filter Chain. Esto es costoso ya que habrá otras solicitudes que también entrarían en esta cadena de filtros que deben permitirse o rechazarse en función de la autenticación/autorización.

HttpSecurity.authorizeRequests().antMatchers("/**", "/resources/**").permitAll();

Pero cuando usas, cualquier solicitud de resources pasará completamente por alto la cadena de filtro de seguridad de resorte por completo. Es seguro porque no necesita ninguna Autenticación/Autorización para ver una imagen o leer un archivo javascript.

WebSecurity.ignoring().antMatchers("/resources/**");

configure(HttpSecurity) : Permite configurar la seguridad basada en web para solicitudes http específicas. Se utiliza para la configuración de la seguridad basada en web a nivel de recursos, en función de una coincidencia de selección.

configure (WebSecurity): permite agregar instancias de RequestMatcher que Spring Security debe ignorar.

Eres capaz de amparar nuestra función mostrando un comentario y valorándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *