On Jul 1, 2009, at 11:04 AM, Jarek Gawor wrote:

David,

I'm trying to make things work and behave the same for ejb-based web
services as for servlet-based web services. I have a similar security
tests to jaxws-ejb-sec for servlet-based web services - see
jaxws-war-sec. Take a look at /basicAllowGet example in web.xml. It
has one http-method specified (POST) and auth-method is configured to
BASIC. That allows me to perform GET on the service without any
security but POST request will require BASIC auth. So if that's how
are things working for web-based services I would like to have the
same behavior for ejb-based services.

I'm not very happy with what we can configure now. With a web app, you can have lots of security constraints but IIUC for ejb ws you can only have one. So with a single web security constraint, say you restrict POST to require CONFIDENTIAL and auth. That means that non- POST requests are completely unconstrained both for transport and for auth. In a web app you can have more constraints so that e.g. there's still transport guarantee.

If we imitate this with ejb constraints but only allow a single constraint, then adding a http method into the mix mostly unsecures everything else. I don't think this is a good idea. I think there are 2 reasonable options:

1. if we only allow a single constraint, only grant the permissions from that constraint.... everything else is prohibited. This is nearly the opposite of what servlet constraints do. This is pretty easy to implement. 2. allow full web-like multiple security-constraint elements although we'd ignore the role-constraint mapping since the ejb security ought to be more meaningful. This is more complicated to implement, but might not be exactly difficult.

thoughts?

thanks
david jencks


Jarek

On Wed, Jul 1, 2009 at 3:23 AM, David Jencks<[email protected]> wrote:


I fixed IMO all the security problems here and think we should change the
tests for the 2 remaining failures.

The question is whether if the web service requires authentication, the wsdl
requests should too.  Previously wsdl requests never required
authentication, just the correct transport guarantee. While this seemed reasonable when we first wrote this, I no longer think it makes sense. Currently in the jetty ejb ws if authentication is required (i.e.an auth method specified) then all requests, both to the ws and for the wsdl require
authentication.

Shall I go ahead and change the testsuite and tomcat ejb ws?

thanks
david jencks

Reply via email to