mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-17 12:09:16 +00:00
Merge pull request #46641 from jetflo
* gh-46641: Polish "Add configuration property for OAuth2 Authorization Server PAR endpoint" Add configuration property for OAuth2 Authorization Server PAR endpoint Closes gh-46641
This commit is contained in:
+14
@@ -32,6 +32,7 @@ import org.springframework.util.StringUtils;
|
||||
* OAuth 2.0 Authorization Server properties.
|
||||
*
|
||||
* @author Steve Riesenberg
|
||||
* @author Florian Lemaire
|
||||
* @since 3.1.0
|
||||
*/
|
||||
@ConfigurationProperties("spring.security.oauth2.authorizationserver")
|
||||
@@ -144,6 +145,11 @@ public class OAuth2AuthorizationServerProperties implements InitializingBean {
|
||||
*/
|
||||
private String tokenIntrospectionUri = "/oauth2/introspect";
|
||||
|
||||
/**
|
||||
* Authorization Server's OAuth 2.0 Pushed Authorization Request Endpoint.
|
||||
*/
|
||||
private String pushedAuthorizationRequestUri = "/oauth2/par";
|
||||
|
||||
/**
|
||||
* OpenID Connect 1.0 endpoints.
|
||||
*/
|
||||
@@ -206,6 +212,14 @@ public class OAuth2AuthorizationServerProperties implements InitializingBean {
|
||||
this.tokenIntrospectionUri = tokenIntrospectionUri;
|
||||
}
|
||||
|
||||
public String getPushedAuthorizationRequestUri() {
|
||||
return this.pushedAuthorizationRequestUri;
|
||||
}
|
||||
|
||||
public void setPushedAuthorizationRequestUri(String pushedAuthorizationRequestUri) {
|
||||
this.pushedAuthorizationRequestUri = pushedAuthorizationRequestUri;
|
||||
}
|
||||
|
||||
public OidcEndpoint getOidc() {
|
||||
return this.oidc;
|
||||
}
|
||||
|
||||
+2
@@ -38,6 +38,7 @@ import org.springframework.security.oauth2.server.authorization.settings.TokenSe
|
||||
* Maps {@link OAuth2AuthorizationServerProperties} to Authorization Server types.
|
||||
*
|
||||
* @author Steve Riesenberg
|
||||
* @author Florian Lemaire
|
||||
*/
|
||||
final class OAuth2AuthorizationServerPropertiesMapper {
|
||||
|
||||
@@ -61,6 +62,7 @@ final class OAuth2AuthorizationServerPropertiesMapper {
|
||||
map.from(endpoint::getJwkSetUri).to(builder::jwkSetEndpoint);
|
||||
map.from(endpoint::getTokenRevocationUri).to(builder::tokenRevocationEndpoint);
|
||||
map.from(endpoint::getTokenIntrospectionUri).to(builder::tokenIntrospectionEndpoint);
|
||||
map.from(endpoint::getPushedAuthorizationRequestUri).to(builder::pushedAuthorizationRequestEndpoint);
|
||||
map.from(oidc::getLogoutUri).to(builder::oidcLogoutEndpoint);
|
||||
map.from(oidc::getClientRegistrationUri).to(builder::oidcClientRegistrationEndpoint);
|
||||
map.from(oidc::getUserInfoUri).to(builder::oidcUserInfoEndpoint);
|
||||
|
||||
+3
@@ -41,6 +41,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
*
|
||||
* @author Steve Riesenberg
|
||||
* @author Madhura Bhave
|
||||
* @author Florian Lemaire
|
||||
*/
|
||||
class OAuth2AuthorizationServerAutoConfigurationTests {
|
||||
|
||||
@@ -133,6 +134,7 @@ class OAuth2AuthorizationServerAutoConfigurationTests {
|
||||
PROPERTIES_PREFIX + ".endpoint.token-uri=/token", PROPERTIES_PREFIX + ".endpoint.jwk-set-uri=/jwks",
|
||||
PROPERTIES_PREFIX + ".endpoint.token-revocation-uri=/revoke",
|
||||
PROPERTIES_PREFIX + ".endpoint.token-introspection-uri=/introspect",
|
||||
PROPERTIES_PREFIX + ".endpoint.pushed-authorization-request-uri=/par",
|
||||
PROPERTIES_PREFIX + ".endpoint.oidc.logout-uri=/logout",
|
||||
PROPERTIES_PREFIX + ".endpoint.oidc.client-registration-uri=/register",
|
||||
PROPERTIES_PREFIX + ".endpoint.oidc.user-info-uri=/user")
|
||||
@@ -146,6 +148,7 @@ class OAuth2AuthorizationServerAutoConfigurationTests {
|
||||
assertThat(settings.getJwkSetEndpoint()).isEqualTo("/jwks");
|
||||
assertThat(settings.getTokenRevocationEndpoint()).isEqualTo("/revoke");
|
||||
assertThat(settings.getTokenIntrospectionEndpoint()).isEqualTo("/introspect");
|
||||
assertThat(settings.getPushedAuthorizationRequestEndpoint()).isEqualTo("/par");
|
||||
assertThat(settings.getOidcLogoutEndpoint()).isEqualTo("/logout");
|
||||
assertThat(settings.getOidcClientRegistrationEndpoint()).isEqualTo("/register");
|
||||
assertThat(settings.getOidcUserInfoEndpoint()).isEqualTo("/user");
|
||||
|
||||
+5
@@ -34,6 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* Tests for {@link OAuth2AuthorizationServerPropertiesMapper}.
|
||||
*
|
||||
* @author Steve Riesenberg
|
||||
* @author Florian Lemaire
|
||||
*/
|
||||
class OAuth2AuthorizationServerPropertiesMapperTests {
|
||||
|
||||
@@ -107,6 +108,7 @@ class OAuth2AuthorizationServerPropertiesMapperTests {
|
||||
endpoints.setJwkSetUri("/jwks");
|
||||
endpoints.setTokenRevocationUri("/revoke");
|
||||
endpoints.setTokenIntrospectionUri("/introspect");
|
||||
endpoints.setPushedAuthorizationRequestUri("/par");
|
||||
OAuth2AuthorizationServerProperties.OidcEndpoint oidc = endpoints.getOidc();
|
||||
oidc.setLogoutUri("/logout");
|
||||
oidc.setClientRegistrationUri("/register");
|
||||
@@ -121,6 +123,7 @@ class OAuth2AuthorizationServerPropertiesMapperTests {
|
||||
assertThat(settings.getJwkSetEndpoint()).isEqualTo("/jwks");
|
||||
assertThat(settings.getTokenRevocationEndpoint()).isEqualTo("/revoke");
|
||||
assertThat(settings.getTokenIntrospectionEndpoint()).isEqualTo("/introspect");
|
||||
assertThat(settings.getPushedAuthorizationRequestEndpoint()).isEqualTo("/par");
|
||||
assertThat(settings.getOidcLogoutEndpoint()).isEqualTo("/logout");
|
||||
assertThat(settings.getOidcClientRegistrationEndpoint()).isEqualTo("/register");
|
||||
assertThat(settings.getOidcUserInfoEndpoint()).isEqualTo("/user");
|
||||
@@ -137,6 +140,7 @@ class OAuth2AuthorizationServerPropertiesMapperTests {
|
||||
endpoints.setJwkSetUri("/jwks");
|
||||
endpoints.setTokenRevocationUri("/revoke");
|
||||
endpoints.setTokenIntrospectionUri("/introspect");
|
||||
endpoints.setPushedAuthorizationRequestUri("/par");
|
||||
OAuth2AuthorizationServerProperties.OidcEndpoint oidc = endpoints.getOidc();
|
||||
oidc.setLogoutUri("/logout");
|
||||
oidc.setClientRegistrationUri("/register");
|
||||
@@ -151,6 +155,7 @@ class OAuth2AuthorizationServerPropertiesMapperTests {
|
||||
assertThat(settings.getJwkSetEndpoint()).isEqualTo("/jwks");
|
||||
assertThat(settings.getTokenRevocationEndpoint()).isEqualTo("/revoke");
|
||||
assertThat(settings.getTokenIntrospectionEndpoint()).isEqualTo("/introspect");
|
||||
assertThat(settings.getPushedAuthorizationRequestEndpoint()).isEqualTo("/par");
|
||||
assertThat(settings.getOidcLogoutEndpoint()).isEqualTo("/logout");
|
||||
assertThat(settings.getOidcClientRegistrationEndpoint()).isEqualTo("/register");
|
||||
assertThat(settings.getOidcUserInfoEndpoint()).isEqualTo("/user");
|
||||
|
||||
+3
@@ -29,6 +29,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
|
||||
* Tests for {@link OAuth2AuthorizationServerProperties}.
|
||||
*
|
||||
* @author Steve Riesenberg
|
||||
* @author Florian Lemaire
|
||||
*/
|
||||
class OAuth2AuthorizationServerPropertiesTests {
|
||||
|
||||
@@ -85,6 +86,8 @@ class OAuth2AuthorizationServerPropertiesTests {
|
||||
assertThat(properties.getJwkSetUri()).isEqualTo(defaults.getJwkSetEndpoint());
|
||||
assertThat(properties.getTokenRevocationUri()).isEqualTo(defaults.getTokenRevocationEndpoint());
|
||||
assertThat(properties.getTokenIntrospectionUri()).isEqualTo(defaults.getTokenIntrospectionEndpoint());
|
||||
assertThat(properties.getPushedAuthorizationRequestUri())
|
||||
.isEqualTo(defaults.getPushedAuthorizationRequestEndpoint());
|
||||
OAuth2AuthorizationServerProperties.OidcEndpoint oidc = properties.getOidc();
|
||||
assertThat(oidc.getLogoutUri()).isEqualTo(defaults.getOidcLogoutEndpoint());
|
||||
assertThat(oidc.getClientRegistrationUri()).isEqualTo(defaults.getOidcClientRegistrationEndpoint());
|
||||
|
||||
+1
@@ -9,6 +9,7 @@ spring:
|
||||
jwk-set-uri: /jwks
|
||||
token-revocation-uri: /revoke
|
||||
token-introspection-uri: /introspect
|
||||
pushed-authorization-request-uri: /par
|
||||
oidc:
|
||||
logout-uri: /logout
|
||||
client-registration-uri: /register
|
||||
|
||||
+2
@@ -70,6 +70,7 @@ class SampleOAuth2AuthorizationServerApplicationTests {
|
||||
assertThat(config.getTokenRevocationEndpoint()).hasToString("https://provider.com/revoke");
|
||||
assertThat(config.getEndSessionEndpoint()).hasToString("https://provider.com/logout");
|
||||
assertThat(config.getTokenIntrospectionEndpoint()).hasToString("https://provider.com/introspect");
|
||||
assertThat(config.getPushedAuthorizationRequestEndpoint()).hasToString("https://provider.com/par");
|
||||
assertThat(config.getUserInfoEndpoint()).hasToString("https://provider.com/user");
|
||||
// OIDC Client Registration is disabled by default
|
||||
assertThat(config.getClientRegistrationEndpoint()).isNull();
|
||||
@@ -88,6 +89,7 @@ class SampleOAuth2AuthorizationServerApplicationTests {
|
||||
assertThat(config.getJwkSetUrl()).hasToString("https://provider.com/jwks");
|
||||
assertThat(config.getTokenRevocationEndpoint()).hasToString("https://provider.com/revoke");
|
||||
assertThat(config.getTokenIntrospectionEndpoint()).hasToString("https://provider.com/introspect");
|
||||
assertThat(config.getPushedAuthorizationRequestEndpoint()).hasToString("https://provider.com/par");
|
||||
// OIDC Client Registration is disabled by default
|
||||
assertThat(config.getClientRegistrationEndpoint()).isNull();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user