|
15 | 15 | */
|
16 | 16 | package org.springframework.security.oauth2.client.registration;
|
17 | 17 |
|
18 |
| -import org.junit.Test; |
19 |
| -import org.springframework.security.oauth2.core.AuthenticationMethod; |
20 |
| -import org.springframework.security.oauth2.core.AuthorizationGrantType; |
21 |
| -import org.springframework.security.oauth2.core.ClientAuthenticationMethod; |
22 |
| - |
23 | 18 | import java.util.Collections;
|
24 | 19 | import java.util.LinkedHashMap;
|
25 | 20 | import java.util.Map;
|
26 | 21 | import java.util.Set;
|
27 | 22 | import java.util.stream.Collectors;
|
28 | 23 | import java.util.stream.Stream;
|
29 | 24 |
|
| 25 | +import org.junit.Test; |
| 26 | + |
| 27 | +import org.springframework.security.oauth2.core.AuthenticationMethod; |
| 28 | +import org.springframework.security.oauth2.core.AuthorizationGrantType; |
| 29 | +import org.springframework.security.oauth2.core.ClientAuthenticationMethod; |
| 30 | + |
30 | 31 | import static org.assertj.core.api.Assertions.assertThat;
|
31 | 32 | import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
| 33 | +import static org.springframework.security.oauth2.client.registration.ClientRegistration.withClientRegistration; |
| 34 | +import static org.springframework.security.oauth2.client.registration.TestClientRegistrations.clientRegistration; |
32 | 35 |
|
33 | 36 | /**
|
34 | 37 | * Tests for {@link ClientRegistration}.
|
@@ -696,4 +699,72 @@ public void buildWhenCustomGrantAllAttributesProvidedThenAllAttributesAreSet() {
|
696 | 699 | assertThat(registration.getProviderDetails().getTokenUri()).isEqualTo(TOKEN_URI);
|
697 | 700 | assertThat(registration.getClientName()).isEqualTo(CLIENT_NAME);
|
698 | 701 | }
|
| 702 | + |
| 703 | + @Test |
| 704 | + public void buildWhenClientRegistrationProvidedThenMakesACopy() { |
| 705 | + ClientRegistration clientRegistration = clientRegistration().build(); |
| 706 | + ClientRegistration updated = withClientRegistration(clientRegistration).build(); |
| 707 | + assertThat(clientRegistration.getScopes()).isEqualTo(updated.getScopes()); |
| 708 | + assertThat(clientRegistration.getScopes()).isNotSameAs(updated.getScopes()); |
| 709 | + assertThat(clientRegistration.getProviderDetails().getConfigurationMetadata()) |
| 710 | + .isEqualTo(updated.getProviderDetails().getConfigurationMetadata()); |
| 711 | + assertThat(clientRegistration.getProviderDetails().getConfigurationMetadata()) |
| 712 | + .isNotSameAs(updated.getProviderDetails().getConfigurationMetadata()); |
| 713 | + } |
| 714 | + |
| 715 | + @Test |
| 716 | + public void buildWhenClientRegistrationProvidedThenEachPropertyMatches() { |
| 717 | + ClientRegistration clientRegistration = clientRegistration().build(); |
| 718 | + ClientRegistration updated = withClientRegistration(clientRegistration).build(); |
| 719 | + assertThat(clientRegistration.getRegistrationId()).isEqualTo(updated.getRegistrationId()); |
| 720 | + assertThat(clientRegistration.getClientId()).isEqualTo(updated.getClientId()); |
| 721 | + assertThat(clientRegistration.getClientSecret()).isEqualTo(updated.getClientSecret()); |
| 722 | + assertThat(clientRegistration.getClientAuthenticationMethod()) |
| 723 | + .isEqualTo(updated.getClientAuthenticationMethod()); |
| 724 | + assertThat(clientRegistration.getAuthorizationGrantType()) |
| 725 | + .isEqualTo(updated.getAuthorizationGrantType()); |
| 726 | + assertThat(clientRegistration.getRedirectUriTemplate()) |
| 727 | + .isEqualTo(updated.getRedirectUriTemplate()); |
| 728 | + assertThat(clientRegistration.getScopes()).isEqualTo(updated.getScopes()); |
| 729 | + |
| 730 | + ClientRegistration.ProviderDetails providerDetails = clientRegistration.getProviderDetails(); |
| 731 | + ClientRegistration.ProviderDetails updatedProviderDetails = updated.getProviderDetails(); |
| 732 | + assertThat(providerDetails.getAuthorizationUri()) |
| 733 | + .isEqualTo(updatedProviderDetails.getAuthorizationUri()); |
| 734 | + assertThat(providerDetails.getTokenUri()) |
| 735 | + .isEqualTo(updatedProviderDetails.getTokenUri()); |
| 736 | + |
| 737 | + ClientRegistration.ProviderDetails.UserInfoEndpoint userInfoEndpoint = providerDetails.getUserInfoEndpoint(); |
| 738 | + ClientRegistration.ProviderDetails.UserInfoEndpoint updatedUserInfoEndpoint = updatedProviderDetails.getUserInfoEndpoint(); |
| 739 | + assertThat(userInfoEndpoint.getUri()).isEqualTo(updatedUserInfoEndpoint.getUri()); |
| 740 | + assertThat(userInfoEndpoint.getAuthenticationMethod()) |
| 741 | + .isEqualTo(updatedUserInfoEndpoint.getAuthenticationMethod()); |
| 742 | + assertThat(userInfoEndpoint.getUserNameAttributeName()) |
| 743 | + .isEqualTo(updatedUserInfoEndpoint.getUserNameAttributeName()); |
| 744 | + |
| 745 | + assertThat(providerDetails.getJwkSetUri()).isEqualTo(updatedProviderDetails.getJwkSetUri()); |
| 746 | + assertThat(providerDetails.getConfigurationMetadata()) |
| 747 | + .isEqualTo(updatedProviderDetails.getConfigurationMetadata()); |
| 748 | + |
| 749 | + assertThat(clientRegistration.getClientName()).isEqualTo(updated.getClientName()); |
| 750 | + } |
| 751 | + |
| 752 | + @Test |
| 753 | + public void buildWhenClientRegistrationValuesOverriddenThenPropagated() { |
| 754 | + ClientRegistration clientRegistration = clientRegistration().build(); |
| 755 | + ClientRegistration updated = withClientRegistration(clientRegistration) |
| 756 | + .clientSecret("a-new-secret") |
| 757 | + .scope("a-new-scope") |
| 758 | + .providerConfigurationMetadata(Collections.singletonMap("a-new-config", "a-new-value")) |
| 759 | + .build(); |
| 760 | + |
| 761 | + assertThat(clientRegistration.getClientSecret()).isNotEqualTo(updated.getClientSecret()); |
| 762 | + assertThat(updated.getClientSecret()).isEqualTo("a-new-secret"); |
| 763 | + assertThat(clientRegistration.getScopes()).doesNotContain("a-new-scope"); |
| 764 | + assertThat(updated.getScopes()).containsExactly("a-new-scope"); |
| 765 | + assertThat(clientRegistration.getProviderDetails().getConfigurationMetadata()) |
| 766 | + .doesNotContainKey("a-new-config").doesNotContainValue("a-new-value"); |
| 767 | + assertThat(updated.getProviderDetails().getConfigurationMetadata()) |
| 768 | + .containsOnlyKeys("a-new-config").containsValue("a-new-value"); |
| 769 | + } |
699 | 770 | }
|
0 commit comments