我正在尝试在JSESSIONID cookie上设置httponly标志.我在Java EE 5中工作,但是无法使用setHttpOnly().首先,我尝试doPost()使用在servlet中创建自己的JSESSIONID cookie response.setHeader().
如果那不起作用,我试过了response.addHeader().那也行不通.然后,我了解到servlet处理将会话转换为JSESSIONID cookie并将其插入http头中,因此如果我想使用该cookie,我将不得不编写一个过滤器.我写了一个过滤器和setHeader()/ addHeader()在那里玩,再次无济于事.
然后,我了解到响应对象在进入过滤器之前会有一些刷新/关闭动作,所以如果我想操纵数据,我需要扩展HttpServletResponseWrapper并传递给它filterChain.doFilter().这已经完成,但我仍然没有得到结果.显然我做错了但我不知道是什么.
我不确定这与手头的问题是否完全相关,但servlet没有将任何html文档返回给浏览器.所有真正发生的事情是正在填充一些对象并将其返回到JSP文档.我有点假设Session对象被转换为JSESSIONID cookie,并在发送到浏览器之前将其与添加到请求中的对象一起包装在http标头中.
我很乐意发布一些代码,但我想排除我的困难源于对该理论的误解的可能性.