Tomcat 8.5.28:Bad Set-Cookie标头:安全; HttpOnly No' ='找到从第75位开始的令牌

时间:2018-03-13 12:31:55

标签: java tomcat cookies http-headers tomcat8.5

我们正在从Tomcat 6.x迁移到Tomcat 8.5.28。我们从第一次登录本身就遇到了以下问题。似乎Tomcat 8.5.28版本在Cookie中添加了httpOnly属性。如何避免这种情况。由于此属性,我的客户端无法在Java API级别自行解析

java.net.ProtocolException: Bad Set-Cookie header: JSESSIONID=09E13BB21C867AEA7B7BBECA3E4CDCCD; Path=/CSCOnm/servlet; Secure; HttpOnly
No '=' found for token starting at position 75
    at HTTPClient.Cookie.parse(Cookie.java:248)
    at HTTPClient.CookieModule.handleCookie(CookieModule.java:442)
    at HTTPClient.CookieModule.responsePhase1Handler(CookieModule.java:391)
    at HTTPClient.HTTPResponse.handleResponse(HTTPResponse.java:726)
    at HTTPClient.HTTPResponse.getInputStream(HTTPResponse.java:566)
    at HTTPClient.HttpURLConnection.getInputStream(HttpURLConnection.java:611)
    at java.net.URLConnection.getContent(Unknown Source)

我已经按照一些建议在web.xml中配置如下。但没有运气

<session-config>
 <cookie-config>
  <http-only>false</http-only>
 </cookie-config>
<session-config>

任何身体能帮助我吗?如何解决这个问题..我在第一页本身被阻止了。

1 个答案:

答案 0 :(得分:0)

通过修改Apache服务器中的HTTP头修复了这个问题。我们在Tomcat前面使用Apache服务器。所以我在httpd.conf中添加了以下代码来删除这个不需要的属性。它解决了这个问题。

Header edit* Set-Cookie "(JSESSIONID=.*)(; Secure)" "$1"
Header edit* Set-Cookie "(JSESSIONID=.*)(; HttpOnly)" "$1"
Header edit* Set-Cookie "(JSESSIONID=.*)(; No \'=\')" "$1"