Java Spring WS-SecurityInterceptor操作级别
我有一个使用Java Spring WS-SecurityInterceptor操作级别,java,web-services,spring,spring-security,spring-ws,Java,Web Services,Spring,Spring Security,Spring Ws,我有一个使用PayloadRootAnnotationMethodEndpointMapping的Spring WS服务,它有几个拦截器: <bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping"> <property name="interceptors"> <list>
PayloadRootAnnotationMethodEndpointMapping
的Spring WS服务,它有几个拦截器:
<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>
我的securityIntercetor
是一个Wss4jSecurityInterceptor
拦截器
一切正常,除了securityIntercetor
位于@Endpoint
级别,我希望它位于@PayloadRoot
(操作)
我对用户进行身份验证的方法是使用UsernameToken
,然后我使用LDAP获取角色,并根据我希望允许/禁止用户执行操作的角色
我想没有现成的解决方案
因此,我的问题是:如何在securityIntercetor
中获取调用的操作,以便根据设置检查是否允许执行特定操作
或者你有其他想法
谢谢。这没有标准的方法 我所做的是创建了另一个拦截器(并将他放在被调用的拦截器列表的第一位),该拦截器将保存当前操作,然后当Spring命中我的安全拦截器时,我将从我的第一个拦截器创建的请求范围bean中获取该方法