カンマ区切り値を持つバージョン1のCookieを送信しているクライアントがあります。これは、バージョン1のCookieでは問題ないはずですが、バージョン0では許可されていません。
だからこれはクッキーです
test.cookie=1,1
Cookie [] Cookies = request.getCookies []を読み取ると、次のような2つのCookieが返されます。
test.cookie=1
1=
したがって、Cookieの値は、バージョン0のCookieで期待される次のCookieの区切り文字として表示されます。したがって、問題は、着信HttpServletRequestからCookieを読み取る前に、Cookieバージョンを設定できるかどうかです。
Cookie.setVersion(int)メソッドがあることは知っていますが、コンテナーのCookieを設定していないため、これは役に立ちません。(これは、実際にコンテナにCookieのバージョンを設定するための手がかりになる可能性があります。これから見ていきます)
編集 私がこれを回避した方法は、ヘッダーを読み取り、セミコロンで区切られたリストとして提供されるCookieヘッダーの値を読み取り、各Cookie名と値のペアを自分で解析してCookieの値のコンマを解析することです。その後、正しく保存され、Cookieが1つだけ取得されます。ただし、HttpServleRequest.getCookies()を使用してこれを行う方法があるかどうかを知っておくと便利です。