如何使用Liberty更改生成的JSESSIONID的长度

How to change length of generated JSESSIONID with Liberty?

本文关键字:JSESSIONID 何使用 Liberty      更新时间:2023-09-26

我在Liberty上运行项目时收到了一些警告消息,特别是在Chrome中。

[WARNING ] Detected JSESSIONID with invalid length; expected length of 23, found 28, setting: BD14EBEEDBE53803FAE565131A03 to null.

这是因为Liberty正在生成长度为28的JSESSIONID,但Liberty配置文件默认httpSession属性idLength为23。如果我设置

<httpSession idLength="28" />

在Libertyserver.xml中,我没有在日志中得到这些警告消息。然而,我想在不更改server.xml的情况下解决这个问题

是否可以将JSESSIONID的生成方式更改为默认长度23?或者这可能是一个糟糕的方法?

在将WebSphere版本升级到8.5.5.8后,我出现了此错误。最终成功的是删除了我的浏览器cookie。我怀疑发生的事情是浏览器使用了WebSphere早期版本中的旧的(更长的)JSESSION cookie。

WebSphere默认创建长度为23JSESSIONID。因此,在您的情况下,您必须在同一主机上拥有不同的应用程序服务器或web容器,这会创建不同的会话cookie。避免这些问题的最佳方法是更改其中一个已安装产品的默认cookie名称。将长度更改为28只会解决日志中的消息,但您会收到应用程序错误,因为Websphere会查找它没有的会话,反之亦然——其他应用程序服务器在接收Websphere生成的cookie时也找不到会话。

检查此链接:http://www-01.ibm.com/support/docview.wss?uid=swg21671600