为什么RESTEasy使用POST方法忽略HTTP 302状态代码?

时间:2016-03-31 14:15:27

标签: post jax-rs resteasy http-status-code-302

我是JAX-RS和RESTEasy的新手,有一点我真的不明白。让我先描述一下我们做了什么:

  • 我们正在使用JBoss AS 7.2(是的,那个旧的)与RESTEasy 2.3.5进行机器对机器通信。
  • 我们编写了一个接受POST消息并且不返回正文的服务。使用使用void方法映射到Java接口的JAX-RS注释。
  • 该服务应仅允许安全(HTTPS)通信,不允许HTTP。为防止使用HTTP,我们将 transport-guarantee 设置为机密。因此,每个HTTP请求都会导致响应状态代码302和HTTPS位置。
  • 现在有人意外地配置了HTTP URL而不是HTTPS。服务器回答302状态代码和正确的位置。 不幸的是,客户端既没有遵循重定向也没有引发异常。因此,它没有表明电话没有通过

关于HTTP状态代码的RFC,我知道POST方法不应该有自动重定向。我原以为会引发异常。相反,问题只是被忽略,让客户端应用程序根本没有机会检测到它刚刚发出的调用没有到达应有的位置。 为什么会这样,我该如何正确地做到这一点?

我不相信像RESTEasy这样的库不允许正确处理这种情况,所以我确定我使用它错了。不幸的是,即使经过数小时的谷歌搜索,我仍然没有回答我的问题。我希望有人能够启发我。

为了重现该问题并允许比较其他JAX-RS实现,我将一个小型演示应用程序上传到Github。它只需要Maven和JDK 8即可运行。

提前谢谢你,

马丁

0 个答案:

没有答案