Spring WS SOAP故障响应代码500而不是400

时间:2018-10-17 14:30:16

标签: spring soap spring-ws

当前我正在使用Spring WS(spring-ws-core:2.1.0.RELEASE) 我已经设置了全局方法安全性:

<security:global-method-security pre-post-annotations="enabled" secured-annotations="enabled"/>

我有一个抛出AccessDeniedException的端点,该端点由SoapFaultMappingExceptionResolver处理,如下所示:

<bean id="exceptionResolver"
      class="org.springframework.ws.soap.server.endpoint.SoapFaultMappingExceptionResolver">
    <property name="defaultFault" value="SERVER"/>
    <property name="exceptionMappings">
        <value>
            org.springframework.security.access.AccessDeniedException=SENDER, 403 Forbidden
        </value>
    </property>
</bean>

我收到以下答复

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
  <env:Header/>
    <env:Body>
     <env:Fault>
       <env:Code>
        <env:Value>env:Sender</env:Value>
       </env:Code>
     <env:Reason>
        <env:Text xml:lang="en">403 Forbidden</env:Text>
    </env:Reason>
   </env:Fault>
 </env:Body>
</env:Envelope>

HTTP响应代码为500。

根据规范soap 1.2 spec

它应该返回400。

Spring WS处理错误的方式或方式是否有误?

0 个答案:

没有答案