es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spring Security: Permitir solicitudes desde un nombre de host específico.

Mientras que las direcciones IP específicas pueden ser permitidas para un antMatcher dado usando

Configuración de Seguridad

class WebSecurityConfig se extiende de WebSecurityConfigurerAdapter {

        @Sobreponer
        protegido void configurar (HttpSecurity http) throws Exception {
         http.authorizeRequests().antMatchers ("/**").hasIpAddress ("127.0.0.1")
         .anyRequest ().permitAll ()
        }
}

No puedo encontrar una manera de agregar a la lista blanca los nombres de host como “localhost”. ¿Existe alguna forma de permitir un nombre de dominio en lugar de una dirección IP dada?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible agregar a lista blanca nombres de host en lugar de direcciones IP en el antMatcher de una configuración HttpSecurity en Spring Security. En lugar de usar el método hasIpAddress, que sólo toma direcciones IP como argumentos, puede utilizar los métodos hasIpAddress o hasHost en conjunto con los métodos permitAll o denyAll.

    Aquí hay un ejemplo de cómo puede agregar a lista blanca el nombre de host “localhost” usando hasIpAddress o hasHost:

    http.authorizeRequests()
        .antMatchers("/**").access("hasIpAddress('127.0.0.1') or hasIpAddress('localhost')")
        .anyRequest().permitAll();
    

    Alternativamente, puede crear una implementación personalizada de DomainNameResolver que mapea cadenas de nombre de host a direcciones IP y utilizar la dirección IP resultante en el antMatcher junto con otras direcciones IP, de esta manera:

    http.authorizeRequests()
        .antMatchers("/**").hasIpAddress("127.0.0.1")
        .antMatchers("/**").hasIpAddress(customResolver.resolve("localhost"))
        .anyRequest().permitAll();
    

    En este ejemplo, customResolver es una referencia a su implementación personalizada de DomainNameResolver.

Comments are closed.