IBM MessageSight不支持OAuth的Tomcat 8.5或更高版本

时间:2017-03-30 04:57:24

标签: tomcat oauth mqtt

使用Tomcat8.0和Tomcat8.5在IBM MessageSight上尝试OAuth。 Tomcat8.0的结果是正常的,但是Tomcat8.5失败了。

我做了一个嗅探器来捕获IBM MessageSight和Tomcat服务器之间的消息来检查差异。另外,检查了HTTP响应' Tomcat8.0和Tomcat8.5之间的区别。

调查结果如下:

  1. Tomcat8.5跳过返回HTTP响应状态的Reason-Phrase。例如:

    Tomcat8.0 HTTP响应状态> HTTP / 1.1 200确定

    Tomcat8.5 HTTP响应状态> HTTP / 1.1 200

    (相关错误报告"在tomcat 8.5.x&#34中缺少原因短语;作为链接 - https://bz.apache.org/bugzilla/show_bug.cgi?id=60183

  2. IBM MessageSight无法处理此更改,导致OAuth失败。

  3. 虽然有一种解决方法可以克服Tomcat8.5的变化。但是,我仍然需要请IBM MessageSight遵守此更改。否则,我的客户端将跳过IBM MessageSight的解决方案。

2 个答案:

答案 0 :(得分:0)

  1. 从Tomcat 8.5开始,HTTP原因短语不再被写入,因为它不是必需的,不应被HTTP客户端读取:有关详细信息,请参阅Spring Boot问题。
  2. 来自tomcat.apache.org/tomcat-8.5-doc/changelog.html:RFC 7230声明客户端应忽略HTTP / 1.1响应消息中的原因短语。由于原因短语是可选的,因此Tomcat不再发送它。

答案 1 :(得分:0)

将以下属性添加到Connection中的conf\server.xml

sendReasonPhrase="true"

在Tomcat 8.5.x中,默认情况下不再发送原因短语,但这会再次启用它。