java.lang.IllegalArgumentException:Cookie值中存在无效字符[34]

Stu*_*rma 0 cookies user-roles kie-workbench tomcat8.5

这是我的tomcat-users文件的样子:

<tomcat-users>
  <role rolename="admin"/>
  <role rolename="analyst"/> 
  <role rolename="user"/>
  <role rolename="kie-server"/>
  <role rolename="developer"/>
  <role rolename="manager"/>

  <user username="w" password="w" roles="admin"/>
  <user username="k" password="k" roles="kie-server"/>  
  <user username="u" password="u" roles="user,developer,analyst"/>
</tomcat-users>
Run Code Online (Sandbox Code Playgroud)

在KIE IDE WORKBENCH中输入正确的凭据后,出现以下异常:

java.lang.IllegalArgumentException: An invalid character [34] was present in the Cookie value
        org.apache.tomcat.util.http.Rfc6265CookieProcessor.validateCookieValue(Rfc6265CookieProcessor.java:182)
        org.apache.tomcat.util.http.Rfc6265CookieProcessor.generateHeader(Rfc6265CookieProcessor.java:115)
        org.apache.catalina.connector.Response.generateCookieString(Response.java:1019)
        org.apache.catalina.connector.Response.addCookie(Response.java:967)
        org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:386)
        org.uberfire.ext.security.server.SecurityIntegrationFilter.doFilter(SecurityIntegrationFilter.java:61)
Run Code Online (Sandbox Code Playgroud)

Stu*_*rma 5

CookieProcessor是Tomcat 8.0.15中引入的新配置元素。CookieProcessor元素允许在每个Web应用程序中或全局在默认conf / context.xml文件中进行不同的cookie解析配置。

根据Apache Tomcat 8配置参考版本8.0.47的官方文档:

CookieProcessor的标准实现是:org.apache.tomcat.util.http.LegacyCookieProcessor。请注意,预计在将来的Tomcat 8版本中,它将更改为org.apache.tomcat.util.http.Rfc6265CookieProcessor。

后来..

根据Apache Tomcat 8配置参考版本8.5.23上的官方文档

CookieProcessor的标准实现是org.apache.tomcat.util.http.Rfc6265CookieProcessor

解决此问题的方法:在conf / context.xml中的位置%CATALINA_HOME%处添加此行(在我的情况下,即C:\ apache-tomcat-8.5.20 \ conf \ context.xml):

<CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />

添加后如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<Context reloadable="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
    <Transaction factory="bitronix.tm.BitronixUserTransactionObjectFactory"/>
    <CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />    
</Context>
Run Code Online (Sandbox Code Playgroud)

  • 也为tomcat9工作过 (2认同)