URL中出现JSESSIONID后,我的Web应用程序停止工作

玛格诺C

我有一个在Apache Tomcat 7中运行并使用Struts2的Web应用程序。我的登录系统是通过将一个User对象放在一个会话中而制成的:

(为了清楚起见,请绕过“ if”和“ try”。)

UserService es = new UserService();
User user = es.login(username, password);
ActionContext.getContext().getSession().put("loggedUser", user);

然后,我尝试从Interceptor的该会话中获取User对象。如果一切正常,则将有人登录。如果不是,请返回Struts.xml中的Struts2全局结果捕获的“ notLog”来进入登录页面:

public String intercept(ActionInvocation invocation) {
    User loggedUser = (User)invocation.getInvocationContext().getSession().get("loggedUser");
    if (loggedUser == null) {
        return "notLogged";
    }
    try {
        return invocation.invoke();
    } catch ( Exception ignored ) {
        return "notLogged";
    }
}

struts.xml

<global-results>
    <result name="notLogged">/index.jsp</result> 
</global-results>

一切都很好,直到服务器管理员进行了一些维护并且“ jsessionid”开始出现在URL中。此后,我将无法再导航系统(直到将ID复制并粘贴到我要访问的每个URL中。无法形成操作目标)。我仍然能够登录,并且看到User对象仍在捕获中,但是如果没有该ID,我将无法前往任何目的地。

我尝试这样做:https://fralef.me/tomcat-disable-jsessionid-in-url.html,并把COOKIEtracking-mode标签在web.xml中我,但事情去最坏的,因为现在我做不到,甚至登录。

发生了什么,我该怎么做才能解决此问题并使系统恢复正常工作?

ZhongYu

这显然是由Cookie路径不匹配引起的。

浏览器仅在请求URL路径与cookie路径匹配时发送回cookie,例如

 cookie path :  /abc
request path:   /abc/xyz   // match
request path:   /xyz       // no match

缺省情况下,Tomcat将会话cookie路径设置为Web应用程序路径,这样就不会将cookie发送到其他Web应用程序。但是,在您的情况下,中间件会更改请求URL路径,因此浏览器会观察到其他路径,从而导致Cookie路径不匹配。

在大多数情况下,我建议将cookie路径设置为“ /”,以使其与服务器上的所有请求相匹配(假设Tomcat上只有一个应用程序)

// context.xml
<Context sessionCookiePath="/">

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

URL中出现JSESSIONID后,我的Web应用程序停止工作

来自分类Dev

单击按钮后,应用程序停止工作

来自分类Dev

单击TextView后,Android应用程序停止工作

来自分类Dev

单击按钮后应用程序停止工作

来自分类Dev

单击按钮后应用程序停止工作

来自分类Dev

我无法打印此数组。应用程序在此行后停止工作

来自分类Dev

提交我的应用程序后,iAds已停止工作

来自分类Dev

切换元素位置后,为什么我的应用程序停止工作?

来自分类Dev

为什么我的应用程序停止工作?

来自分类Dev

我的应用程序在 pos 设备上停止工作

来自分类Dev

应用程序已停止工作

来自分类Dev

从Spring Boot 1.2.8切换到1.3.2后,应用程序神奇地停止工作

来自分类Dev

Cx_Freezing PySide,praw,要求应用程序冻结后停止工作

来自分类Dev

容器化后,NodeJS应用程序停止工作[容器中的FTP服务器]

来自分类Dev

在/ usr / bin中更改权限后,为什么某些应用程序会停止工作?

来自分类Dev

转到使用Java创建布局后,Android应用程序停止工作

来自分类Dev

节点和/或cordova更新后,cordova应用程序停止工作

来自分类Dev

应用程序更新后,小部件接收器停止工作

来自分类Dev

自从我更改了Web服务的URL后,我的应用程序无法正常工作

来自分类Dev

自从我更改了Web服务的URL后,我的应用程序无法正常工作

来自分类Dev

只要我选择一个单选按钮,应用程序就会停止工作

来自分类Dev

iOS动画在iOS7中的我的应用程序中停止工作

来自分类Dev

当我得到的数据的此方法的应用程序停止工作

来自分类Dev

使用新版KitKat Glass,我在API 15下开发的Glass应用程序停止工作

来自分类Dev

当我按下 ButtonImage 时应用程序崩溃。不幸的是,该应用程序已停止工作

来自分类Dev

Xamarin Android应用程序不幸地停止工作

来自分类Dev

不幸的是,应用程序已停止工作?

来自分类Dev

android-地图应用程序停止工作

来自分类Dev

Cordova Windows应用程序停止工作

Related 相关文章

  1. 1

    URL中出现JSESSIONID后,我的Web应用程序停止工作

  2. 2

    单击按钮后,应用程序停止工作

  3. 3

    单击TextView后,Android应用程序停止工作

  4. 4

    单击按钮后应用程序停止工作

  5. 5

    单击按钮后应用程序停止工作

  6. 6

    我无法打印此数组。应用程序在此行后停止工作

  7. 7

    提交我的应用程序后,iAds已停止工作

  8. 8

    切换元素位置后,为什么我的应用程序停止工作?

  9. 9

    为什么我的应用程序停止工作?

  10. 10

    我的应用程序在 pos 设备上停止工作

  11. 11

    应用程序已停止工作

  12. 12

    从Spring Boot 1.2.8切换到1.3.2后,应用程序神奇地停止工作

  13. 13

    Cx_Freezing PySide,praw,要求应用程序冻结后停止工作

  14. 14

    容器化后,NodeJS应用程序停止工作[容器中的FTP服务器]

  15. 15

    在/ usr / bin中更改权限后,为什么某些应用程序会停止工作?

  16. 16

    转到使用Java创建布局后,Android应用程序停止工作

  17. 17

    节点和/或cordova更新后,cordova应用程序停止工作

  18. 18

    应用程序更新后,小部件接收器停止工作

  19. 19

    自从我更改了Web服务的URL后,我的应用程序无法正常工作

  20. 20

    自从我更改了Web服务的URL后,我的应用程序无法正常工作

  21. 21

    只要我选择一个单选按钮,应用程序就会停止工作

  22. 22

    iOS动画在iOS7中的我的应用程序中停止工作

  23. 23

    当我得到的数据的此方法的应用程序停止工作

  24. 24

    使用新版KitKat Glass,我在API 15下开发的Glass应用程序停止工作

  25. 25

    当我按下 ButtonImage 时应用程序崩溃。不幸的是,该应用程序已停止工作

  26. 26

    Xamarin Android应用程序不幸地停止工作

  27. 27

    不幸的是,应用程序已停止工作?

  28. 28

    android-地图应用程序停止工作

  29. 29

    Cordova Windows应用程序停止工作

热门标签

归档