You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Jan Ypma (Jira)" <ji...@apache.org> on 2020/09/01 08:26:00 UTC

[jira] [Commented] (OLINGO-272) https authentication request results in NonRepeatableRequestException

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

Jan Ypma commented on OLINGO-272:
---------------------------------

This is not fixed in 4.7.1, when using OLingo with NTLM authentication. NTLM requires every request to be sent at least 2 times (3 if discovering NTLM is used). The first request always yields an NTLM challenge from the server, which must be hashed into the authentication token of the second request.

That's very unfortunate for PUT, PATCH and POST of course, since it requires to send the body twice. I actually don't know if the first request could be sent without body, though.

Either way, with NTLM, a quick fix in OLINGO could be to wrap the created http entity in a {{BufferedHttpEntity}}, so it can be sent twice.

 

> https authentication request results in NonRepeatableRequestException
> ---------------------------------------------------------------------
>
>                 Key: OLINGO-272
>                 URL: https://issues.apache.org/jira/browse/OLINGO-272
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata4-client
>    Affects Versions: (Java) V4 4.0.0-beta-01
>            Reporter: Challen He
>            Assignee: Challen He
>            Priority: Major
>             Fix For: (Java) V4 4.0.0-beta-01
>
>
> step1, 
> client.getConfiguration().setHttpClientFactory( new BasicAuthHttpClientFactory("xxxusername ", "xxxxpassword"));
> step2, 
> final ODataEntityCreateRequest<ODataEntity> createDraftReq = client.getCUDRequestFactory().getEntityCreateRequest(createDraftUriBuilder.build(), draft);
> final ODataEntityCreateResponse<ODataEntity> createDraftRes = createDraftReq.setFormat(format);
> createDraftReq.execute();
> Actual: NonRepeatableRequestException (guess it is because of login retry).
> Expected: no exception.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)