Cookie 处理器组件
目录
简介
CookieProcessor 元素表示一个组件,该组件将接收到的 cookie 头解析为通过 HttpServletRequest.getCookies()
可访问的 jakarta.servlet.http.Cookie
对象,并将通过 HttpServletResponse.addCookie()
添加到响应中的 jakarta.servlet.http.Cookie
对象转换为返回给客户端的 HTTP 头。
CookieProcessor 元素可以嵌套在 Context 组件内。如果未包含,将自动创建一个默认实现。
属性
通用属性
所有 CookieProcessor 实现都支持以下属性
属性 | 描述 |
---|---|
className |
要使用的实现的 Java 类名。此G类必须实现 |
标准实现
CookieProcessor 的标准实现是 org.apache.tomcat.util.http.Rfc6265CookieProcessor
。
此 cookie 处理器基于 RFC6265,并进行了以下更改以支持更好的互操作性:
- 允许 cookie-octet 中出现 0x80 到 0xFF 的值,以支持 HTML 5 中使用的 UTF-8 编码的 cookie 值。
- 对于没有值的 cookie,名称后不需要“=”,因为某些浏览器不发送它。
RFC 6265 cookie 处理器通常比旧版 cookie 解析器更宽松。特别是:
- 在 cookie 值中始终允许使用“
=
”和“/
”字符。 - 始终允许仅有名称的 cookie。
- cookie 头始终保留。
RFC 6265 Cookie 处理器支持以下附加属性。
属性 | 描述 |
---|---|
cookiesWithoutEquals |
确定从用户代理接收到的 cookie 在名称-值对不包含等号时应如何解释。默认值为 |
partitioned |
是否在 cookie 上设置 Partitioned 标志?默认为 注意:作为 CHIPS 的一部分,用于指示分区 cookie 的属性名称尚未由 RFC 定义,并且一旦 RFC 中包含等效功能,可能会以不向后兼容的方式发生变化。 |
sameSiteCookies |
启用设置同站(same-site)cookie 属性。 如果值为 如果值为 如果值为 如果值为 |
嵌套组件
任何元素都不能嵌套在 CookieProcessor 中。
特殊功能
CookieProcessor 元素没有特殊功能。