今天修复一个老项目的BUG,部署到正式环境中测试的碰到一个关于cookie带引号的问题,这里记录一下
1.场景
后端对response进行写入cookie,代码如下:
Cookie cookie1 = new Cookie("loginType", "2");
Cookie cookie2 = new Cookie("iam", SecretConstant.AUTH_CENTER_HOST);
response.addCookie(cookie1);
response.addCookie(cookie2);
前端JSP中获取cookie的值,console打印出来的value是没有双引号的,但是到了浏览器中,通过F12查看就有,你说神奇不?
2.问题发现
我的cookie存了一个从后端配置文件(多环境)获取的一个第三方host(eg. http://127.0.0.1:8080/)
代码是一致在不同tomcat版本执行出现了低版本的就是会带引号"
。
3.问题解决
在版本较低的tomcat下,进行对catalina.properties加上如下配置:
org.apache.tomcat.util.http.ServerCookie.ALLOW_EQUALS_IN_VALUE=true
org.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V0=true
org.apache.tomcat.util.http.ServerCookie.ALLOW_HTTP_SEPARATORS_IN_V1=true
完美解决