[ 
https://issues.apache.org/jira/browse/OLTU-26?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14967383#comment-14967383
 ] 

Michael Ukpong edited comment on OLTU-26 at 10/21/15 4:30 PM:
--------------------------------------------------------------

Hi Antonio and Aleksandar. I have been battling this same issue for days. 

I am simply trying to run apache's own examples first so it will become the 
basis of me designing mine.
https://svn.apache.org/repos/asf/oltu/trunk/oauth-2.0/integration-tests/

I am using Oltu 1.0.1, deploying on Jetty 2.22.1 using 
org.glassfish.jersey.servlet.ServletContainer. Same 
error:{"error_description":"Missing grant_type parameter 
value","error":"invalid_request"}

I have written a Request wrapper like this: 

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.ws.rs.core.MultivaluedMap;

public class OAuthRequestWrapper extends HttpServletRequestWrapper {

    private MultivaluedMap<String, String> form;

    public OAuthRequestWrapper(HttpServletRequest request, 
MultivaluedMap<String, String> form)
    { super(request); this.form = form; }

    @Override
    public String getParameter(String name) {
        String value = super.getParameter(name);
        if (value == null)
        { value = form.getFirst(name); }
        return value;
    }
    
    @Override
    public String[] getParameterValues(String name) {
        String[] values = super.getParameterValues(name);
        if(values == null && form.get(name) != null){
            values = new String[form.get(name).size()];
            values = form.get(name).toArray(values);
        }
        return values;
    }
}

Still getting the same error. what did you say was the walkaround?

Thanks



was (Author: michaelukpong):
Hi Antonio and Aleksandar. I have been battling this same issue for days. 

I am simply trying to run apache's own examples first so it will become the 
basis of me designing mine.
https://svn.apache.org/repos/asf/oltu/trunk/oauth-2.0/integration-tests/

I am using Oltu 1.0.1, deploying on Jetty using 
org.glassfish.jersey.servlet.ServletContainer. Same 
error:{"error_description":"Missing grant_type parameter 
value","error":"invalid_request"}

I have written a Request wrapper like this: 

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.ws.rs.core.MultivaluedMap;

public class OAuthRequestWrapper extends HttpServletRequestWrapper {

    private MultivaluedMap<String, String> form;

    public OAuthRequestWrapper(HttpServletRequest request, 
MultivaluedMap<String, String> form)
    { super(request); this.form = form; }

    @Override
    public String getParameter(String name) {
        String value = super.getParameter(name);
        if (value == null)
        { value = form.getFirst(name); }
        return value;
    }
    
    @Override
    public String[] getParameterValues(String name) {
        String[] values = super.getParameterValues(name);
        if(values == null && form.get(name) != null){
            values = new String[form.get(name).size()];
            values = form.get(name).toArray(values);
        }
        return values;
    }
}

Still getting the same error. what did you say was the walkaround?

Thanks


> Guice+Jersey+Amber: Can't correctly create OAuthTokenRequest instance
> ---------------------------------------------------------------------
>
>                 Key: OLTU-26
>                 URL: https://issues.apache.org/jira/browse/OLTU-26
>             Project: Apache Oltu
>          Issue Type: Bug
>          Components: oauth2-common
>         Environment: jersey 1.10
> guice 3.0-SNAPSHOT
> amber 0.22-incubating-SNAPSHOT
>            Reporter: Alexander Urmuzov
>
> I've got a problem with creating OAuthTokenRequest.
> It needs an instance of HttpServletRequest on creation, but all instances 
> which I can get through guice or jersey injections have no post parameters.
> Guice injection example:
>     private final Provider<HttpServletRequest> requestProvider;
>     @Inject
>     public TokenEndpoint(Provider<HttpServletRequest> requestProvider) {
>         this.requestProvider = requestProvider;
>     }
>     @POST
>     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
>     @Produces(MediaType.APPLICATION_JSON)
>     public Response authorize() throws OAuthSystemException {
>         OAuthTokenRequest oauthRequest = null;
>         try {
>             oauthRequest = new OAuthTokenRequest(requestProvider.get());
>     ....
> Jersey injection example:
>     @POST
>     @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
>     @Produces(MediaType.APPLICATION_JSON)
>     public Response authorize(@Context HttpServletRequest request) throws 
> OAuthSystemException {
>         OAuthTokenRequest oauthRequest = null;
>         try {
>             oauthRequest = new OAuthTokenRequest(request);
> Looks like jersey have parsed HttpServletRequest and removed all post 
> parameters from it.
> If I attach filter that tries to get some parameter from HttpServletRequest 
> before jersey, my code works, but with exception from jersey.
> But I can retrieve MultivaluedMap of post parameters from jersey with all 
> data and no errors.
> I think there must be some alternative constructor for such environments. Any 
> thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to