mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-05-31 01:02:14 +00:00
Ensure that ClientSettings cannot be null
This ensures that ClientRegistration.Builder.ClientSettings cannot be null. This has a slight advantage in terms of null safety to making this check happen in the build method since the Builder does not have a null field either. Issue gh-16382
This commit is contained in:
parent
0ed7b18f42
commit
2665a92107
@ -378,7 +378,7 @@ public final class ClientRegistration implements Serializable {
|
||||
|
||||
private String clientName;
|
||||
|
||||
private ClientSettings clientSettings;
|
||||
private ClientSettings clientSettings = ClientSettings.builder().build();
|
||||
|
||||
private Builder(String registrationId) {
|
||||
this.registrationId = registrationId;
|
||||
@ -614,6 +614,7 @@ public final class ClientRegistration implements Serializable {
|
||||
* @return the {@link Builder}
|
||||
*/
|
||||
public Builder clientSettings(ClientSettings clientSettings) {
|
||||
Assert.notNull(clientSettings, "clientSettings cannot be null");
|
||||
this.clientSettings = clientSettings;
|
||||
return this;
|
||||
}
|
||||
@ -651,8 +652,7 @@ public final class ClientRegistration implements Serializable {
|
||||
clientRegistration.providerDetails = createProviderDetails(clientRegistration);
|
||||
clientRegistration.clientName = StringUtils.hasText(this.clientName) ? this.clientName
|
||||
: this.registrationId;
|
||||
clientRegistration.clientSettings = (this.clientSettings == null) ? ClientSettings.builder().build()
|
||||
: this.clientSettings;
|
||||
clientRegistration.clientSettings = this.clientSettings;
|
||||
return clientRegistration;
|
||||
}
|
||||
|
||||
|
@ -753,4 +753,27 @@ public class ClientRegistrationTests {
|
||||
assertThat(clientRegistration.getClientAuthenticationMethod()).isEqualTo(clientAuthenticationMethod);
|
||||
}
|
||||
|
||||
@Test
|
||||
void clientSettingsWhenNullThenThrowIllegalArgumentException() {
|
||||
assertThatIllegalArgumentException()
|
||||
.isThrownBy(() -> ClientRegistration.withRegistrationId(REGISTRATION_ID).clientSettings(null));
|
||||
}
|
||||
|
||||
// gh-16382
|
||||
@Test
|
||||
void buildWhenDefaultClientSettingsThenDefaulted() {
|
||||
ClientRegistration clientRegistration = ClientRegistration.withRegistrationId(REGISTRATION_ID)
|
||||
.clientId(CLIENT_ID)
|
||||
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
|
||||
.redirectUri(REDIRECT_URI)
|
||||
.authorizationUri(AUTHORIZATION_URI)
|
||||
.tokenUri(TOKEN_URI)
|
||||
.build();
|
||||
|
||||
// should not be null
|
||||
assertThat(clientRegistration.getClientSettings()).isNotNull();
|
||||
// proof key should be false for passivity
|
||||
assertThat(clientRegistration.getClientSettings().isRequireProofKey()).isFalse();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user