我正在尝试考虑将Spring安全性中的异常作为Spring Web服务中的SOAP错误进行级联的解决方案。
我们使用Spring Web服务并使用SimplePlainTextPasswordValidationCallbackHandler
执行身份验证。但是,spring security中的所有自定义异常都会在soap响应中输出为“Invalid Soap Header”。相信这是默认行为。
我们可以采用任何方式覆盖此行为以将自定义异常级联到Spring WS中吗?
感谢。
答案 0 :(得分:0)
为此,您需要实现EndpointExceptionResolver,因为XwsSecurityInterceptor的handleValidationException方法将异常委托给此解析程序,如here和also 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
的更多信息