Mauro Arisci
Mauro Arisci

Reputation: 31

Spring OAuth2 custom request - put parameters on body like raw data

I am implementing a client with Spring Security OAuth2 to use resources through an API, I have to customize the request like this:

POST https://example.com/v2/oauth2/token HTTP / 1.1
Authorization: Basic xxxXXXXxxXXXXXXxXXxxXX
Content-Type: application / x-www-form-urlencoded
Accept: application / json; charset = UTF-8

grant_type = authorization_code & code = 12345678901234567890

Where: grant_type = authorization_code & code = 12345678901234567890 it is contained in the body as raw data.

How can I put the grant_type and code parameters on the body?

At the moment my code is formalized in this way:

AuthorizationCodeResourceDetails resource = new AuthorizationCodeResourceDetails ();
resource.setAccessTokenUri ( "https://example.com/v2/oauth2/token");
resource.setClientId ( "xxxxx");
resource.setClientSecret ( "xxxxx");
resource.setGrantType ( "authorization_code");
resource.setUseCurrentUri (false);
AccessTokenRequest atr = new DefaultAccessTokenRequest ();
atr.setPreservedState (new Object ());
atr.setAuthorizationCode(authCode);

AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider ();

try {
OAuth2AccessToken accessToken = provider.obtainAccessToken (resource, atr);
}
catch (Exception e) {
System.out.println ("DEBUG" + e);
}

Upvotes: 1

Views: 2491

Answers (2)

Aldwin Delgado
Aldwin Delgado

Reputation: 97

Maybe you can use a filter to intercept the request to the token endpoint before the authorization server completes the process of authorization.

This is my implementation of OAuth2 using a json as a body instead of URL-encoded format.

https://github.com/aldwindelgado/spring-boot-oauth2-server/blob/master/src/main/java/com/github/oauth2/server/JsonToUrlEncodedAuthenticationFilter.java

Upvotes: 2

Maddy
Maddy

Reputation: 2224

Add atr.setAuthorizationCode("12345678901234567890"); to set the auth code to the Access Token Request.

Upvotes: 0

Related Questions