Skip to content

Commit c5d41f1

Browse files
BenchmarkingBuffalomhalbritter
authored andcommitted
Make UserDetailsServiceAutoConfiguration conditional on servlet app
See gh-43334
1 parent a93055c commit c5d41f1

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/servlet/UserDetailsServiceAutoConfiguration.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3232
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
3333
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
34+
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
35+
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
3436
import org.springframework.boot.autoconfigure.security.SecurityProperties;
3537
import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration.MissingAlternativeOrUserPropertiesConfigured;
3638
import org.springframework.context.annotation.Bean;
@@ -53,6 +55,7 @@
5355
* @author Dave Syer
5456
* @author Rob Winch
5557
* @author Madhura Bhave
58+
* @author Lasse Wulff
5659
* @since 2.0.0
5760
*/
5861
@AutoConfiguration
@@ -61,6 +64,7 @@
6164
@ConditionalOnBean(ObjectPostProcessor.class)
6265
@ConditionalOnMissingBean(value = { AuthenticationManager.class, AuthenticationProvider.class, UserDetailsService.class,
6366
AuthenticationManagerResolver.class }, type = "org.springframework.security.oauth2.jwt.JwtDecoder")
67+
@ConditionalOnWebApplication(type = Type.SERVLET)
6468
public class UserDetailsServiceAutoConfiguration {
6569

6670
private static final String NOOP_PASSWORD_PREFIX = "{noop}";

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/UserDetailsServiceAutoConfigurationTests.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.springframework.boot.autoconfigure.security.SecurityProperties;
2727
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2828
import org.springframework.boot.test.context.FilteredClassLoader;
29-
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
29+
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
3030
import org.springframework.boot.test.system.CapturedOutput;
3131
import org.springframework.boot.test.system.OutputCaptureExtension;
3232
import org.springframework.context.annotation.Bean;
@@ -56,11 +56,12 @@
5656
*
5757
* @author Madhura Bhave
5858
* @author HaiTao Zhang
59+
* @author Lasse Wulff
5960
*/
6061
@ExtendWith(OutputCaptureExtension.class)
6162
class UserDetailsServiceAutoConfigurationTests {
6263

63-
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
64+
private final WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
6465
.withUserConfiguration(TestSecurityConfiguration.class)
6566
.withConfiguration(AutoConfigurations.of(UserDetailsServiceAutoConfiguration.class));
6667

@@ -192,7 +193,7 @@ void userDetailsServiceWhenRelyingPartyRegistrationRepositoryPresentAndPasswordC
192193
.run(((context) -> assertThat(context).hasSingleBean(InMemoryUserDetailsManager.class)));
193194
}
194195

195-
private Function<ApplicationContextRunner, ApplicationContextRunner> noOtherFormsOfAuthenticationOnTheClasspath() {
196+
private Function<WebApplicationContextRunner, WebApplicationContextRunner> noOtherFormsOfAuthenticationOnTheClasspath() {
196197
return (contextRunner) -> contextRunner
197198
.withClassLoader(new FilteredClassLoader(ClientRegistrationRepository.class, OpaqueTokenIntrospector.class,
198199
RelyingPartyRegistrationRepository.class));

0 commit comments

Comments
 (0)