SpringBoot en 2.1 Notas de la versión contienen el siguiente dato:
configuración de seguridad se aplica ahora a WebTestClient. Para obtener más información sobre cómo probar los puntos finales garantizados, por favor refiérase a la sección correspondiente de la documentación de referencia de la primavera de Seguridad.
Problema:
Después SpringBoot actualización de 2.0.4 a 2.1.2 encontré que mis pruebas han dejado al trabajo. Estoy usando @SpringBootTest
para mi prueba de descanso. Mi WebTestClient
no puede alcanzar el servidor. Yo probé una gran cantidad (por ejemplo, a partir de aquí ) para burlarse o desactivar la seguridad y aún así obtener 403 FORBIDDEN
la respuesta.
¿Tiene alguna pista de lo que puede estar mal?
Creo WebTestClient
de la siguiente manera:
client = WebTestClient
.bindToServer()
.baseUrl("http://localhost:$port")
.build()
También trató de excluir SecurityAutoConfiguration.class
.
En algún lugar oscuro, en el fondo de la madriguera encontré esto:
@TestConfiguration
@Order(1)
public class SecurityConfiguration
implements WebSecurityConfigurer<WebSecurity> {
@Override
public void init(WebSecurity builder) throws Exception {
builder.ignoring().requestMatchers(
new AntPathRequestMatcher("/**"));
}
@Override
public void configure(WebSecurity builder) throws Exception {
}
}
Rember para registrar la clase de @SpringBootTest
, por ejemplo:
@SpringBootTest(
classes = [SomeApplication, SecurityConfiguration],
webEnvironment = RANDOM_PORT
)
No es deshabilitar la seguridad de primavera, pero hace que sea transparente.