【问题标题】:What is empty session path in tomcat?什么是tomcat中的空会话路径?
【发布时间】:2011-05-18 22:55:11
【问题描述】:

我前一天阅读了 apache tomcat 文档,我对 emptySessionPath 感到很困惑。据我所知,如果设置为 true,emptySessionPath 将存储在 Web 应用程序的根文件夹中。请给出emptySessionPath这个词的正确定义,如果它被设置为true和false会发生什么?

请指导我。提前谢谢。

【问题讨论】:

    标签: java tomcat webserver tomcat6 connector


    【解决方案1】:

    emptySessionPath 字段仅说明所有 cookie 是否应存储在根 URL 路径 /(如果为 emptySessionPath=true)或不(否则)。

    这由 Apache 的连接器使用。查看详细信息here(这是 AJP 连接器,它是连接器对象的一部分)。

    这基本上意味着:

    如果emptySessionPath 在 tomcat,JSESSIONID cookie 是 写入根“/”路径。这 意味着无论你使用什么 webapp 将使用相同的 cookie。每个网络应用程序 会将 cookie 的值重写为 保存该 webapp 的会话 ID,并且 它们都是不同的。

    当它被启用并且 servlet 在 使用不同的 webapps,请求 从同一个用户到不同 servlet 最终会覆盖 cookie 以便当 servlet 是 再次与之交互将创建 一个新的会话并松开它 已经设置好了。

    如果没有设置emptySessionPath,则 是浏览器中的多个 cookie, 每个 webapp 一个(在 root), 所以不同的 webapps 不是 将彼此的 cookie 重写为 以上。

    JSESSIONID 是您的 Webapp 的 ID 会话。查看完整说明here

    更新:关于 usage 的信息有些过时了 - 请参阅 here 了解有关如何为最近的 tomcat 设置 Session 路径的更多最新信息。 em>

    【讨论】:

    • 嗨,精英,如果没有设置空会话路径,请进一步解释会发生什么?
    • @Muneeswaran Balasubramanian,如果您阅读我的第一个链接,默认值为false,如果未设置。另外,请阅读被阻止部分的最后一段,它解释了是否未设置 emptySessionPath
    • 是的。我无法理解你在被屏蔽部分的最后一段,所以只有我问你。请进一步解释。
    • 在我的应用程序中,我在会话过期后发送了请求。如果该请求是正常工作的 http 请求。但如果该请求是 Ajax 请求,则 URL 已更改但页面未加载。但是在我设置空会话路径为真之后。一切正常。所以这之间会发生什么?如果你能解释一下。
    • Ajax 不会重新加载页面,因为您正在对服务器进行异步调用,因此它永远不会重新加载页面。我无法真正解释为什么设置emptySessionPath 时一切正常。
    【解决方案2】:

    如果emptySessionPath设置为true,它将从JSESSIONID cookie中消除上下文路径。它会将cookie路径设置为/。该属性可用于跨应用程序的身份验证机制。

    【讨论】:

      【解决方案3】:

      您可能知道,会话通常由 cookie 维护。 cookie 有两个值,用于确定浏览器是否应为某个请求返回它们,cookieDomaincookiePathcookiePath 必须与请求匹配。

      提出了一个请求

       /some/request/for/this.html
      

      Cookie 将与 cookie 路径一起返回:

       / 
       /some
       /some/request
      

      但不适用于 cookie 路径:

       /other
      

      按照规范,会话不会在不同的 Web 应用程序之间共享,因此如果您将 Web 应用程序 foo.war 部署在 /foo 下,则会话 cookie 路径默认设置为 /foo

      似乎Connector.emptySessionPath 是连接器上的受保护变量。我还没有阅读代码 - 但我猜它与 Tomcat 的单点登录或共享会话有关,您可以在其中登录到一个上下文并全部通过身份验证 - 在这种情况下,cookie 路径必须是 /会话 cookie。

      【讨论】:

        【解决方案4】:

        以防万一,对于web_app 3.0版本,cookie配置是标准化的,所以相当于webapp 3.0中AJP的emptySessionPath是:



        /路径>
        真安全>


        【讨论】:

          猜你喜欢
          • 2011-04-28
          • 2014-08-02
          • 1970-01-01
          • 1970-01-01
          • 2011-11-30
          • 2016-10-12
          • 1970-01-01
          • 2013-10-07
          • 1970-01-01
          相关资源
          最近更新 更多