Я разрабатываю приложение Spring Boot, используя STS с плагином Gradle. У меня другая конфигурация для тестов, чтобы нашим тестам Selenium не приходилось входить в систему.
Итак, в src/test/java/etc
у меня есть что-то вроде этого:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
public static class SecurityConfig extends WebSecurityConfigurerAdapter
{
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.authorizeRequests().anyRequest().permitAll();
}
}
Принимая во внимание, что в src/main/java
у меня есть эквивалентный класс, который настраивает вход в систему и т. д., требуя входа для всех страниц.
Если я запускаю приложение через плагин Gradle (bootRun), все работает нормально.
Однако, если я запускаю или отлаживаю его через Eclipse напрямую (например, щелкнув правой кнопкой мыши проект, Run As-> Spring Boot App или нажав кнопки запуска/отладки в представлении Spring или Java), тогда применяется тестовая конфигурация, поэтому доступ предоставляется всем страницам без входа в систему.
Я предполагаю, что тестовые классы включаются в путь к классам, когда я запускаю приложение таким образом. Есть ли простой способ предотвратить это?
@Profile("test")
к этому классу +@ActiveProfiles("test")
в тесте. Это сделало бы компонент условным в этом профиле. См. docs.spring.io/spring/docs/current/spring-framework-reference/ - person zapl   schedule 14.11.2015