Browse Source

UserInfoTypeConverter is registered if client is registered

Fixes gh-4364
Thai Ha 8 years ago
parent
commit
489ffcfce5

+ 1 - 1
samples/boot/oauth2login/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/ClientRegistrationAutoConfiguration.java

@@ -47,8 +47,8 @@ import java.util.stream.Collectors;
 @ConditionalOnMissingBean(ClientRegistrationRepository.class)
 @AutoConfigureBefore(SecurityAutoConfiguration.class)
 public class ClientRegistrationAutoConfiguration {
-	private static final String CLIENT_ID_PROPERTY = "client-id";
 	private static final String CLIENTS_DEFAULTS_RESOURCE = "META-INF/oauth2-clients-defaults.yml";
+	static final String CLIENT_ID_PROPERTY = "client-id";
 	static final String CLIENT_PROPERTY_PREFIX = "security.oauth2.client";
 
 	@Configuration

+ 4 - 2
samples/boot/oauth2login/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2LoginAutoConfiguration.java

@@ -40,8 +40,7 @@ import java.net.URI;
 import java.util.Set;
 import java.util.function.Function;
 
-import static org.springframework.boot.autoconfigure.security.oauth2.client.ClientRegistrationAutoConfiguration.CLIENT_PROPERTY_PREFIX;
-import static org.springframework.boot.autoconfigure.security.oauth2.client.ClientRegistrationAutoConfiguration.resolveClientPropertyKeys;
+import static org.springframework.boot.autoconfigure.security.oauth2.client.ClientRegistrationAutoConfiguration.*;
 
 /**
  * @author Joe Grandja
@@ -84,6 +83,9 @@ public class OAuth2LoginAutoConfiguration {
 			Set<String> clientPropertyKeys = resolveClientPropertyKeys(this.environment);
 			for (String clientPropertyKey : clientPropertyKeys) {
 				String fullClientPropertyKey = CLIENT_PROPERTY_PREFIX + "." + clientPropertyKey;
+				if (!this.environment.containsProperty(fullClientPropertyKey + "." + CLIENT_ID_PROPERTY)) {
+					continue;
+				}
 				String userInfoUriValue = this.environment.getProperty(fullClientPropertyKey + "." + USER_INFO_URI_PROPERTY);
 				String userInfoConverterTypeValue = this.environment.getProperty(fullClientPropertyKey + "." + USER_INFO_CONVERTER_PROPERTY);
 				if (userInfoUriValue != null && userInfoConverterTypeValue != null) {