【问题标题】:An invalid character [59] was present in the Cookie valueCookie 值中存在无效字符 [59]
【发布时间】:2018-01-24 21:09:42
【问题描述】:

所以我看到了其他关于此的问题,但没有一个能够解决我的问题。

我得到了一个

org.apache.jasper.JasperException: java.lang.IllegalArgumentException: An invalid character [59] was present in the Cookie value

错误。我正在使用 DeviceLookupClient.jar,它在tomcat拒绝的地方添加了一个cookie。

所以当我在一切都成功后在 weblogic 中运行它时,我得到了这个 cookie(来自网络选项卡):

WurflCloud_Client   
value   "{\"capabilities\":{\"is_smart…383,\"id\":\"firefox_54_0\"}"
expires "2017-08-17T16:03:03.000Z"

在 tomcat 中运行相同的代码,但在创建 cookie 之前它会失败。我相信 [59] 字符是一个分号,我在那里看不到任何字符。如果不允许该 cookie 中的某些内容,那么有没有办法允许它,而不是操纵我正在使用的库?

【问题讨论】:

  • 如果您查看这个问题,它还会说不允许使用逗号。 stackoverflow.com/questions/1969232/… 莫非是逗号有问题,抛出了你有分号的错误错误?
  • @Michael 感谢您的评论。这很有趣,我将尝试一些事情,看看是否可以在另一个页面上使用 cookie 中的逗号复制错误
  • 所以无论我做什么,它都适用于我的本地 tomcat 服务器和我的 weblogic 服务器的每个实例。
  • 也许您的远程服务器配置与本地服务器略有不同?在这种情况下,您必须对我不熟悉的 tomcat 服务器设置进行更多研究

标签: java tomcat cookies


【解决方案1】:

如果你像这样对给定的值进行编码,它可能会解决:

URLEncoder.encode(""{\"capabilities\":{\"is_smart…383,\"id\":\"firefox_54_0\"}"","UTF-8");

【讨论】:

  • 是的,我认为这会解决它,但不幸的是,cookie 已添加到我正在使用的库 (DeviceLookupClient.jar) 的深处。我想我可以改变它并重新打开它,但我们通常不这样做。
猜你喜欢
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
  • 2019-03-03
相关资源
最近更新 更多