«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.