Van,

The answer is both yes and no.

CXF doesn't have anything "built in" that would provide that capability.   
However, it would be very easy to write an interceptor that would:


public class AuthorizationInterceptor extends 
AbstractPhaseInterceptor<Message> {

    public AuthorizationInterceptor() {
        super(Phase.USER_LOGICAL);
    }

    public void handleMessage(Message message) throws Fault {
        AuthorizationPolicy policy = 
            message.get(AuthorizationPolicy.class);
        String opName = (String)message.put(Message.WSDL_OPERATION);

        //use username/passwords from AuthorizationPolicy to validate.  
        //Throw a fault or similar if processing should not continue.
    }
}


There is also:
message.get(SecurityContext.class);
which can provide the principal object and checks for isUserInRole if 
your deployment environment (tomcat/etc...) supports configurations of 
users and roles on that level.

Dan


On Tuesday 28 August 2007, vannguyen0 wrote:
> Hi,
>
> I'm fairly new to webservices and was wondering if CXF has the ability
> to restrict users to certain web services methods.  If I have
> PerformProductSearch and UpdateProductInformation, I want to allow
> user A (or users that is in user group A) permission to only
> PerformProductSearch. But user B (or users that are in user group B)
> can access to both methods.
>
> Thanks,
>
> Van



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to