|
16 | 16 | import org.springframework.beans.factory.annotation.Autowired;
|
17 | 17 | import org.springframework.beans.factory.config.BeanPostProcessor;
|
18 | 18 | import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
| 19 | +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; |
19 | 20 | import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
20 | 21 | import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
| 22 | +import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration; |
21 | 23 | import org.springframework.context.annotation.Bean;
|
22 | 24 | import org.springframework.context.annotation.Configuration;
|
23 | 25 | import org.springframework.security.access.AccessDeniedException;
|
24 | 26 | import org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor;
|
25 |
| -import org.springframework.security.config.annotation.ObjectPostProcessor; |
| 27 | +import org.springframework.security.authentication.AuthenticationManager; |
| 28 | +import org.springframework.security.authentication.AuthenticationManagerResolver; |
| 29 | +import org.springframework.security.authentication.AuthenticationProvider; |
| 30 | +import org.springframework.security.config.ObjectPostProcessor; |
26 | 31 | import org.springframework.security.core.AuthenticationException;
|
| 32 | +import org.springframework.security.core.userdetails.UserDetailsService; |
27 | 33 |
|
28 | 34 | import java.util.Collection;
|
29 | 35 | import java.util.Optional;
|
@@ -130,6 +136,13 @@ public BearerTokenAuthSchemeSelector bearerTokenAuthSchemeSelector() {
|
130 | 136 | return new BearerTokenAuthSchemeSelector();
|
131 | 137 | }
|
132 | 138 |
|
| 139 | + @Configuration |
| 140 | + @ConditionalOnClass(AuthenticationManager.class) |
| 141 | + @ConditionalOnBean(ObjectPostProcessor.class) |
| 142 | + @ConditionalOnMissingBean(value = { AuthenticationManager.class, AuthenticationProvider.class, UserDetailsService.class, |
| 143 | + AuthenticationManagerResolver.class }, type = "org.springframework.security.oauth2.jwt.JwtDecoder") |
| 144 | + static class DefaultUserDetailsServiceAutoConfiguration extends UserDetailsServiceAutoConfiguration {} |
| 145 | + |
133 | 146 | @Autowired(required = false)
|
134 | 147 | @SuppressWarnings({ "rawtypes", "unchecked" })
|
135 | 148 | public void setFilterChainProxySecurityConfigurer(ObjectPostProcessor<Object> objectPostProcessor) throws Exception {
|
|
0 commit comments