1

我们正在从 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>

任何机构都可以帮助我。如何解决此问题..我在第一页本身被阻止。

4

1 回答 1

1

通过修改 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"
于 2018-03-14T10:10:57.000 回答