当前位置: 首页 > news >正文

开发避坑短篇(8):Java Cookie值非法字符异常分析与解决方案:IllegalArgumentException[32]

异常信息

javajava.lang.IllegalArgumentException: An invalid c0haracter [32] was present in the Cookie value。

异常背景

spring web项目,从tomcat7迁移到tomcat8后运行报错。

异常分析

翻译异常信息:java.lang.IllegalArgumentException: Cookie值中包含非法字符。Cookie值中不允许包含空格等特殊字符,ASCII码32对应空格字符‌。经查阅资料,了解到Tomcat8新增了对HTTP请求头和Cookie值的严格校验,ASCII码32(空格)等特殊字符会被拒绝‌,这与新升级的RFC 6265规范相关‌。常见触发场景‌(1)URL或Cookie值包含空格、花括号等字符‌。(2)时间格式化字符串直接作为Cookie值(如"yyyy-MM-dd HH:mm:ss")‌。
(3)请求头或参数中存在未编码的特殊字符‌。

解决办法

修改tomcat目录下的配置文件\conf\context.xml,指定CookieProcessor为org.apache.tomcat.util.http.LegacyCookieProcessor,具体配置如下:

<Context><CookieProcessor className="org.apache.tomcat.util.http.LegacycookieProcessor"/></context>

CookieProcessor 是 Tomcat 的核心组件,负责解析 HTTP 请求中的 Cookie 头部javax.servlet.http.Cookie 对象,并在响应时将 Cookie 对象转换为标准的 Set-Cookie 头部返回给客户端‌。LegacyCookieProcessor 是 Tomcat 早期版本中用于解析和生成 Cookie 的核心组件,其核心作用主要有:
(1)允许特殊字符‌:与严格遵循 RFC 6265 规范的 Rfc6265CookieProcessor 不同,LegacyCookieProcessor 对 Cookie 值中的特殊字符(如 ‌空格(ASCII 32)、中文、花括号等‌)容忍度更高,不会因这些字符触发 IllegalArgumentException 异常‌。
(2)兼容历史代码‌:适用于从 Tomcat 7 或 8.0 迁移至 Tomcat 8.5+ 时,处理遗留系统中未严格编码的 Cookie 值‌。

http://www.dtcms.com/a/305300.html

相关文章:

  • 前端css 的固定布局,流式布局,弹性布局,自适应布局,响应式布局
  • redis得到shell的几种方法
  • Python包架构设计与模式应用:构建可扩展的企业级组件
  • 本土化DevOps实践:Gitee为核心的协作工具链与高效落地指南
  • Java 11 新特性详解与代码示例
  • 《C++》STL--vector容器超详细解析
  • CSS 在单页应用(SPA)中的适用性解析与实践
  • QWebEngineProfile setCachePath无效
  • aar, aab,apk三种应用格式的区别
  • Linux网络编程——IP地址与端口、通信协议、Socket套接字基础概念解析
  • 【C语言】指针深度剖析(一)
  • Router 动态路由
  • FPGA数码管驱动模块
  • Netty中FastThreadLocal解读
  • C++多态:面向对象编程的灵魂之
  • Linux_库制作与原理浅理解
  • 青木川古镇
  • Flex布局面试常考的场景题目
  • 墨者:SQL过滤字符后手工注入漏洞测试(第3题)
  • MC0244多重堡垒
  • kotlin使用mybatis plus lambdaQuery报错
  • Java中什么是类加载?类加载的过程?
  • TGD第八篇:二维应用——图像边缘检测
  • FastAPI入门:Cookie参数、Header参数、Cookie参数模型、Header参数模型
  • 移动端 WebView 调试实战,多平台行为差异排查与统一调试流程
  • Gartner发布CTEM指南:使用持续威胁暴露管理来减少网络攻击
  • 应急前端“黄金3分钟”设计:极端场景下的操作界面极速搭建技术
  • COPRAS(Complex Proportional Assessment)简介与简单示例
  • 汇总10个高质量免费AI生成论文网站,支持GPT4.0和DeepSeek-R1
  • [学习记录]URP流程解析(2)--初始化阶段