Add tests for overriding parameters
Issue gh-15298 Issue gh-11298
This commit is contained in:
parent
5d8cf6a8bc
commit
c1a303bc92
|
@ -445,6 +445,38 @@ public class RestClientAuthorizationCodeTokenResponseClientTests {
|
|||
assertThat(formParameters).contains("custom-parameter-name=custom-parameter-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterSetThenAbleToOverrideDefaultParameters() throws Exception {
|
||||
this.clientRegistration.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST);
|
||||
// @formatter:off
|
||||
String accessTokenSuccessResponse = "{\n"
|
||||
+ " \"access_token\": \"access-token-1234\",\n"
|
||||
+ " \"token_type\": \"bearer\",\n"
|
||||
+ " \"expires_in\": \"3600\"\n"
|
||||
+ "}\n";
|
||||
// @formatter:on
|
||||
this.server.enqueue(jsonResponse(accessTokenSuccessResponse));
|
||||
ClientRegistration clientRegistration = this.clientRegistration.build();
|
||||
OAuth2AuthorizationCodeGrantRequest grantRequest = new OAuth2AuthorizationCodeGrantRequest(clientRegistration,
|
||||
this.authorizationExchange);
|
||||
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
|
||||
parameters.set(OAuth2ParameterNames.GRANT_TYPE, "custom");
|
||||
parameters.set(OAuth2ParameterNames.CODE, "custom-code");
|
||||
parameters.set(OAuth2ParameterNames.REDIRECT_URI, "custom-uri");
|
||||
// The client_id parameter is omitted for testing purposes
|
||||
this.tokenResponseClient.setParametersConverter((authorizationGrantRequest) -> parameters);
|
||||
this.tokenResponseClient.getTokenResponse(grantRequest);
|
||||
RecordedRequest recordedRequest = this.server.takeRequest();
|
||||
String formParameters = recordedRequest.getBody().readUtf8();
|
||||
// @formatter:off
|
||||
assertThat(formParameters).contains(
|
||||
param(OAuth2ParameterNames.GRANT_TYPE, "custom"),
|
||||
param(OAuth2ParameterNames.CODE, "custom-code"),
|
||||
param(OAuth2ParameterNames.REDIRECT_URI, "custom-uri"));
|
||||
// @formatter:on
|
||||
assertThat(formParameters).doesNotContain(OAuth2ParameterNames.CLIENT_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterAddedThenCalled() throws Exception {
|
||||
// @formatter:off
|
||||
|
|
|
@ -453,6 +453,38 @@ public class RestClientClientCredentialsTokenResponseClientTests {
|
|||
assertThat(formParameters).contains("custom-parameter-name=custom-parameter-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterSetThenAbleToOverrideDefaultParameters() throws Exception {
|
||||
this.clientRegistration.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST);
|
||||
// @formatter:off
|
||||
String accessTokenSuccessResponse = "{\n"
|
||||
+ " \"access_token\": \"access-token-1234\",\n"
|
||||
+ " \"token_type\": \"bearer\",\n"
|
||||
+ " \"expires_in\": \"3600\"\n"
|
||||
+ "}\n";
|
||||
// @formatter:on
|
||||
this.server.enqueue(jsonResponse(accessTokenSuccessResponse));
|
||||
ClientRegistration clientRegistration = this.clientRegistration.build();
|
||||
OAuth2ClientCredentialsGrantRequest grantRequest = new OAuth2ClientCredentialsGrantRequest(clientRegistration);
|
||||
Converter<OAuth2ClientCredentialsGrantRequest, MultiValueMap<String, String>> parametersConverter = mock(
|
||||
Converter.class);
|
||||
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
|
||||
parameters.set(OAuth2ParameterNames.GRANT_TYPE, "custom");
|
||||
parameters.set(OAuth2ParameterNames.SCOPE, "one two");
|
||||
// The client_id parameter is omitted for testing purposes
|
||||
given(parametersConverter.convert(grantRequest)).willReturn(parameters);
|
||||
this.tokenResponseClient.setParametersConverter((authorizationGrantRequest) -> parameters);
|
||||
this.tokenResponseClient.getTokenResponse(grantRequest);
|
||||
RecordedRequest recordedRequest = this.server.takeRequest();
|
||||
String formParameters = recordedRequest.getBody().readUtf8();
|
||||
// @formatter:off
|
||||
assertThat(formParameters).contains(
|
||||
param(OAuth2ParameterNames.GRANT_TYPE, "custom"),
|
||||
param(OAuth2ParameterNames.SCOPE, "one two"));
|
||||
// @formatter:on
|
||||
assertThat(formParameters).doesNotContain(OAuth2ParameterNames.CLIENT_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterAddedThenCalled() throws Exception {
|
||||
// @formatter:off
|
||||
|
|
|
@ -396,6 +396,38 @@ public class RestClientJwtBearerTokenResponseClientTests {
|
|||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterSetThenCalled() throws Exception {
|
||||
this.clientRegistration.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST);
|
||||
// @formatter:off
|
||||
String accessTokenSuccessResponse = "{\n"
|
||||
+ " \"access_token\": \"access-token-1234\",\n"
|
||||
+ " \"token_type\": \"bearer\",\n"
|
||||
+ " \"expires_in\": \"3600\"\n"
|
||||
+ "}\n";
|
||||
// @formatter:on
|
||||
this.server.enqueue(jsonResponse(accessTokenSuccessResponse));
|
||||
ClientRegistration clientRegistration = this.clientRegistration.build();
|
||||
JwtBearerGrantRequest grantRequest = new JwtBearerGrantRequest(clientRegistration, this.jwtAssertion);
|
||||
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
|
||||
parameters.set(OAuth2ParameterNames.GRANT_TYPE, "custom");
|
||||
parameters.set(OAuth2ParameterNames.ASSERTION, "custom-assertion");
|
||||
parameters.set(OAuth2ParameterNames.SCOPE, "one two");
|
||||
// The client_id parameter is omitted for testing purposes
|
||||
this.tokenResponseClient.setParametersConverter((authorizationGrantRequest) -> parameters);
|
||||
this.tokenResponseClient.getTokenResponse(grantRequest);
|
||||
RecordedRequest recordedRequest = this.server.takeRequest();
|
||||
String formParameters = recordedRequest.getBody().readUtf8();
|
||||
// @formatter:off
|
||||
assertThat(formParameters).contains(
|
||||
param(OAuth2ParameterNames.GRANT_TYPE, "custom"),
|
||||
param(OAuth2ParameterNames.ASSERTION, "custom-assertion"),
|
||||
param(OAuth2ParameterNames.SCOPE, "one two"));
|
||||
// @formatter:on
|
||||
assertThat(formParameters).doesNotContain(OAuth2ParameterNames.CLIENT_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterSetThenAbleToOverrideDefaultParameters() throws Exception {
|
||||
this.clientRegistration.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST);
|
||||
// @formatter:off
|
||||
String accessTokenSuccessResponse = "{\n"
|
||||
+ " \"access_token\": \"access-token-1234\",\n"
|
||||
|
|
|
@ -473,6 +473,38 @@ public class RestClientRefreshTokenTokenResponseClientTests {
|
|||
assertThat(formParameters).contains("custom-parameter-name=custom-parameter-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterSetThenAbleToOverrideDefaultParameters() throws Exception {
|
||||
this.clientRegistration.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST);
|
||||
// @formatter:off
|
||||
String accessTokenSuccessResponse = "{\n"
|
||||
+ " \"access_token\": \"access-token-1234\",\n"
|
||||
+ " \"token_type\": \"bearer\",\n"
|
||||
+ " \"expires_in\": \"3600\"\n"
|
||||
+ "}\n";
|
||||
// @formatter:on
|
||||
this.server.enqueue(jsonResponse(accessTokenSuccessResponse));
|
||||
ClientRegistration clientRegistration = this.clientRegistration.build();
|
||||
OAuth2RefreshTokenGrantRequest grantRequest = new OAuth2RefreshTokenGrantRequest(clientRegistration,
|
||||
this.accessToken, this.refreshToken);
|
||||
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
|
||||
parameters.set(OAuth2ParameterNames.GRANT_TYPE, "custom");
|
||||
parameters.set(OAuth2ParameterNames.REFRESH_TOKEN, "custom-token");
|
||||
parameters.set(OAuth2ParameterNames.SCOPE, "one two");
|
||||
// The client_id parameter is omitted for testing purposes
|
||||
this.tokenResponseClient.setParametersConverter((authorizationGrantRequest) -> parameters);
|
||||
this.tokenResponseClient.getTokenResponse(grantRequest);
|
||||
RecordedRequest recordedRequest = this.server.takeRequest();
|
||||
String formParameters = recordedRequest.getBody().readUtf8();
|
||||
// @formatter:off
|
||||
assertThat(formParameters).contains(
|
||||
param(OAuth2ParameterNames.GRANT_TYPE, "custom"),
|
||||
param(OAuth2ParameterNames.REFRESH_TOKEN, "custom-token"),
|
||||
param(OAuth2ParameterNames.SCOPE, "one two"));
|
||||
// @formatter:on
|
||||
assertThat(formParameters).doesNotContain(OAuth2ParameterNames.CLIENT_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterAddedThenCalled() throws Exception {
|
||||
// @formatter:off
|
||||
|
|
|
@ -569,6 +569,38 @@ public class RestClientTokenExchangeTokenResponseClientTests {
|
|||
assertThat(formParameters).contains("custom-parameter-name=custom-parameter-value");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterSetThenAbleToOverrideDefaultParameters() throws Exception {
|
||||
this.clientRegistration.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST);
|
||||
// @formatter:off
|
||||
String accessTokenSuccessResponse = "{\n"
|
||||
+ " \"access_token\": \"access-token-1234\",\n"
|
||||
+ " \"token_type\": \"bearer\",\n"
|
||||
+ " \"expires_in\": \"3600\"\n"
|
||||
+ "}\n";
|
||||
// @formatter:on
|
||||
this.server.enqueue(jsonResponse(accessTokenSuccessResponse));
|
||||
ClientRegistration clientRegistration = this.clientRegistration.build();
|
||||
TokenExchangeGrantRequest grantRequest = new TokenExchangeGrantRequest(clientRegistration, this.subjectToken,
|
||||
this.actorToken);
|
||||
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<>();
|
||||
parameters.set(OAuth2ParameterNames.GRANT_TYPE, "custom");
|
||||
parameters.set(OAuth2ParameterNames.SCOPE, "one two");
|
||||
parameters.set(OAuth2ParameterNames.SUBJECT_TOKEN, "custom-token");
|
||||
// The client_id parameter is omitted for testing purposes
|
||||
this.tokenResponseClient.setParametersConverter((authorizationGrantRequest) -> parameters);
|
||||
this.tokenResponseClient.getTokenResponse(grantRequest);
|
||||
RecordedRequest recordedRequest = this.server.takeRequest();
|
||||
String formParameters = recordedRequest.getBody().readUtf8();
|
||||
// @formatter:off
|
||||
assertThat(formParameters).contains(
|
||||
param(OAuth2ParameterNames.GRANT_TYPE, "custom"),
|
||||
param(OAuth2ParameterNames.SCOPE, "one two"),
|
||||
param(OAuth2ParameterNames.SUBJECT_TOKEN, "custom-token"));
|
||||
// @formatter:on
|
||||
assertThat(formParameters).doesNotContain(OAuth2ParameterNames.CLIENT_ID);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTokenResponseWhenParametersConverterAddedThenCalled() throws Exception {
|
||||
// @formatter:off
|
||||
|
|
Loading…
Reference in New Issue