From 601020e5740cbd5025357a3f7e7be894bb8afc8e Mon Sep 17 00:00:00 2001 From: Johannes Edmeier Date: Thu, 21 Nov 2019 09:36:56 +0100 Subject: [PATCH] Add @ConditionalOnWebApplication to SecurityConfiguration fixes #405 --- problem-spring-web-autoconfigure/pom.xml | 17 ++++++++++++++- .../security/SecurityConfiguration.java | 2 ++ .../security/SecurityConfigurationTest.java | 21 +++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 problem-spring-web-autoconfigure/src/test/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfigurationTest.java diff --git a/problem-spring-web-autoconfigure/pom.xml b/problem-spring-web-autoconfigure/pom.xml index 60219a45..0022a22d 100644 --- a/problem-spring-web-autoconfigure/pom.xml +++ b/problem-spring-web-autoconfigure/pom.xml @@ -63,12 +63,27 @@ ${spring-security.version} true - org.zalando problem-spring-web ${project.version} true + + org.springframework.boot + spring-boot-starter-test + ${spring-boot.version} + test + + + org.hamcrest + hamcrest + + + ch.qos.logback + logback-classic + + + \ No newline at end of file diff --git a/problem-spring-web-autoconfigure/src/main/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfiguration.java b/problem-spring-web-autoconfigure/src/main/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfiguration.java index dc3ac44c..3a72a73e 100644 --- a/problem-spring-web-autoconfigure/src/main/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfiguration.java +++ b/problem-spring-web-autoconfigure/src/main/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfiguration.java @@ -2,6 +2,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.core.Ordered; @@ -14,6 +15,7 @@ * Registers exception handling in spring-security */ @Configuration +@ConditionalOnWebApplication @ConditionalOnClass(WebSecurityConfigurerAdapter.class) //only when spring-security is in classpath @Import(SecurityProblemSupport.class) @Order(Ordered.LOWEST_PRECEDENCE - 21) //subtract random, uncommon number to reduce chances of collision with a user-selected order diff --git a/problem-spring-web-autoconfigure/src/test/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfigurationTest.java b/problem-spring-web-autoconfigure/src/test/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfigurationTest.java new file mode 100644 index 00000000..2f8160d0 --- /dev/null +++ b/problem-spring-web-autoconfigure/src/test/java/org/zalando/problem/spring/web/autoconfigure/security/SecurityConfigurationTest.java @@ -0,0 +1,21 @@ +package org.zalando.problem.spring.web.autoconfigure.security; + +import static org.assertj.core.api.Assertions.assertThat; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.ApplicationContext; + +@SpringBootTest("spring.main.web-application-type=none") +final class SecurityConfigurationTest { + + @Test + void contextLoads(@Autowired ApplicationContext context) { + assertThat(context).isNotNull(); + } + + @SpringBootApplication + static class TestApplication { + } +} \ No newline at end of file