dmfs / oauth2-essentials

An OAuth2 client implementation based on http-client-essentials.
Apache License 2.0
86 stars 21 forks source link

org.dmfs.oauth2.client.http.entities.XWwwFormUrlEncodedEntity.contentType()Lorg/dmfs/optional/Optional; #60

Closed gianx89 closed 5 years ago

gianx89 commented 5 years ago

Trying Client Credential Authentication. On OAuth2AccessToken token = new ClientCredentialsGrant(client, new BasicScope("scim")).accessToken(executor); I get on first line of (PlainHttpUrlConnectionExecutor)

// also set the content-type header if we have any content-type
        if (request.requestEntity().contentType().isPresent())
        {
            connection.setRequestProperty(HttpHeaders.CONTENT_TYPE.name(),
                    HttpHeaders.CONTENT_TYPE.valueString(request.requestEntity().contentType().value()));
        }

org.dmfs.oauth2.client.http.entities.XWwwFormUrlEncodedEntity.contentType()Lorg/dmfs/optional/Optional;

dmfs commented 5 years ago

Looks like the oauth2-essentials version and the http-client-essentials version don't match. Which versions do you use?

gianx89 commented 5 years ago

Now I'm using:

<dependency org="org.dmfs" name="oauth2-essentials" rev="0.12"/>
<dependency org="org.dmfs" name="httpurlconnection-executor" rev="0.17"/>

And I get:

Caused by: java.lang.IncompatibleClassChangeError at org.dmfs.iterators.decorators.Filtered.moveToNext(Filtered.java:88) at org.dmfs.iterators.decorators.Filtered.(Filtered.java:58) at org.dmfs.httpessentials.types.StringMediaType.parameters(StringMediaType.java:76) at org.dmfs.httpessentials.types.StringMediaType.firstParameter(StringMediaType.java:63) at org.dmfs.httpessentials.types.StringMediaType.charset(StringMediaType.java:119) at org.dmfs.httpessentials.responsehandlers.StringResponseHandler.handleResponse(StringResponseHandler.java:88) at org.dmfs.oauth2.client.http.responsehandlers.TokenErrorResponseHandler.handleResponse(TokenErrorResponseHandler.java:60) at org.dmfs.oauth2.client.http.responsehandlers.TokenErrorResponseHandler.handleResponse(TokenErrorResponseHandler.java:39) at org.dmfs.httpessentials.httpurlconnection.PlainHttpUrlConnectionExecutor.execute(PlainHttpUrlConnectionExecutor.java:78) at org.dmfs.httpessentials.executors.common.decorators.BottomBranded.execute(BottomBranded.java:54) at org.dmfs.httpessentials.executors.common.decorators.BottomBranded.execute(BottomBranded.java:54) at org.dmfs.httpessentials.httpurlconnection.HttpUrlConnectionExecutor.execute(HttpUrlConnectionExecutor.java:67) at org.dmfs.httpessentials.executors.useragent.Branded.execute(Branded.java:53) at org.dmfs.oauth2.client.BasicOAuth2AuthorizationProvider.accessToken(BasicOAuth2AuthorizationProvider.java:55) at org.dmfs.oauth2.client.BasicOAuth2Client.accessToken(BasicOAuth2Client.java:63) at org.dmfs.oauth2.client.grants.ClientCredentialsGrant.accessToken(ClientCredentialsGrant.java:60) at it.corvallis.multitrace.service.web.WebService.registerUser(WebService.java:246) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ... 40 more

Crash here:

 @Override
    public String charset(String defaultCharset)
    {
        return firstParameter(Parameters.CHARSET, defaultCharset).value();
    }

in StringMediaType with java.lang.reflect.InvocationTargetException

gianx89 commented 5 years ago

Update, crashes on first line

 if (mFilter.iterate(next))
            {
                mNext = next;
                mHasNext = true;
                return;
            }

in org.dmfs.iterators.decorators.Filteres

gianx89 commented 5 years ago

Solved with the correct version of packages. Opened new issue for the other problem.