views:

34

answers:

0

Hello,

I have a Spring-WS service using PayloadRootAnnotationMethodEndpointMapping that has several interceptors:

<bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping">        
    <property name="interceptors">
        <list>
            <ref local="loggingInterceptor"/>
            <ref local="validatingInterceptor"/>
            <ref local="securityInterceptor"/>
        </list>
    </property>     
</bean>

My securityIntercetor is a Wss4jSecurityInterceptor interceptor.

Everything works fine, except that the securityIntercetor is at the @Endpoint level, I want it to be at the @PayloadRoot (operation).

The way I authenticate users is using UsernameToken, then I go against LDAP and get the roles and depending on the role I want to allow/prohibit the user to execute an operation.

I assume there isn't a out of the box solution for this.

So my question is: how in the securityIntercetor can I get what operation is being called so I can check depending on my settings to allow or not the execution of a specific operation.

Or maybe you have other ideas.

Thanks.