问题标签 [jsessionid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
17053 浏览

java - Where is JSESSIONID stored? (JavaEE)

I have two applications - A Java EE web application and a Java SE applet. I want to authenticate a user in the applet by means of a JSESSIONID (which is created by the web application).

So there is a problem - how to associate this JSESSIONID with a particular user?

How to check (on the web server application side) which user is represented by such JSESSIONID? In the applet I will be reading it from a cookie, and then I want to write a simple Servlet which will accept this JSESSIONID as a POST message. Thereafter I would like to write in the response nothing at all when the JSESSIONID is bad, and the user info if JSESSIONID is good (i.e. is representing someone).

Does anyone know how to do this?

0 投票
1 回答
3941 浏览

cookies - 设置 Tomcat 7 sessionid 和值以通过硬件负载平衡识别会话亲缘关系

尽管从我的角度来看,使用 IIS 很容易完成,但我对 Tomcat 完全是个菜鸟,并且不知道如何为 cookie 内容设置静态值。是的,我已经阅读了安全隐患,最终将通过 SSL 访问,所以我不担心。另外,我已经阅读了关于不更改值的 Servlet 3.0 规范,我接受了这一点。

在 IIS 中,我将简单地设置一个名为 Set-Cookie 的 HTTP Header,其 WebServerSID 的任意设置和值为 1001。

然后在包含这组真实服务器的负载平衡器 VIP 中,将值 WebServerSID 设置为 VIP 级别,并为第一个 Web 服务器设置 cookie 值 1001,以此类推,其余机器 1002 用于服务器 2,1003 用于服务器 3。

这通过 cookie 实现会话亲和性,直到客户端关闭浏览器。

Tomcat 7.0.22 如何做到这一点?

我看到在 Tomcat 6.x 和 7.x 之间发生了大量关于 cookie 及其设置方式的配置更改。经过上周的广泛研究,我尝试了以下方法。

在 web.xml 中:(这将在 Tomcat 7.x 下禁用 URL 重写) <tracking-mode>COOKIE</tracking-mode>在默认会话元素下

在 context.xml 中:(cookies 默认为 true,但我很明确,因为我无法让它工作)

我在 context.xml 中有 2 个用于 sessionCookieName 的条目,因为来自 Tomcat 6.x 的等效命令看起来已经合并为 1 个。请参阅http://tomcat.apache.org/migration-7.html#Tomcat_7.0。 x_configuration_file_differences

提炼:

org.apache.catalina.SESSION_COOKIE_NAME 系统属性:这已被删除。通过为全局 context.xml(在 CATALINA_BASE/conf/context.xml 中)配置 sessionCookieName 属性可以获得等效的效果。org.apache.catalina.SESSION_PARAMETER_NAME 系统属性:这已被删除。通过为全局 context.xml(在 CATALINA_BASE/conf/context.xml 中)配置 sessionCookieName 属性可以获得等效的效果。

如果这不正确,那么我根本不理解所需的语法,而且我找不到任何可以简单地用纯黑白拼写出来的地方。

在 Tomcat 6.x 下,我会在配置中使用 Java 选项,例如:

我正在使用的应用程序没有在其他地方设置任何这些值,所以它不是应用程序。

所有这些设置都在 Catalina 基地的 context/web/server.xml 文件中

在一天结束时,我需要在 Set-Cookies 下的响应标头中看到:(如使用 Fiddler 所见)是:

WebServerSID=1001

不是

JSESSIONID=as8sd9787ksjds9d8sdjks89s898

提前致谢

问候

0 投票
1 回答
1073 浏览

jsp - 如何在 MediaWiki 和 JSP 网站之间设置单点登录

就是这样:我有一个使用 JSP 并部署在 tomcat 上的网站。我现在要做的是设置一个带有 sso 系统的 MediaWiki。即,我希望用户使用同一个帐户访问我的第一个站点和我的 MediaWiki,并且在从一个站点移动到另一个站点时不需要再次登录。

目前,这两个系统使用 Ldap 系统(使用 openldap 设置)共享帐户列表。在 JSP 上连接时,它在 cookie 中存储了一个 JSESSIONID 参数,而在连接到 MediaWiki 时,它似乎存储了 3 个参数:wikidb_session、wikidbUserID 和 wikidbUserName。

使两个系统共享会话 cookie 的最佳方法是什么?

亚历克西斯

0 投票
1 回答
1857 浏览

c# - Internet Explorer - 通过客户端 Java 或 C# 代码设置会话 Cookie 来指定 JSessionID

在我的代码中,我有一个 JSessionID,我想与一个 IE 实例共享它。

我可以启动一个 IE 实例,但是我需要为浏览器指定 JSessionID。应用程序服务器将是 JBoss、WebSphere 或 WebLogic,因此我正在寻找一种通过会话 cookie 设置值的解决方案(通过本地 java 或 C# 代码,而不是基于服务器的代码)。

请注意,通过 url 或服务器设置 JSessionID 对我的方案没有帮助。

0 投票
2 回答
4009 浏览

jquery - JSESSIONID Cookie 被拒绝/丢失

与 JESSIONID Cookie 这样的鬼魂有关的谜团苦苦挣扎。我正在使用 JESSIONID 在基于 AJAX 的站点中保持状态更改之间的会话。这在已部署的服务器上运行良好,但在使用基于 XML 的外部 servlet 在 localhost 上运行站点时却不行。

使用 HTTP Header 工具,我已经能够确定 JSESID Cookie 根本没有设置:

localhost -> external:尝试登录
external -> localhost:返回 XML 并使用 JSESID 正确的 Set-Cookie
localhost -> external:发送没有 JSESID Cookie 的下一个请求(但是,其他 cookie > 正在发送)。

我在几台不同的计算机(和浏览器)上尝试过,结果是一样的。然而奇怪的是,这些解决方案确实适用于移动设备(PhoneGap + Android / iOs)。基于此,我还尝试从 file:// 运行该站点,但没有运气。

由于 servlet 已经部署(Tomcat 6),不幸的是,我无法在这方面进行任何更改,但据我所知,问题出在这方面的可能性很小。我还尝试了此线程中建议的解决方案#1 。这确实设置了一个名为 cookie 的 JSESID,但内容充满了“乱码”。

0 投票
1 回答
217 浏览

session-cookies - 为什么 jsessionid cookie 允许用户访问成员内容,即使凭据错误?

所以,我认为是因为 JSESSIONID cookie 导致了问题,但不太确定,就这样吧。

基本上,用户在登录时需要输入一个特殊的令牌。但不知何故,即使不输入该令牌,用户也能够访问私人/会员页面。

所以用户输入凭据减去令牌,弹出错误,用户忽略它。当然,由于存在该错误,因此不会将用户定向到成员页面。但是用户可以手动输入特定的会员页面并访问它。

  1. 用户访问 mysite.com/home
  2. 用户输入用户名/密码,没有令牌 --> 错误弹出
  3. 用户忽略弹出的错误,手动输入 mysite.com/member/home 并访问它

我相信它是 jsessionid,一旦我删除了那个 cookie,对成员页面的访问也消失了。

有任何想法吗?

0 投票
1 回答
690 浏览

redirect - 301 在 Facelets 中为 SEO 重定向 jsessionid 链接?

在我了解 Google 不太关心 JSessionID 之前,我允许在我的 Facelets 应用程序中重写 URL(默认的 Tomcat 行为)。对于那些还不知道的人,谷歌在 SEO(你的 URL 上的会话 ID)方面不喜欢这样,我已经在 web.xml 中包含以下内容来纠正这个问题:

问题是我有很多500来自过时链接的错误,这些错误会损害我的 SEO,因为网站引用了这些 jsession ID 的过时链接,例如:

通过创建重定向到更新链接的页面,我已经轻松修复了带有 html 或 xhtml 后缀的页面名称的几个错误,但我遇到的问题是我无法创建带有会话 ID 后缀的文件名,因为这不会由 Tomcat 提供服务。

重定向无效的 HTML 链接就像在相关目录中创建一个普通的 (X)HTML 页面并包含如下元标记一样简单(示例):

  • 死链接指向.../Maven-Setup.xhtml
  • Maven-Setup.xhtml在引用位置创建替换
  • 在替换中,我只是添加<meta http-equiv="REFRESH" content="0;url=http://thejarbar.org/views/tutorials/linux/Maven- Setup-Tutorial-for-Linux-with-the-Jar-Bar-and-Yucca-Nel.xhtml"></meta>

如何根据带有会话 ID 的过时 url 重定向请求?我显然倾向于保留这些链接,因为它们可能(或可能不会)为我的网站带来流量,因此我想重定向。

更新我创建了一个 redirect.jsp,目的是在 web.xml 中映射一个 url 模式,以将所有传入的 jsessionid 请求转发到我的新“no jsession”站点:

这不是转发带有 jsession id 的请求,我已经测试redirect.jsp了哪个转发正确。

更新根据 Balusc 的建议和我在这里找到的另一个过滤器,我想出了这个似乎不适用于重定向到我的新站点的方法:

0 投票
3 回答
20619 浏览

jsf - 如何避免在第一次调用页面时出现 ;jsessionid=XXX?如果第一页是jsp,它可以工作

我有一个应用程序,它使用欢迎页面 index.jsp 和<iframe></iframe>iframe 的内容是一个 jsf 页面。如果我访问 index.jsp,我会在第一次进入 firebug 时看到一个 cookie:

的页面<iframe>继承了这个jsessionid。但是:当我直接访问页面时,<iframe/>我会在第一次请求时将 jsessionId 重写为所有没有 cookie 的 URL。之后使用 cookie。这一切都很好 - 如果:安全系统允许我执行 url 重写。

我运行 jboss 4.2.2

我想实现与 index.jsp 相同的行为 - 例如,始终使用 cookie 并始终避免 http 重写。

[编辑] 感谢 balusc 的回答,我写了这个:

不要忘记将其添加到您的web.xml

0 投票
2 回答
672 浏览

java - 我如何保证一个会话?

我需要防止出现以下情况: 1. 同一个用户帐户存在两个不同的 JSESSIONID,或者 2. 单个浏览器的两个选项卡引用相同的 JSESSIONID。

有什么建议么?如果检测到现有会话,用户可以: a) 退出第二次尝试 b) 终止现有会话(刺客!)并开始新会话。

首选是服务器端解决方案。也就是说,我不想依赖用户关闭 cookie 来强制 JSESSIONID 进入 URL。

0 投票
1 回答
1204 浏览

java - Java servlet:如何像 SessionTrackingMode 一样对 url 进行编码?

我设计了基于 Java servlet 的 Web 应用程序,我将使用 swfupload(它是 Flash 组件)来让用户上传文件。

问题是 Flash 无法将 cookie 发送到服务器。所以我需要将会话 ID 添加到 Flash 的回调 url 的方法。Servlet 容器可以做到这一点(方法 HttpServletResponse.encodeUrl),但它只有在浏览器中禁用 cookie 或 SessionTrackingModes 是 URL 时才有效。

有什么方法可以独立于任何其他设置获取使用 jsessionid 编码的 URL?