diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java index 3dd47951..07fcefbd 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java @@ -341,7 +341,7 @@ public final class OAuth2AuthorizationCodeRequestAuthenticationProvider implemen private static boolean requireAuthorizationConsent(RegisteredClient registeredClient, OAuth2AuthorizationRequest authorizationRequest, OAuth2AuthorizationConsent authorizationConsent) { - if (!registeredClient.getClientSettings().requireUserConsent()) { + if (!registeredClient.getClientSettings().requireAuthorizationConsent()) { return false; } // 'openid' scope does not require consent diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/config/ClientSettings.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/config/ClientSettings.java index 783f6f4c..9cbe1c73 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/config/ClientSettings.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/config/ClientSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 the original author or authors. + * Copyright 2020-2021 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. @@ -28,7 +28,7 @@ import java.util.Map; public class ClientSettings extends Settings { private static final String CLIENT_SETTING_BASE = "setting.client."; public static final String REQUIRE_PROOF_KEY = CLIENT_SETTING_BASE.concat("require-proof-key"); - public static final String REQUIRE_USER_CONSENT = CLIENT_SETTING_BASE.concat("require-user-consent"); + public static final String REQUIRE_AUTHORIZATION_CONSENT = CLIENT_SETTING_BASE.concat("require-authorization-consent"); /** * Constructs a {@code ClientSettings}. @@ -69,31 +69,31 @@ public class ClientSettings extends Settings { } /** - * Returns {@code true} if the user's consent is required when the client requests access. + * Returns {@code true} if authorization consent is required when the client requests access. * The default is {@code false}. * - * @return {@code true} if the user's consent is required when the client requests access, {@code false} otherwise + * @return {@code true} if authorization consent is required when the client requests access, {@code false} otherwise */ - public boolean requireUserConsent() { - return setting(REQUIRE_USER_CONSENT); + public boolean requireAuthorizationConsent() { + return setting(REQUIRE_AUTHORIZATION_CONSENT); } /** - * Set to {@code true} if the user's consent is required when the client requests access. + * Set to {@code true} if authorization consent is required when the client requests access. * This applies to all interactive flows (e.g. {@code authorization_code} and {@code device_code}). * - * @param requireUserConsent {@code true} if the user's consent is required when the client requests access, {@code false} otherwise + * @param requireAuthorizationConsent {@code true} if authorization consent is required when the client requests access, {@code false} otherwise * @return the {@link ClientSettings} */ - public ClientSettings requireUserConsent(boolean requireUserConsent) { - setting(REQUIRE_USER_CONSENT, requireUserConsent); + public ClientSettings requireAuthorizationConsent(boolean requireAuthorizationConsent) { + setting(REQUIRE_AUTHORIZATION_CONSENT, requireAuthorizationConsent); return this; } protected static Map defaultSettings() { Map settings = new HashMap<>(); settings.put(REQUIRE_PROOF_KEY, false); - settings.put(REQUIRE_USER_CONSENT, false); + settings.put(REQUIRE_AUTHORIZATION_CONSENT, false); return settings; } } diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProvider.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProvider.java index 9bae30aa..eaa2a862 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProvider.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProvider.java @@ -172,7 +172,7 @@ public final class OidcClientRegistrationAuthenticationProvider implements Authe .clientSettings(clientSettings -> clientSettings .requireProofKey(true) - .requireUserConsent(true)) + .requireAuthorizationConsent(true)) .tokenSettings(tokenSettings -> tokenSettings .idTokenSignatureAlgorithm(SignatureAlgorithm.RS256)); diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2AuthorizationCodeGrantTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2AuthorizationCodeGrantTests.java index a4b75f3c..9f01a0d8 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2AuthorizationCodeGrantTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2AuthorizationCodeGrantTests.java @@ -389,7 +389,7 @@ public class OAuth2AuthorizationCodeGrantTests { scopes.add("message.read"); scopes.add("message.write"); }) - .clientSettings(settings -> settings.requireUserConsent(true)) + .clientSettings(settings -> settings.requireAuthorizationConsent(true)) .build(); this.registeredClientRepository.save(registeredClient); @@ -416,7 +416,7 @@ public class OAuth2AuthorizationCodeGrantTests { scopes.add("message.read"); scopes.add("message.write"); }) - .clientSettings(settings -> settings.requireUserConsent(true)) + .clientSettings(settings -> settings.requireAuthorizationConsent(true)) .build(); this.registeredClientRepository.save(registeredClient); @@ -464,7 +464,7 @@ public class OAuth2AuthorizationCodeGrantTests { scopes.add("message.read"); scopes.add("message.write"); }) - .clientSettings(settings -> settings.requireUserConsent(true)) + .clientSettings(settings -> settings.requireAuthorizationConsent(true)) .build(); this.registeredClientRepository.save(registeredClient); diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProviderTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProviderTests.java index d4f494e6..ce044b7e 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProviderTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProviderTests.java @@ -365,7 +365,7 @@ public class OAuth2AuthorizationCodeRequestAuthenticationProviderTests { @Test public void authenticateWhenRequireAuthorizationConsentThenReturnAuthorizationConsent() { RegisteredClient registeredClient = TestRegisteredClients.registeredClient() - .clientSettings(clientSettings -> clientSettings.requireUserConsent(true)) + .clientSettings(clientSettings -> clientSettings.requireAuthorizationConsent(true)) .build(); when(this.registeredClientRepository.findByClientId(eq(registeredClient.getClientId()))) .thenReturn(registeredClient); @@ -412,7 +412,7 @@ public class OAuth2AuthorizationCodeRequestAuthenticationProviderTests { @Test public void authenticateWhenRequireAuthorizationConsentAndOnlyOpenidScopeRequestedThenAuthorizationConsentNotRequired() { RegisteredClient registeredClient = TestRegisteredClients.registeredClient() - .clientSettings(clientSettings -> clientSettings.requireUserConsent(true)) + .clientSettings(clientSettings -> clientSettings.requireAuthorizationConsent(true)) .scopes(scopes -> { scopes.clear(); scopes.add(OidcScopes.OPENID); @@ -434,7 +434,7 @@ public class OAuth2AuthorizationCodeRequestAuthenticationProviderTests { @Test public void authenticateWhenRequireAuthorizationConsentAndAllPreviouslyApprovedThenAuthorizationConsentNotRequired() { RegisteredClient registeredClient = TestRegisteredClients.registeredClient() - .clientSettings(clientSettings -> clientSettings.requireUserConsent(true)) + .clientSettings(clientSettings -> clientSettings.requireAuthorizationConsent(true)) .build(); when(this.registeredClientRepository.findByClientId(eq(registeredClient.getClientId()))) .thenReturn(registeredClient); diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/config/ClientSettingsTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/config/ClientSettingsTests.java index 48e8b1e0..06a9b5bd 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/config/ClientSettingsTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/config/ClientSettingsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 the original author or authors. + * Copyright 2020-2021 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. @@ -32,7 +32,7 @@ public class ClientSettingsTests { ClientSettings clientSettings = new ClientSettings(); assertThat(clientSettings.settings()).hasSize(2); assertThat(clientSettings.requireProofKey()).isFalse(); - assertThat(clientSettings.requireUserConsent()).isFalse(); + assertThat(clientSettings.requireAuthorizationConsent()).isFalse(); } @Test @@ -49,9 +49,9 @@ public class ClientSettingsTests { } @Test - public void requireUserConsentWhenTrueThenSet() { - ClientSettings clientSettings = new ClientSettings().requireUserConsent(true); - assertThat(clientSettings.requireUserConsent()).isTrue(); + public void requireAuthorizationConsentWhenTrueThenSet() { + ClientSettings clientSettings = new ClientSettings().requireAuthorizationConsent(true); + assertThat(clientSettings.requireAuthorizationConsent()).isTrue(); } @Test @@ -60,10 +60,10 @@ public class ClientSettingsTests { .setting("name1", "value1") .requireProofKey(true) .settings(settings -> settings.put("name2", "value2")) - .requireUserConsent(true); + .requireAuthorizationConsent(true); assertThat(clientSettings.settings()).hasSize(4); assertThat(clientSettings.requireProofKey()).isTrue(); - assertThat(clientSettings.requireUserConsent()).isTrue(); + assertThat(clientSettings.requireAuthorizationConsent()).isTrue(); assertThat(clientSettings.setting("name1")).isEqualTo("value1"); assertThat(clientSettings.setting("name2")).isEqualTo("value2"); } diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProviderTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProviderTests.java index a6986920..09385bb4 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProviderTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProviderTests.java @@ -265,7 +265,7 @@ public class OidcClientRegistrationAuthenticationProviderTests { .containsExactlyInAnyOrder(AuthorizationGrantType.AUTHORIZATION_CODE, AuthorizationGrantType.CLIENT_CREDENTIALS); assertThat(registeredClientResult.getScopes()).containsExactlyInAnyOrder("scope1", "scope2"); assertThat(registeredClientResult.getClientSettings().requireProofKey()).isTrue(); - assertThat(registeredClientResult.getClientSettings().requireUserConsent()).isTrue(); + assertThat(registeredClientResult.getClientSettings().requireAuthorizationConsent()).isTrue(); assertThat(registeredClientResult.getTokenSettings().idTokenSignatureAlgorithm()).isEqualTo(SignatureAlgorithm.RS256); OidcClientRegistration clientRegistrationResult = authenticationResult.getClientRegistration(); diff --git a/samples/boot/oauth2-integration/authorizationserver-custom-consent-page/src/main/java/sample/config/AuthorizationServerConfig.java b/samples/boot/oauth2-integration/authorizationserver-custom-consent-page/src/main/java/sample/config/AuthorizationServerConfig.java index 9eb27333..f47976dd 100644 --- a/samples/boot/oauth2-integration/authorizationserver-custom-consent-page/src/main/java/sample/config/AuthorizationServerConfig.java +++ b/samples/boot/oauth2-integration/authorizationserver-custom-consent-page/src/main/java/sample/config/AuthorizationServerConfig.java @@ -86,7 +86,7 @@ public class AuthorizationServerConfig { .scope(OidcScopes.OPENID) .scope("message.read") .scope("message.write") - .clientSettings(clientSettings -> clientSettings.requireUserConsent(true)) + .clientSettings(clientSettings -> clientSettings.requireAuthorizationConsent(true)) .build(); return new InMemoryRegisteredClientRepository(registeredClient); } diff --git a/samples/boot/oauth2-integration/authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java b/samples/boot/oauth2-integration/authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java index 765756b7..f36c8e68 100644 --- a/samples/boot/oauth2-integration/authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java +++ b/samples/boot/oauth2-integration/authorizationserver/src/main/java/sample/config/AuthorizationServerConfig.java @@ -77,7 +77,7 @@ public class AuthorizationServerConfig { .scope(OidcScopes.OPENID) .scope("message.read") .scope("message.write") - .clientSettings(clientSettings -> clientSettings.requireUserConsent(true)) + .clientSettings(clientSettings -> clientSettings.requireAuthorizationConsent(true)) .build(); // Save registered client in db as if in-memory