标签: jsessionid

在什么条件下创建了JSESSIONID?

何时/什么JSESSIONID是创建a的条件?

是按域名吗?例如,如果我有一个Tomcat应用服务器,并且我部署了多个Web应用程序,JSESSIONID那么每个上下文(Web应用程序)是否会创建不同的Web应用程序,或者只要它们是同一个域,它是否可以跨Web应用程序共享?

java jsessionid

263
推荐指数
4
解决办法
36万
查看次数

是否可以在tomcat servlet中禁用jsessionid?

是否有可能在tomcat的url中关闭jsessionid?jsessionid似乎对搜索引擎不太友好.

java tomcat servlets jsessionid

67
推荐指数
5
解决办法
7万
查看次数

更改cookie JSESSIONID名称

我需要在单个物理盒中运行多个tomcat服务器.从浏览器访问这些内容时,当用户在应用程序之间切换时,会导致用户先前登录访问应用程序.这是因为JSESSIONID cookie冲突.

一种可能的解决方案是在不同的上下文中运行每个应用 不幸的是,我的应用程序不能在上下文路径设置中工作,因为前面没有前面的request.getContextPath()访问任何资源.

这使我可以更改cookie JSESSIONID的名称来解决冲突.有没有办法做到这一点?如果有,怎么样?

希望我能说清楚我的问题.

注意:我的所有应用程序都在同一台机器的不同端口运行.

java tomcat jsessionid

53
推荐指数
5
解决办法
7万
查看次数

jsession是在由jstl <c:url ..>标记生成的所有URL中发生的

我有一些奇怪的错误:当我第一次在某个浏览器中打开页面时,所有引用都有jsessionid参数(如<a href="/articles?name=art&jsessionid=5as45df4as5df"..>).

当我按F5或以任何其他方式刷新页面时,所有这些东西都消失了,一切正常,直到我关闭浏览器(并且所有选项卡也应该关闭).当我再次打开它时,我看到了这个奇怪的jsessionid参数.

我使用jstl <c:url..>标签来创建所有URL.

我已经读过一段时间了,如果禁用cookie,jsessionid是cookie的替代品,但cookie已经启用,我实际上不使用cookie.

jsp jstl jsessionid

31
推荐指数
4
解决办法
4万
查看次数

什么是主机唯一的cookie?

我想知道什么是host onlycookie.

在检索a时form auth,浏览器会在标题中显示一个JSESSIONID cookie host only.

cookies jsessionid java-ee

29
推荐指数
2
解决办法
3万
查看次数

如何在登录后刷新JSESSIONID cookie

我工作的产品得到了潜在客户的严格安全审核,他们对Tomcat在认证发生之前设置JSESSIONID cookie感到不安.也就是说,Tomcat在加载无状态登录页面时设置此cookie,但在登录之前.

他们建议以下任何一种:

  1. 登录后发出新的JSESSIONID cookie
  2. 防止在登录页面上首先设置JSESSIONID cookie(即,在身份验证发生之前)

我一直在浏览这个网站上与JSESSIONID相关的所有内容,但却找不到简单的答案.我只是希望有一些想法.我最好的解决方案是:

  1. 在登录后,通过复制所有属性,使旧会话无效,创建新会话,复制值,将其与请求相关联以及希望它起作用来克隆会话(减去id).
  2. 在链的最末端创建一个servlet Filter,在最初加载Login Page之前去除JSESSIONID cookie.然后希望登录请求在没有设置JSESSIONID的情况下运行.

我得睡一觉,但早上会尝试这些.能够比我更聪明的人得到一些反馈或更好的建议真是太棒了 - 就像你一样!

无论如何,我会在这里发布我的结果,因为似乎很多其他人都想做类似的事情.

tomcat login jsessionid session-cookies

27
推荐指数
4
解决办法
4万
查看次数

在Tomcat中具有过期日期的JSESSIONID Cookie

设置Tomcat为servlet会话发送的JSESSIONID cookie的截止日期的最佳方法是什么?

默认情况下,cookie的到期日期似乎是"会话",这意味着一旦浏览器重新启动,会话就会在客户端中消失.但是我想让它保持打开12小时,即使在浏览器重启后(然后会相应地在服务器中配置会话超时).

有没有办法在Tomcat中设置过期日期,例如使用某些配置选项或扩展模块?或者是否有可靠的方法使用Servlet过滤器为JSESSIONID设置过期日期?

cookies session tomcat servlets jsessionid

26
推荐指数
1
解决办法
3万
查看次数

如何在反向代理后面正确设置JSESSIONID cookie路径

我的Web应用程序在Tomcat中运行,http://localhost:8080/example.com/但它正在从http://example.com/端口80上提供的Apache进行反向代理.我的Web应用程序查看request.getHeader("x-forwarded-host")标头以了解它是在反向代理之后.当它(动态地)检测到它时,它会在没有servlet路径的情况下构建URL.

这适用于除JSESSIONID cookie之外的所有内容.它通过路径/example.com而不是/通过反向代理访问时设置.我无法弄清楚当代码上有x-forwarded-host标题时,我的代码如何告诉Tomcat覆盖该cookie的路径.

我自己尝试从Web应用程序设置JSESSIONID cookie,但这只会产生两个Set-Cookie标头,其中只有一个是正确的.

tomcat reverse-proxy jsessionid

24
推荐指数
3
解决办法
4万
查看次数

没有cookie的Spring安全会话

我正在尝试在不利用cookie的情况下管理Spring Security中的会话.原因是 - 我们的应用程序显示在另一个域的iframe中,我们需要在我们的应用程序中管理会话,并且Safari限制跨域co​​okie的创建.(上下文:domainA.com在iframe中显示domainB.com.domainB.com正在设置一个JSESSIONID cookie以在domainB.com上使用,但由于用户的浏览器显示domainA.com - Safari限制domainB.com创建cookie) .

我能想到的唯一方法(针对OWASP安全建议) - 将URL中的JSESSIONID作为GET参数包含在内.我不想这样做,但我想不出另一种选择.

所以这个问题都是关于:

  • 是否有更好的替代方案来解决这个问题?
  • 如果不是 - 我怎样才能通过Spring Security实现这一目标

回顾Spring的文档,使用enableSessionUrlRewriting应该允许这样做

所以我做到了这一点:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.ALWAYS)
            .enableSessionUrlRewriting(true)
Run Code Online (Sandbox Code Playgroud)

这没有将JSESSIONID添加到URL,但现在应该允许它.然后我利用此问题中的一些代码将"跟踪模式"设置为URL

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

   @Override
   public void onStartup(ServletContext servletContext) throws ServletException {
      super.onStartup(servletContext);

      servletContext
        .setSessionTrackingModes(
            Collections.singleton(SessionTrackingMode.URL)
      );
Run Code Online (Sandbox Code Playgroud)

即使在此之后 - 应用程序仍然将JSESSIONID添加为cookie而不是URL.

有人可以帮助我指出正确的方向吗?

java iframe spring-security cross-domain jsessionid

22
推荐指数
2
解决办法
8755
查看次数

Spring启动为嵌入式服务器配置自定义jsessionid

我想配置我的servlet上下文,例如设置自定义jsessionId键(请参阅更改cookie JSESSIONID名称)

我相信我可以使用SpringBootServletInitializer运行WAR文件时,操纵servletContextonStartup().但是,当我在嵌入式应用程序服务器上运行时 new SpringApplicationBuilder().run(),我不知道操作servlet上下文的最佳位置.

java jsessionid spring-boot

20
推荐指数
2
解决办法
2万
查看次数