Make AuthorizationServerContext an interface
Closes gh-867
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
package org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers;
|
package org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
@@ -52,8 +53,10 @@ final class AuthorizationServerContextFilter extends OncePerRequestFilter {
|
|||||||
throws ServletException, IOException {
|
throws ServletException, IOException {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
AuthorizationServerContext authorizationServerContext = new AuthorizationServerContext(
|
AuthorizationServerContext authorizationServerContext =
|
||||||
this.authorizationServerSettings, () -> resolveIssuer(this.authorizationServerSettings, request));
|
new DefaultAuthorizationServerContext(
|
||||||
|
() -> resolveIssuer(this.authorizationServerSettings, request),
|
||||||
|
this.authorizationServerSettings);
|
||||||
AuthorizationServerContextHolder.setContext(authorizationServerContext);
|
AuthorizationServerContextHolder.setContext(authorizationServerContext);
|
||||||
filterChain.doFilter(request, response);
|
filterChain.doFilter(request, response);
|
||||||
} finally {
|
} finally {
|
||||||
@@ -78,4 +81,25 @@ final class AuthorizationServerContextFilter extends OncePerRequestFilter {
|
|||||||
// @formatter:on
|
// @formatter:on
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final class DefaultAuthorizationServerContext implements AuthorizationServerContext {
|
||||||
|
private final Supplier<String> issuerSupplier;
|
||||||
|
private final AuthorizationServerSettings authorizationServerSettings;
|
||||||
|
|
||||||
|
private DefaultAuthorizationServerContext(Supplier<String> issuerSupplier, AuthorizationServerSettings authorizationServerSettings) {
|
||||||
|
this.issuerSupplier = issuerSupplier;
|
||||||
|
this.authorizationServerSettings = authorizationServerSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIssuer() {
|
||||||
|
return this.issuerSupplier.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AuthorizationServerSettings getAuthorizationServerSettings() {
|
||||||
|
return this.authorizationServerSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,11 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.springframework.security.oauth2.server.authorization.context;
|
package org.springframework.security.oauth2.server.authorization.context;
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
import org.springframework.lang.Nullable;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.util.Assert;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A context that holds information of the Authorization Server runtime environment.
|
* A context that holds information of the Authorization Server runtime environment.
|
||||||
@@ -29,42 +25,20 @@ import org.springframework.util.Assert;
|
|||||||
* @see AuthorizationServerSettings
|
* @see AuthorizationServerSettings
|
||||||
* @see AuthorizationServerContextHolder
|
* @see AuthorizationServerContextHolder
|
||||||
*/
|
*/
|
||||||
public final class AuthorizationServerContext {
|
public interface AuthorizationServerContext {
|
||||||
private final AuthorizationServerSettings authorizationServerSettings;
|
|
||||||
private final Supplier<String> issuerSupplier;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs an {@code AuthorizationServerContext} using the provided parameters.
|
* Returns the {@code URL} of the Authorization Server's issuer identifier.
|
||||||
*
|
*
|
||||||
* @param authorizationServerSettings the authorization server settings
|
* @return the {@code URL} of the Authorization Server's issuer identifier
|
||||||
* @param issuerSupplier a {@code Supplier} for the {@code URL} of the Authorization Server's issuer identifier
|
|
||||||
*/
|
*/
|
||||||
public AuthorizationServerContext(AuthorizationServerSettings authorizationServerSettings, @Nullable Supplier<String> issuerSupplier) {
|
String getIssuer();
|
||||||
Assert.notNull(authorizationServerSettings, "authorizationServerSettings cannot be null");
|
|
||||||
this.authorizationServerSettings = authorizationServerSettings;
|
|
||||||
this.issuerSupplier = issuerSupplier;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the {@link AuthorizationServerSettings}.
|
* Returns the {@link AuthorizationServerSettings}.
|
||||||
*
|
*
|
||||||
* @return the {@link AuthorizationServerSettings}
|
* @return the {@link AuthorizationServerSettings}
|
||||||
*/
|
*/
|
||||||
public AuthorizationServerSettings getAuthorizationServerSettings() {
|
AuthorizationServerSettings getAuthorizationServerSettings();
|
||||||
return this.authorizationServerSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the {@code URL} of the Authorization Server's issuer identifier.
|
|
||||||
* The issuer identifier is resolved from the constructor parameter {@code Supplier<String>}
|
|
||||||
* or if not provided then defaults to {@link AuthorizationServerSettings#getIssuer()}.
|
|
||||||
*
|
|
||||||
* @return the {@code URL} of the Authorization Server's issuer identifier
|
|
||||||
*/
|
|
||||||
public String getIssuer() {
|
|
||||||
return this.issuerSupplier != null ?
|
|
||||||
this.issuerSupplier.get() :
|
|
||||||
getAuthorizationServerSettings().getIssuer();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,8 +57,8 @@ import org.springframework.security.oauth2.server.authorization.TestOAuth2Author
|
|||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
@@ -100,7 +100,7 @@ public class JwtClientAssertionAuthenticationProviderTests {
|
|||||||
this.authenticationProvider = new JwtClientAssertionAuthenticationProvider(
|
this.authenticationProvider = new JwtClientAssertionAuthenticationProvider(
|
||||||
this.registeredClientRepository, this.authorizationService);
|
this.registeredClientRepository, this.authorizationService);
|
||||||
this.authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://auth-server.com").build();
|
this.authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://auth-server.com").build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(this.authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(this.authorizationServerSettings, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ import org.springframework.security.oauth2.server.authorization.OAuth2TokenType;
|
|||||||
import org.springframework.security.oauth2.server.authorization.TestOAuth2Authorizations;
|
import org.springframework.security.oauth2.server.authorization.TestOAuth2Authorizations;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
||||||
@@ -119,7 +119,7 @@ public class OAuth2AuthorizationCodeAuthenticationProviderTests {
|
|||||||
this.authenticationProvider = new OAuth2AuthorizationCodeAuthenticationProvider(
|
this.authenticationProvider = new OAuth2AuthorizationCodeAuthenticationProvider(
|
||||||
this.authorizationService, this.tokenGenerator);
|
this.authorizationService, this.tokenGenerator);
|
||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
|
|||||||
@@ -48,8 +48,8 @@ import org.springframework.security.oauth2.server.authorization.TestOAuth2Author
|
|||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClientRepository;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.token.OAuth2TokenGenerator;
|
import org.springframework.security.oauth2.server.authorization.token.OAuth2TokenGenerator;
|
||||||
@@ -88,7 +88,7 @@ public class OAuth2AuthorizationCodeRequestAuthenticationProviderTests {
|
|||||||
this.principal = new TestingAuthenticationToken("principalName", "password");
|
this.principal = new TestingAuthenticationToken("principalName", "password");
|
||||||
this.principal.setAuthenticated(true);
|
this.principal.setAuthenticated(true);
|
||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -42,8 +42,8 @@ import org.springframework.security.oauth2.server.authorization.OAuth2Authorizat
|
|||||||
import org.springframework.security.oauth2.server.authorization.OAuth2TokenType;
|
import org.springframework.security.oauth2.server.authorization.OAuth2TokenType;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
||||||
@@ -100,7 +100,7 @@ public class OAuth2ClientCredentialsAuthenticationProviderTests {
|
|||||||
this.authenticationProvider = new OAuth2ClientCredentialsAuthenticationProvider(
|
this.authenticationProvider = new OAuth2ClientCredentialsAuthenticationProvider(
|
||||||
this.authorizationService, this.tokenGenerator);
|
this.authorizationService, this.tokenGenerator);
|
||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ import org.springframework.security.oauth2.server.authorization.OAuth2TokenType;
|
|||||||
import org.springframework.security.oauth2.server.authorization.TestOAuth2Authorizations;
|
import org.springframework.security.oauth2.server.authorization.TestOAuth2Authorizations;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
||||||
@@ -117,7 +117,7 @@ public class OAuth2RefreshTokenAuthenticationProviderTests {
|
|||||||
this.authenticationProvider = new OAuth2RefreshTokenAuthenticationProvider(
|
this.authenticationProvider = new OAuth2RefreshTokenAuthenticationProvider(
|
||||||
this.authorizationService, this.tokenGenerator);
|
this.authorizationService, this.tokenGenerator);
|
||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020-2022 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.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.springframework.security.oauth2.server.authorization.context;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import org.springframework.lang.Nullable;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Joe Grandja
|
||||||
|
*/
|
||||||
|
public class TestAuthorizationServerContext implements AuthorizationServerContext {
|
||||||
|
private final AuthorizationServerSettings authorizationServerSettings;
|
||||||
|
private final Supplier<String> issuerSupplier;
|
||||||
|
|
||||||
|
public TestAuthorizationServerContext(AuthorizationServerSettings authorizationServerSettings, @Nullable Supplier<String> issuerSupplier) {
|
||||||
|
this.authorizationServerSettings = authorizationServerSettings;
|
||||||
|
this.issuerSupplier = issuerSupplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIssuer() {
|
||||||
|
return this.issuerSupplier != null ?
|
||||||
|
this.issuerSupplier.get() :
|
||||||
|
getAuthorizationServerSettings().getIssuer();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AuthorizationServerSettings getAuthorizationServerSettings() {
|
||||||
|
return this.authorizationServerSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -54,6 +54,7 @@ import org.springframework.security.oauth2.server.authorization.client.Registere
|
|||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.oidc.OidcClientMetadataClaimNames;
|
import org.springframework.security.oauth2.server.authorization.oidc.OidcClientMetadataClaimNames;
|
||||||
import org.springframework.security.oauth2.server.authorization.oidc.OidcClientRegistration;
|
import org.springframework.security.oauth2.server.authorization.oidc.OidcClientRegistration;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
@@ -104,7 +105,7 @@ public class OidcClientRegistrationAuthenticationProviderTests {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
this.authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(this.authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(this.authorizationServerSettings, null));
|
||||||
this.authenticationProvider = new OidcClientRegistrationAuthenticationProvider(
|
this.authenticationProvider = new OidcClientRegistrationAuthenticationProvider(
|
||||||
this.registeredClientRepository, this.authorizationService, this.tokenGenerator);
|
this.registeredClientRepository, this.authorizationService, this.tokenGenerator);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ import org.junit.Test;
|
|||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.mock.web.MockHttpServletRequest;
|
import org.springframework.mock.web.MockHttpServletRequest;
|
||||||
import org.springframework.mock.web.MockHttpServletResponse;
|
import org.springframework.mock.web.MockHttpServletResponse;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
@@ -107,7 +107,7 @@ public class OidcProviderConfigurationEndpointFilterTests {
|
|||||||
.tokenRevocationEndpoint(tokenRevocationEndpoint)
|
.tokenRevocationEndpoint(tokenRevocationEndpoint)
|
||||||
.tokenIntrospectionEndpoint(tokenIntrospectionEndpoint)
|
.tokenIntrospectionEndpoint(tokenIntrospectionEndpoint)
|
||||||
.build();
|
.build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
OidcProviderConfigurationEndpointFilter filter =
|
OidcProviderConfigurationEndpointFilter filter =
|
||||||
new OidcProviderConfigurationEndpointFilter(authorizationServerSettings);
|
new OidcProviderConfigurationEndpointFilter(authorizationServerSettings);
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ public class OidcProviderConfigurationEndpointFilterTests {
|
|||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder()
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder()
|
||||||
.issuer("https://this is an invalid URL")
|
.issuer("https://this is an invalid URL")
|
||||||
.build();
|
.build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
OidcProviderConfigurationEndpointFilter filter =
|
OidcProviderConfigurationEndpointFilter filter =
|
||||||
new OidcProviderConfigurationEndpointFilter(authorizationServerSettings);
|
new OidcProviderConfigurationEndpointFilter(authorizationServerSettings);
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import org.springframework.security.oauth2.server.authorization.authentication.O
|
|||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
||||||
@@ -75,7 +76,7 @@ public class JwtGeneratorTests {
|
|||||||
this.jwtGenerator = new JwtGenerator(this.jwtEncoder);
|
this.jwtGenerator = new JwtGenerator(this.jwtEncoder);
|
||||||
this.jwtGenerator.setJwtCustomizer(this.jwtCustomizer);
|
this.jwtGenerator.setJwtCustomizer(this.jwtCustomizer);
|
||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
||||||
this.authorizationServerContext = new AuthorizationServerContext(authorizationServerSettings, null);
|
this.authorizationServerContext = new TestAuthorizationServerContext(authorizationServerSettings, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import org.springframework.security.oauth2.server.authorization.authentication.O
|
|||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.TokenSettings;
|
||||||
@@ -64,7 +65,7 @@ public class OAuth2AccessTokenGeneratorTests {
|
|||||||
this.accessTokenGenerator = new OAuth2AccessTokenGenerator();
|
this.accessTokenGenerator = new OAuth2AccessTokenGenerator();
|
||||||
this.accessTokenGenerator.setAccessTokenCustomizer(this.accessTokenCustomizer);
|
this.accessTokenGenerator.setAccessTokenCustomizer(this.accessTokenCustomizer);
|
||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer("https://provider.com").build();
|
||||||
this.authorizationServerContext = new AuthorizationServerContext(authorizationServerSettings, null);
|
this.authorizationServerContext = new TestAuthorizationServerContext(authorizationServerSettings, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import org.springframework.security.oauth2.server.authorization.authentication.O
|
|||||||
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
|
||||||
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
@@ -75,7 +76,7 @@ public class OAuth2TokenClaimsContextTests {
|
|||||||
OAuth2Authorization authorization = TestOAuth2Authorizations.authorization(registeredClient).build();
|
OAuth2Authorization authorization = TestOAuth2Authorizations.authorization(registeredClient).build();
|
||||||
Authentication principal = authorization.getAttribute(Principal.class.getName());
|
Authentication principal = authorization.getAttribute(Principal.class.getName());
|
||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer(issuer).build();
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder().issuer(issuer).build();
|
||||||
AuthorizationServerContext authorizationServerContext = new AuthorizationServerContext(authorizationServerSettings, null);
|
AuthorizationServerContext authorizationServerContext = new TestAuthorizationServerContext(authorizationServerSettings, null);
|
||||||
OAuth2ClientAuthenticationToken clientPrincipal = new OAuth2ClientAuthenticationToken(
|
OAuth2ClientAuthenticationToken clientPrincipal = new OAuth2ClientAuthenticationToken(
|
||||||
registeredClient, ClientAuthenticationMethod.CLIENT_SECRET_BASIC, registeredClient.getClientSecret());
|
registeredClient, ClientAuthenticationMethod.CLIENT_SECRET_BASIC, registeredClient.getClientSecret());
|
||||||
OAuth2AuthorizationRequest authorizationRequest = authorization.getAttribute(
|
OAuth2AuthorizationRequest authorizationRequest = authorization.getAttribute(
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ import org.junit.Test;
|
|||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.mock.web.MockHttpServletRequest;
|
import org.springframework.mock.web.MockHttpServletRequest;
|
||||||
import org.springframework.mock.web.MockHttpServletResponse;
|
import org.springframework.mock.web.MockHttpServletResponse;
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContext;
|
|
||||||
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
import org.springframework.security.oauth2.server.authorization.context.AuthorizationServerContextHolder;
|
||||||
|
import org.springframework.security.oauth2.server.authorization.context.TestAuthorizationServerContext;
|
||||||
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
@@ -105,7 +105,7 @@ public class OAuth2AuthorizationServerMetadataEndpointFilterTests {
|
|||||||
.tokenRevocationEndpoint(tokenRevocationEndpoint)
|
.tokenRevocationEndpoint(tokenRevocationEndpoint)
|
||||||
.tokenIntrospectionEndpoint(tokenIntrospectionEndpoint)
|
.tokenIntrospectionEndpoint(tokenIntrospectionEndpoint)
|
||||||
.build();
|
.build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
OAuth2AuthorizationServerMetadataEndpointFilter filter =
|
OAuth2AuthorizationServerMetadataEndpointFilter filter =
|
||||||
new OAuth2AuthorizationServerMetadataEndpointFilter(authorizationServerSettings);
|
new OAuth2AuthorizationServerMetadataEndpointFilter(authorizationServerSettings);
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ public class OAuth2AuthorizationServerMetadataEndpointFilterTests {
|
|||||||
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder()
|
AuthorizationServerSettings authorizationServerSettings = AuthorizationServerSettings.builder()
|
||||||
.issuer("https://this is an invalid URL")
|
.issuer("https://this is an invalid URL")
|
||||||
.build();
|
.build();
|
||||||
AuthorizationServerContextHolder.setContext(new AuthorizationServerContext(authorizationServerSettings, null));
|
AuthorizationServerContextHolder.setContext(new TestAuthorizationServerContext(authorizationServerSettings, null));
|
||||||
OAuth2AuthorizationServerMetadataEndpointFilter filter =
|
OAuth2AuthorizationServerMetadataEndpointFilter filter =
|
||||||
new OAuth2AuthorizationServerMetadataEndpointFilter(authorizationServerSettings);
|
new OAuth2AuthorizationServerMetadataEndpointFilter(authorizationServerSettings);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user