Netty CookieDecoder中允许的字符

Netty CookieDecoder中允许的字符,netty,Netty,我的公司使用了很多传统cookie,cookie值中包含“=”和“,”。例如:A=v=1&lg=en-US、it-it、it&intl=it&np=1;T=z=E。现在不可能清除这些cookies,我们需要Netty在验证这些cookies时不要抛出IllegalArgumentException。有什么建议吗?是否可以向CookieDecoder提交一个补丁,或者读入一些env变量,从而选择正确的正则表达式 谢谢 Netty 3.5.1.Final在解码您提到的cookie时没有问题: @Te

我的公司使用了很多传统cookie,cookie值中包含“=”和“,”。例如:A=v=1&lg=en-US、it-it、it&intl=it&np=1;T=z=E。现在不可能清除这些cookies,我们需要Netty在验证这些cookies时不要抛出IllegalArgumentException。有什么建议吗?是否可以向CookieDecoder提交一个补丁,或者读入一些env变量,从而选择正确的正则表达式


谢谢

Netty 3.5.1.Final在解码您提到的cookie时没有问题:

@Test
public void testDecodingValuesWithCommasAndEquals() {
    String src = "A=v=1&lg=en-US,it-IT,it&intl=it&np=1;T=z=E";
    Set<Cookie> cookies = new CookieDecoder().decode(src);
    Iterator<Cookie> i = cookies.iterator();
    Cookie c = i.next();
    assertEquals("A", c.getName());
    assertEquals("v=1&lg=en-US,it-IT,it&intl=it&np=1", c.getValue());
    c = i.next();
    assertEquals("T", c.getName());
    assertEquals("z=E", c.getValue());
}
@测试
使用CommasAndEquals()的公共无效测试DecodingValues{
String src=“A=v=1&lg=en-US,it-it,it&intl=it&np=1;T=z=E”;
设置cookies=new CookieDecoder().decode(src);
迭代器i=cookies.Iterator();
Cookie c=i.next();
assertEquals(“A”,c.getName());
assertEquals(“v=1&lg=en-US,it-it,it&intl=it&np=1”,c.getValue());
c=i.next();
assertEquals(“T”,c.getName());
assertEquals(“z=E”,c.getValue());
}

太棒了,非常感谢您的关注!我们使用的是3.3.1.Final,CookieDecoder逻辑完全不同,这解释了一些事情。再次感谢!