WebSphere 8.5+Spring应用认证后报SESN0066E错误求配置排查方案
我之前在部署Spring Web应用到WebSphere 8.5时也碰到过一模一样的SESN0066E错误,折腾了好一阵才找到对应的配置调整点,给你详细说下:
这个错误的核心原因是:WebSphere尝试设置会话Cookie的时候,响应已经被提交给客户端了(比如你的Spring认证逻辑提前触发了response的flush或关闭操作),而WebSphere默认不允许在响应提交后再设置Cookie,于是就抛出了这个报错。
具体调整步骤
你需要给WebSphere的Web容器添加一个自定义属性,允许在响应提交后设置会话Cookie:
- 登录WebSphere管理控制台,导航到 Servers > Server Types > WebSphere application servers > [你的目标应用服务器名称]
- 在服务器配置页面,展开左侧的Web Container Settings,点击Web container
- 切换到Custom properties标签页,点击New按钮添加新属性:
- 属性名称(Name):
com.ibm.ws.webcontainer.allowSetCookieAfterResponseCommit - 属性值(Value):
true
- 属性名称(Name):
- 保存所有配置变更,然后重启你的应用服务器
额外排查点(如果上述方法无效)
如果添加属性后还是报错,可以检查会话管理的Cookie配置:
- 回到服务器配置页面,进入 Web Container Settings > Session management > Enable cookies
- 确认Session cookie name是
JSESSIONID(Spring默认适配的会话Cookie名),同时确保没有勾选Set session cookie security attributes里的强制安全属性(除非你的场景确实需要) - 另外也可以暂时关闭Session affinity(会话亲和性)测试,如果关闭后错误消失,说明亲和性配置和你的认证逻辑有冲突,再针对性调整亲和性的触发时机
我当时就是通过添加那个自定义属性解决的问题,你可以先试试这个方案,重启后再走一遍认证流程,应该就能消除这个报错了。
内容的提问来源于stack exchange,提问作者YK mar
相关产品推荐
相关产品推荐

