Skip to content

Commit 315fb78

Browse files
committed
Merge pull request #10672 from Thiago Hirata
* gh-10672: UserNameAttribute for custom OAuth2 provider
2 parents 4b73c57 + f3055f2 commit 315fb78

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
* {@link ClientRegistration}.
3838
*
3939
* @author Phillip Webb
40+
* @author Thiago Hirata
4041
* @since 2.0.0
4142
*/
4243
final class OAuth2ClientPropertiesRegistrationAdapter {
@@ -98,6 +99,7 @@ private static Builder getBuilder(Builder builder, Provider provider) {
9899
copyIfNotNull(provider::getTokenUri, builder::tokenUri);
99100
copyIfNotNull(provider::getUserInfoUri, builder::userInfoUri);
100101
copyIfNotNull(provider::getJwkSetUri, builder::jwkSetUri);
102+
copyIfNotNull(provider::getUserNameAttribute, builder::userNameAttributeName);
101103
return builder;
102104
}
103105

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapterTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties.Registration;
2828
import org.springframework.security.oauth2.client.registration.ClientRegistration;
2929
import org.springframework.security.oauth2.client.registration.ClientRegistration.ProviderDetails;
30+
import org.springframework.security.oauth2.core.oidc.IdTokenClaimNames;
3031

3132
import static org.assertj.core.api.Assertions.assertThat;
3233

@@ -35,6 +36,7 @@
3536
*
3637
* @author Phillip Webb
3738
* @author Madhura Bhave
39+
* @author Thiago Hirata
3840
*/
3941
public class OAuth2ClientPropertiesRegistrationAdapterTests {
4042

@@ -48,6 +50,7 @@ public void getClientRegistrationsWhenUsingDefinedProviderShouldAdapt() {
4850
provider.setAuthorizationUri("http://example.com/auth");
4951
provider.setTokenUri("http://example.com/token");
5052
provider.setUserInfoUri("http://example.com/info");
53+
provider.setUserNameAttribute("sub");
5154
provider.setJwkSetUri("http://example.com/jwk");
5255
Registration registration = new Registration();
5356
registration.setProvider("provider");
@@ -69,6 +72,8 @@ public void getClientRegistrationsWhenUsingDefinedProviderShouldAdapt() {
6972
assertThat(adaptedProvider.getTokenUri()).isEqualTo("http://example.com/token");
7073
assertThat(adaptedProvider.getUserInfoEndpoint().getUri())
7174
.isEqualTo("http://example.com/info");
75+
assertThat(adaptedProvider.getUserInfoEndpoint().getUserNameAttributeName())
76+
.isEqualTo("sub");
7277
assertThat(adaptedProvider.getJwkSetUri()).isEqualTo("http://example.com/jwk");
7378
assertThat(adapted.getRegistrationId()).isEqualTo("registration");
7479
assertThat(adapted.getClientId()).isEqualTo("clientId");
@@ -101,6 +106,8 @@ public void getClientRegistrationsWhenUsingCommonProviderShouldAdapt() {
101106
.isEqualTo("https://www.googleapis.com/oauth2/v4/token");
102107
assertThat(adaptedProvider.getUserInfoEndpoint().getUri())
103108
.isEqualTo("https://www.googleapis.com/oauth2/v3/userinfo");
109+
assertThat(adaptedProvider.getUserInfoEndpoint().getUserNameAttributeName())
110+
.isEqualTo(IdTokenClaimNames.SUB);
104111
assertThat(adaptedProvider.getJwkSetUri())
105112
.isEqualTo("https://www.googleapis.com/oauth2/v3/certs");
106113
assertThat(adapted.getRegistrationId()).isEqualTo("registration");
@@ -140,6 +147,8 @@ public void getClientRegistrationsWhenUsingCommonProviderWithOverrideShouldAdapt
140147
.isEqualTo("https://www.googleapis.com/oauth2/v4/token");
141148
assertThat(adaptedProvider.getUserInfoEndpoint().getUri())
142149
.isEqualTo("https://www.googleapis.com/oauth2/v3/userinfo");
150+
assertThat(adaptedProvider.getUserInfoEndpoint().getUserNameAttributeName())
151+
.isEqualTo(IdTokenClaimNames.SUB);
143152
assertThat(adaptedProvider.getJwkSetUri())
144153
.isEqualTo("https://www.googleapis.com/oauth2/v3/certs");
145154
assertThat(adapted.getRegistrationId()).isEqualTo("registration");

0 commit comments

Comments
 (0)