Перейти к основному содержимому

Отключить безопасность для профиля в Spring Boot

· 2 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим, как мы можем отключить Spring Security для данного профиля .

2. Конфигурация

Прежде всего, давайте определим конфигурацию безопасности, которая просто разрешает все запросы.

Мы можем добиться этого, расширив WebSecurityConfigurerAdapter в Spring @ Configuration и игнорируя запросы для всех путей.

@Configuration
public class ApplicationSecurity extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/**");
}
}

Помните, что это отключает не только аутентификацию, но и любые средства защиты, такие как XSS.

3. Укажите профиль

Теперь мы хотим активировать эту конфигурацию только для данного профиля.

Предположим, у нас есть набор модульных тестов, безопасность которого нам не нужна. Если этот набор тестов работает с профилем с именем «test» , мы можем просто аннотировать нашу конфигурацию с помощью @Profile :

@Profile("test")
@Configuration
public class ApplicationSecurity extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/**");
}
}

Следовательно, наша тестовая среда будет отличаться, чего мы можем не хотеть. В качестве альтернативы мы можем оставить безопасность включенной и использовать тестовую поддержку Spring Security .

4. Вывод

В этом руководстве мы показали, как отключить Spring Security для определенного профиля.

Как всегда, полный исходный код доступен на GitHub .