java - Tomcat 8.5.28 : Bad Set-Cookie header: Secure; HttpOnly No '=' found for token starting at position 75

标签 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>

任何人都可以帮助我。如何解决这个问题..我在第一页本身就被阻止了。

最佳答案

通过修改 Apache 服务器中的 HTTP header 解决了这个问题。我们在 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"

关于java - Tomcat 8.5.28 : Bad Set-Cookie header: Secure; HttpOnly No '=' found for token starting at position 75,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49256297/

相关文章:

java - 从正则表达式获取变量

java - Stream 从一个对象创建两个对象并进一步处理

java - Tomcat 6 Web 应用程序无法启动

spring - 为什么首页无法访问/spring boot应用

node.js - 为 session 设置服务器端 cookie 的正确方法

javascript - 如何删除我网站上除一个之外的所有 Cookie

java - 如何在 Jersey 中设置 AbstractBinder

java - 使用递归回溯查找有向图中的所有循环

java - 让 Ant 在不同情况下使用不同的构建类?

reactjs - 为什么不使用 cookie 而不是 Redux?