You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oltu.apache.org by "Christian (JIRA)" <ji...@apache.org> on 2013/12/16 23:10:06 UTC

[jira] [Created] (OLTU-130) POST to resource server with authentication

Christian created OLTU-130:
------------------------------

             Summary: POST to resource server with authentication
                 Key: OLTU-130
                 URL: https://issues.apache.org/jira/browse/OLTU-130
             Project: Apache Oltu
          Issue Type: New Feature
          Components: oauth2-client
    Affects Versions: 0.31
            Reporter: Christian


There seems to be no feature to post a resource to the server with authentication. But that's something almost every application needs. Please add it.
 
I'm trying to figure out a way and will share it with you, so that this feature gets build in near future.

Right now, I'm overriding OAuthBearerClientRequest to allow setting a message body. But there is still a problem with the content type, which is "application/x-www-form-urlencoded". I haven't found a solution yet to set it.
 
Best regards,
Christian
 
---
 
class MyRequest extends OAuthBearerClientRequest {

    private Object body;
 
    protected MyRequest(String url) {
        super(url);
    }
 
    @Override
    public MyRequest setAccessToken(String accessToken) {
        super.setAccessToken(accessToken);
        return this;
    }
 
    public MyRequest setBody(Object body) {
        this.body = body;
        return this;
    }
 
    /**
     * Not supported. Use #buildHeaderMessage() instead.
     *
     * @throws UnsupportedOperationException always
     */
    public OAuthClientRequest buildQueryMessage() throws OAuthSystemException {
        throw new UnsupportedOperationException("Not supported. Use #buildHeaderMessage() instead.");
    }
 
    /**
     * Not supported. Use #buildHeaderMessage() instead.
     *
     * @throws UnsupportedOperationException always
     */
    public OAuthClientRequest buildBodyMessage() throws OAuthSystemException {
        throw new UnsupportedOperationException("Not supported. Use #buildHeaderMessage() instead.");
    }
 
    public OAuthClientRequest buildHeaderMessage() throws OAuthSystemException {
        OAuthClientRequest request = super.buildHeaderMessage();
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            request.setBody(objectMapper.writeValueAsString(body));
            return request;
        } catch (IOException e) {
            throw new OAuthSystemException("Cannot serialize body (" +
                    (body != null ? "class: " + body.getClass().getSimpleName() : "is null") + ").", e);
        }
    }
}




--
This message was sent by Atlassian JIRA
(v6.1.4#6159)