spring – 如何在jetty 9中禁用基于cookie的JSESSIONID(以及任何其他)会话跟踪功能?

我希望在我的无状态或手动维护的状态Spring MVC应用程序中禁用Jetty 9中的各种会话跟踪功能,但我找不到任何显示如何执行此操作的工作示例.

我尝试了以下/WEB-INF/spring-config.xml标记:

...
<security:http use-expressions="true"
               disable-url-rewriting="true"
               create-session="stateless">
...

与战争中的以下/WEB-INF/jetty-web.xml描述符一起:

<?xml version="1.0"  encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Get name="sessionHandler">
        <Get name="sessionManager">
            <Set name="usingCookies" type="boolean">false</Set>
        </Get>
    </Get>
</Configure>

但是,无论何时尝试打开我的应用程序的任何页面,我仍然会获得JSESSIONID cookie.任何提示为什么以及如何解决它?

解决方法:

使用servlet 3,可以将会话跟踪模式设置为servlet注册的一部分 – ServletContext#setSessionTrackingModes ……你可以试试.

但是在你的情况下,我会调查谁在调用HttpServletRequest#getSession(…).在此方法中放置断点以查看谁在调用它.应用程序中的某些代码正在初始化会话.

上一篇:java-请求过滤器在嵌入式Jetty的Jersey 2中不起作用


下一篇:htmlunit的使用