From 905451f92ea9967644c3b3a68a2df2a6f269dd81 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 4 May 2016 21:01:40 +0100 Subject: [PATCH] That BaseConfiguration thing didn't work out after all It seems like a base class that defines `@Beans` just doesn't define any beans. Oh well, time to copy-paste. --- .../oauth2/client/BaseConfiguration.java | 39 ------------------- .../OAuth2RestOperationsConfiguration.java | 21 +++++++++- .../sso/BasicOAuth2SsoConfigurationTests.java | 6 +-- 3 files changed, 22 insertions(+), 44 deletions(-) delete mode 100644 spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/BaseConfiguration.java diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/BaseConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/BaseConfiguration.java deleted file mode 100644 index f81691d369..0000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/BaseConfiguration.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.security.oauth2.client; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Primary; -import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails; - -/** - * Common base class providing beans for authorization code clients. Does not work if - * nested inside a @Configuration class because it is considered as - * configuration. - */ -abstract class BaseConfiguration { - - @Bean - @ConfigurationProperties("security.oauth2.client") - @Primary - public AuthorizationCodeResourceDetails oauth2RemoteResource() { - AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails(); - return details; - } - -} diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2RestOperationsConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2RestOperationsConfiguration.java index 36ccdc5920..e66cb00b22 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2RestOperationsConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2RestOperationsConfiguration.java @@ -50,6 +50,7 @@ import org.springframework.security.oauth2.client.resource.OAuth2ProtectedResour import org.springframework.security.oauth2.client.token.AccessTokenRequest; import org.springframework.security.oauth2.client.token.DefaultAccessTokenRequest; import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails; +import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails; import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableOAuth2Client; import org.springframework.security.oauth2.config.annotation.web.configuration.OAuth2ClientConfiguration; @@ -99,7 +100,15 @@ public class OAuth2RestOperationsConfiguration { @Configuration @ConditionalOnBean(OAuth2ClientConfiguration.class) @ConditionalOnWebApplication - protected static class SessionScopedConfiguration extends BaseConfiguration { + protected static class SessionScopedConfiguration { + + @Bean + @ConfigurationProperties("security.oauth2.client") + @Primary + public AuthorizationCodeResourceDetails oauth2RemoteResource() { + AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails(); + return details; + } @Bean public FilterRegistrationBean oauth2ClientFilterRegistration( @@ -136,7 +145,15 @@ public class OAuth2RestOperationsConfiguration { @Configuration @ConditionalOnMissingBean(OAuth2ClientConfiguration.class) @ConditionalOnWebApplication - protected static class RequestScopedConfiguration extends BaseConfiguration { + protected static class RequestScopedConfiguration { + + @Bean + @ConfigurationProperties("security.oauth2.client") + @Primary + public AuthorizationCodeResourceDetails oauth2RemoteResource() { + AuthorizationCodeResourceDetails details = new AuthorizationCodeResourceDetails(); + return details; + } @Bean @Scope(value = "request", proxyMode = ScopedProxyMode.INTERFACES) diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/sso/BasicOAuth2SsoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/sso/BasicOAuth2SsoConfigurationTests.java index 151804fbcf..ab707ab65a 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/sso/BasicOAuth2SsoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/sso/BasicOAuth2SsoConfigurationTests.java @@ -49,10 +49,10 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(TestConfiguration.class) @WebAppConfiguration -@TestPropertySource(properties = { "security.oauth2.client.clientId=client", +@TestPropertySource(properties = { "debug=true", "security.oauth2.client.clientId=client", "security.oauth2.client.clientSecret=secret", - "security.oauth2.client.authorizationUri=http://example.com/oauth/authorize", - "security.oauth2.client.tokenUri=http://example.com/oauth/token", + "security.oauth2.client.userAuthorizationUri=http://example.com/oauth/authorize", + "security.oauth2.client.accessTokenUri=http://example.com/oauth/token", "security.oauth2.resource.jwt.keyValue=SSSSHHH" }) public class BasicOAuth2SsoConfigurationTests {