Hi Jerome,
thanks a lot for fixes! I hope it will be released soon enough to make it
into Nexus 1.1M1 (planned for end of this week, or early next week).

~t~

On Mon, Sep 22, 2008 at 5:55 PM, Jerome Louvel <[EMAIL PROTECTED]>wrote:

>  Hi Tamas,
>
> I found the cause of your second issue and was able to fix it. Now if
> there is an entity associated to a DELETE request, it is simply ignored by
> the client connector and not sent over the wire. The server doesn't notice
> it at all.
>
> Thanks for reporting this. Fix in SVN trunk.
>
>  Best regards,
> Jérôme Louvel
> --
> Restlet ~ Founder and Lead developer ~ http://www.restlet.org
> Noelios Technologies ~ Co-founder ~ http://www.noelios.com
>
>  ------------------------------
> *De :* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] *De la part de
> * Tamás Cservenák
> *Envoyé :* mercredi 17 septembre 2008 17:32
> *À :* [email protected]
> *Objet :* Re: Any reason to override 401 to 1002?
>
>  Hi Jerome,
>
> yes, regarding my 1st issue I solved it by registering the HTTP_NxBasic
> auth scheme just as you described. But in my opinion, this is a little bit
> to "heavy handed" solution... i have to wait to 1.1 "final" release (or
> RC2?) to update the dependencies, since we will roll out Nexus 1.1M1 soon
> (so, no snapshot dependency is desirable). Anyway, it works now just fine
> (after registering the new auth scheme, we have the desired 401 status
> instead of 1002 in the ITs).
>
> My 2nd issue: I created a little "test case" maven project, attached to the
> mail. Simply unzip it, and do "$ mvn clean test" and the test-case will
> simply "hang" (the behaviour we noticed with our IT tests also).
>
> I am not sure anymore about my statements in 1st mail, but something is
> definitely wrong. Try to simply change the restlet version in POM properties
> section from current 1.1-RC1 back to 1.0.11 and the hang will dissapear!
>
> ~t~
>
>
> On Wed, Sep 17, 2008 at 4:13 PM, Jerome Louvel <[EMAIL PROTECTED]>wrote:
>
>>  Hi Tamas,
>>
>> Thanks for reporting those issues. I've made some changes in SVN trunk so
>> that unknown challenge schemes should hide anymore the actual response
>> status received. Let me know if it doesn't work.
>>
>> However, in order to make your solution fully work, you'll have to declare
>> a proper AuthenticationHelper for HTTP_NxBASIC scheme and register it with
>> the Restlet engine. Since Restlet 1.1, we now support pluggagle
>> authentication helpers for extensibility purpose.
>>
>> See OAuth extension for an example on how to do that (basically adding a
>> META-INF/services/com.noelios.restlet.AuthenticationHelper file pointing to
>> an AuthenticationHelper subclass).
>>
>> In your case, you could probably directly reuse the
>> com.noelios.restlet.authentication.HttpBasicHelper class.
>>
>> --
>>
>> Regarding DELETE, the spec doesn't seem to forbid passing an entity:
>> http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7
>>
>> I'm not sure to understand how you got into this state in a first place.
>> Could you describe your scenario a bit more?
>>
>>  Best regards,
>> Jérôme Louvel
>> --
>> Restlet ~ Founder and Lead developer ~ http://www.restlet.org
>> Noelios Technologies ~ Co-founder ~ http://www.noelios.com
>>
>>  ------------------------------
>> *De :* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] *De la part
>> de* Tamás Cservenák
>> *Envoyé :* mardi 16 septembre 2008 19:29
>> *À :* [email protected]
>> *Objet :* Any reason to override 401 to 1002?
>>
>>   Hello there,
>>
>> i am seeking for any answer on reason of overriding the 401 HTTP status
>> code to 1002 in the Restlet Client.
>>
>> We are using the HTTP Restlet Client (1.1-RC1) in the IT tests of Sonatype
>> Nexus, and after the change (from 1.0.x line) we noticed a bunch of IT
>> failures.
>>
>> As it turned out, it boils down to the reason that restlet Client simply
>> "says" 1002 instead of expected 401. The reason:
>>
>> "java.lang.IllegalArgumentException: Challenge scheme HTTP_NxBASIC not
>> supported by the Restlet engine."
>>
>> Because of ExtJS + HTTP Basic issues (browsers "stealing" auth) we changed
>> the auth scheme -- actually renamed the Basic to NxBasic -- only to avoid
>> browser login pop-up. But the 1.1-RC1 client simply overrides
>> (HttpClientConverter, line 471) the 401 status with 1002, since Nexus
>> responded with Challenge scheme "NxBasic".
>>
>> Any way to fix this at Client side, to have the _real_ response and not
>> information about the fact that client is not supporting something? ;)
>>
>> ---
>>
>> Also, we discovered another bug (?): Our ITs were always (was not checking
>> for HTTP Method in question) invoking request.setEntity(aValue) on Requests
>> processed with Restlet Client, and it was working fine with Client 1.0.x.
>> Now, with 1.1-RC1, something changed, and it produces strange requests (i
>> may say malformed ones). Like for example this (HttpClient wire log):
>>
>> 2008-09-15 21:52:33.280 DEBUG [main:] - httpclient.wire.header: >> "DELETE
>> /nexus/service/local/repo_targets/11c678c3265 HTTP/1.1[\r][\n]"
>> 2008-09-15 21:52:33.280 DEBUG [main:] -
>> org.apache.commons.httpclient.HttpMethodBase: Adding Host request header
>> 2008-09-15 21:52:33.280 DEBUG [main:] - httpclient.wire.header: >>
>> "User-Agent: Noelios-Restlet-Engine/1.1.rc1[\r][\n]"
>> 2008-09-15 21:52:33.280 DEBUG [main:] - httpclient.wire.header: >>
>> "Accept: */*[\r][\n]"
>> 2008-09-15 21:52:33.280 DEBUG [main:] - httpclient.wire.header: >>
>> "Content-Type: application/json; charset=UTF-8[\r][\n]"
>> 2008-09-15 21:52:33.280 DEBUG [main:] - httpclient.wire.header: >>
>> "Content-Length: 106[\r][\n]"
>> 2008-09-15 21:52:33.281 DEBUG [main:] - httpclient.wire.header: >> "Host:
>> localhost:8087[\r][\n]"
>> 2008-09-15 21:52:33.281 DEBUG [main:] - httpclient.wire.header: >>
>> "[\r][\n]"
>>
>> So, it is a DELETE, with content type and content length set (!). Not to
>> mention, that it confused the restlet (also 1.1-RC1) on server side, and
>> caused both to simply wait for each other it seems (the IT Client sent only
>> one CR+LF, while the server side restlet was waiting for two (it seems it
>> was waiting for body?), since no body was present, but content length was
>> there)... so, finally, both timeouted and declared that other party was
>> having some HTTP issues.
>>
>> I mean, i am aware that it was possibly an API "misuse" (setting the
>> entity of the Request with DELETE method), but it was working in 1.0.x line
>> just perfect. What happened? We fixed this issues by checking the method in
>> question, but IMO this should be handled by Request/Client and not by users.
>> Why do we have then restlet abstraction at all when the user should "watch"
>> for HTTP Message correctness then?
>>
>> --
>> Thanks,
>> ~t~
>>
>
>
>
> --
> Thanks,
> ~t~
>



-- 
Thanks,
~t~

Reply via email to