Hi Christian

On Thu, Dec 16, 2010 at 9:50 PM, Christian Schneider <
ch...@die-schneider.net> 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
>
>

Reply via email to