Spring Web Services和Spring Security Exception处理

时间:2012-04-21 06:55:38

标签: exception-handling spring-security spring-ws wss4j

我正在尝试考虑将Spring安全性中的异常作为Spring Web服务中的SOAP错误进行级联的解决方案。

我们使用Spring Web服务并使用SimplePlainTextPasswordValidationCallbackHandler执行身份验证。但是,spring security中的所有自定义异常都会在soap响应中输出为“Invalid Soap Header”。相信这是默认行为。

我们可以采用任何方式覆盖此行为以将自定义异常级联到Spring WS中吗?

感谢。

1 个答案:

答案 0 :(得分:0)

为此,您需要实现EndpointExceptionResolver,因为XwsSecurityInterceptor的handleValidationException方法将异常委托给此解析程序,如herealso here所述。或者您只需将SoapFaultMappingExceptionResolver添加到您的applicationContext.xml中,如下所示:

<beans>
<bean id="exceptionResolver" class="org.springframework.ws.soap.server.endpoint.SoapFaultMappingExceptionResolver">
    <property name="defaultFault" value="SERVER"/>
    <property name="exceptionMappings">
        <value>
            org.springframework.oxm.ValidationFailureException=CLIENT,Oops!Something went wrong
        </value>
    </property>
</bean>
</beans>

有关此here

的更多信息