Hi Sergey,

thanks for the hints. I have written a systest for the digest auth. When I only set username and password my test does not do correct digest auth. I also need to set the authSupplier. If I don´t set it then the request is not cached and the retransmission is not done. Perhaps I broke something during my refactorings but when reading the 2.2.8 code I think it reacts in the same way.

In any case I get an exception of "Can´t find inputstream" when the authentication fails. I guess this is not correct. I would rather expect to find an exception that describes that the authentication
failed. Do you know how the conduit should react in this case?

Best regards

Christian



Am 16.12.2010 23:32, schrieb Sergey Beryozkin:
Hi Christian

On Thu, Dec 16, 2010 at 9:50 PM, Christian Schneider<
[email protected]>  wrote:

Hi Sergey,

I wrote the test but it was not correct. I write the digest auth token from
a hashmap. The test compared the result string with an expected string.
Seems for hashmap this is not always working.
So I corrected the test by parsing the token into a map and comparing two
maps. That seems to work reliably.


I've had quite a few tests failing in a similar way too :-)


Btw. Before there was no real test of DigestAuth at all. I would like to
also create an integration test for digest auth. Does anyone have a good
idea how to do this? Is it possible to start embedded jetty with digest
auth?


I've written recently two Jetty-based system tests relying on Jetty security
features, one is to do with Jetty providing the container-managed
authentication. For example, see

http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSimpleSecurityTest.java

It is a JAX-RS test but you can probably just copy&  paste it
into systests/jaxws, as well as test/resources/jaxrs_simple_security folder
(into say jaxws_digest) and just updates beans.xml (more on it below).

But this code

http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/BookServerSimpleSecurity.java

is probably of main interest, there we tell Jetty where the
jetty-realm.properties file

http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/jetty-realm.properties

is located.

So the only other thing to do is to have web.xml require the DIGEST auth, I
guess you just need to replace BASIC with DIGEST in

http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_simple_security/WEB-INF/web.xml

Note - the security-constraint section is commented out because I do not
want Jetty to enforce the user is in a certain role bur rather want CXF
interceptors to enforce it, I only want jetty to populate the current
principal (name, roles).

Finally, you can have in your beans,xml just a single JAX-WS endpoint,
similar to the jaxrs endpoint with the /security1 address, just have the
SimpleAuthrorizingInterceptor registered only

http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/resources/jaxrs_simple_security/WEB-INF/beans.xml

A test like this can verify that the container is capable of processing the
digest auth Authorization, and that CXF can enforce the container-populated
rules on a per-endpoint basis...You can simplify it a lot, omit the
authorization part, etc

Hope it helps, Sergey


Best regards

Christian


Am 16.12.2010 17:59, schrieb Sergey Beryozkin:

Hi,
Just spotted :


https://hudson.apache.org/hudson/job/CXF-Trunk-JDK15/org.apache.cxf$cxf-rt-transports-http/1577/testReport/org.apache.cxf.transport.http/DigestAuthSupplierTest/testEncode/

Does someone know what can be causing it ?

cheers, Sergey


--
----
http://www.liquid-reality.de



--
----
http://www.liquid-reality.de

Reply via email to