Peter Turcsanyi created AMBER-61:
------------------------------------

             Summary: Client defined HTTP headers in OAuthClientRequest
                 Key: AMBER-61
                 URL: https://issues.apache.org/jira/browse/AMBER-61
             Project: Amber
          Issue Type: Bug
          Components: OAuth 2.0 - Client
    Affects Versions: 0.22
            Reporter: Peter Turcsanyi


HTTP headers added to OAuthClientRequest are not sent with the HTTP request.

I would like to use HTTP Basic authentication at the token endpoint.
So on the client side I add "Authorization" HTTP header to OAuthClientRequest 
calling its setHeader() method.
But headers set on the OAuthClientRequest object are not processed by 
OAuthClient.accessToken() / URLConnectionClient.execute(), therefore they are 
not sent to the authorization server.

Or is there any other way to use HTTP Basic authentication between the client 
and the token endpoint of the authorization server?


The client code:

{code}
OAuthClientRequest tokenRequest = OAuthClientRequest
        .tokenLocation("https://...";)
        .setGrantType(GrantType.AUTHORIZATION_CODE)
        .setClientId("...")
        .setClientSecret("...")
        .setRedirectURI("https://...";)
        .setCode(authzCode)
        .buildBodyMessage();

if (tokenRequest.getHeaders() == null) {
    tokenRequest.setHeaders(new HashMap<String, String>()); // nice-to-have 
issue: it should be initialized inside OAuthClientRequest at creation time or 
at first call of setHeader()
}
tokenRequest.setHeader("Authorization", "..."); // main issue: header never 
used later

OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());

OAuthJSONAccessTokenResponse tokenResponse = 
oAuthClient.accessToken(tokenRequest);
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to