是否可以覆盖Tomcat的JSESSIONID嵌入式生成器,以便能够根据用户的登录名创建此cookie的自定义值?
为什么我需要这样的:我有"粘性会话",配置为将请求路由具有相同JSESSIONID到同一台服务器的负载均衡,我想阻止的情况下,当相同的用户可以开始在不同的服务器上的两个不同的会话.
PS:所有这些都与Amazon EC2有关
我希望禁用jsessionid在https标头中使用.有没有办法将其关闭或禁用在tomcat 7中设置为cookie?
我要么希望jsessionid嵌入到GET方法url名称值对中,要么成为POST请求名称值对的一部分.
我知道使用基于cookie的会话和URL重写的所有优点和缺点,但我对特定的restful Web服务的特定需求.
我需要tomcat 7接受jsessionid而不使用http头:jsessionid.
谢谢.
更新:
所以我再看了一下,发现这是使用web.xml conf实现的.
但是,以下似乎不适用于Tomcat 7.  
<session-config>
    <tracking-mode>URL</tracking-mode>
</session-config> 
这是TC7没有完全实现servlet 3.0规范的情况吗?
我在jetty web-server中部署的jsf web应用程序中遇到了问题.在浏览器中访问应用程序时,jsessionID会附加在url中.我想从那里删除它.提前致谢.
以下问题与铬...:
我在服务器上运行Grails 1.3.7应用程序.我注意到,当我从Chrome请求静态内容(例如非动态html文件)时,Chrome会创建两个JSESSIONID-Cookies.登录窗口显示时的第一个,以及成功登录后的第二个.如果我想刷新页面或请求其他资源,我将再次登录.(我认为因为Tomcat不理解这两个cookie)
我用FF尝试过,但FF只是创建了一个Cookie,它的工作完美.此外,我已经在本地运行了应用程序,它甚至可以完美地使用chrome.所以,tomecat的东西一定是错的.
环境:
我的httpd.conf:
ProxyPass /manager http://myUrl:8080/manager
ProxyPass /myGrailsApp http://myUrl:8080/myGrailsApp
ProxyPassReverse /manager http://myUrl:8080/manager
ProxyPassReverse /myGrailsApp http://myUrl:8080/myGrailsApp
ProxyPass / http://myUrl:8080/myGrailsApp/frontend
ProxyPassReverse / http://myUrl:8080/myGrailsApp/frontend
提前致谢.
更新1:
我重新构建,重新部署应用程序并重新启动tomcat.
现在我注意到:Chrome不再生成两个cookie.但错误是一样的.每次刷新或请求某些内容时,JSESSIONID都会更改,我必须再次登录.
tomcat-server上的一个短监视显示了大量的活动会话 - 来自chrome的那些...
更新2:
我在服务器上本地尝试了它(使用chrome):
似乎Apache是问题(?).
解:
我已经知道了:) Grails*.gsp-Templates总是在每个请求上请求'favicon.ico' .错误出现在静态内容(如html文件)上的原因是因为我们从Grails-Application重定向到这些资源.
所以我把favicon.ico放在正确的位置,现在它工作:)
此错误仅涉及谷歌Chrome,在FF和IE中它没有任何问题.
我有一个weblogic 10.3.5 Web应用程序,每次刷新页面时JSESSIONID都会更改.这导致我的应用程序的上下文丢失.
这只发生在Chrome和Safari上,Firefox和IE工作正常.
我已经尝试过添加一个favicon并创建一个context.xml但这些解决方案都没有用.
知道会发生什么事吗?
以下是请求和响应标头:
请求标头:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,es-419;q=0.6,es;q=0.4
Cache-Control:no-cache
Connection:keep-alive
Cookie:token=4955000b0d09050d0d0d1b5e5c504d484e007c1b505c494f545e48515c00710d0c090f080a05081b4e584f4b545e5452007a6f7c791b5e5c534954595c59000f1b4d5c4e4e4a524f59000b040a050b580a0f0d5e0d5b0d581b50525349525453545e545c51000c0d0d0d130d0d1b5b55000d080d0c0f0d0c090c0f090a08081b49545853595c0069786e721b484f516f585a4f584e5200125c4d4d1251525a5453134555495051;sessionid=7ai6uh9itp94rjck4nx16div8fy86wo7; csrftoken=h95iaNqxKipsA35pC6N89HzZybO9fgtP;   JSESSIONID=XWPvSbNTtpnPL5wyMyMQbJZYfXLxjqKXnJ1JMGqHvsryJV7Mh2sL!1610567454 Host:localhost:7001 Pragma:no-cache
Referer:<http://localhost:7001/ServicioPagos/app/index.xhtml?  token=4955000b0d09050d0d0d1b5e5c504d484e007c1b505c494f545e48515c00710d0c090f080a05081b4e584f4b545e5452007a6f7c791b5e5c534954595c59000f1b4d5c4e4e4a524f59000b040a050b580a0f0d5e0d5b0d581b50525349525453545e545c51000c0d0d0d130d0d1b5b55000d080d0c0f0d0c090c0f090a08081b49545853595c0069786e721b484f516f585a4f584e5200125c4d4d1251525a5453134555495051&q=1> User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
响应标头:
Content-Type:text/html
Date:Sun, 19 Jan 2014 03:59:52 GMT
Set-Cookie:JSESSIONID=QgptSbNYvQT1TZCxlj6ylDmxQggMLGM5RTnnrnzrR5bnx1JNq99x!1610567454;   path=/; HttpOnly
Transfer-Encoding:chunked
X-Powered-By:Servlet/2.5 JSP/2.1
X-Powered-By:JSF/2.0
这可能与此问题重复,但建议的解决方案对我们来说不可行: 防止第三方调用者的document.execCommand("ClearAuthenticationCache")?清除我们的会话cookie
长话短说:IE有一种方法可以使用JavaScript清除会话cookie  -   document.execCommand(“ClearAuthenticationCache”).这用于各种Web应用程序,包括Outlook Web App(可能还有许多其他应用程序).问题是MS的无限智慧决定了这个命令应该清除所有开放站点的会话cookie(你能告诉我有点苦,我花了几个月的时间才找到随机丢失的JSESSIONIDs的来源).
我们使用JSESSIONID以及另一个令牌来确保用户经过身份验证.JSESSIONID是安全的,httpOnly.这种方法很有效,除非JSESSIONID被第三方消灭.所以我的问题分为两部分:
有没有办法可以保护我的会话cookie(我们假设涉及客户端配置的任何内容,例如固定或注册表黑客攻击,是不可选的)?
如果没有,有没有办法让我安全地从中恢复?由于JSESSIONID是httpOnly,浏览器应该无法读取它,但也许有一些我没想到的东西.
如果相关:我们使用Tomcat 7作为我们的网络服务器.该应用程序是一个相当复杂的SaaS应用程序,安全性非常重要.
谢谢大家.
我们使用Liberty for Java构建了一个Cloud Foundry应用程序.在测试应用程序时,我们发现SSL cookie没有设置安全标志.
问题:当_VCAP_ID设置了安全标志时,JSESSIONID没有设置安全标志
我们使用Spring Boot来开发应用程序,根据文档我们只需要在属性文件中保护cookie标志:http://docs.spring.io/spring-boot/docs/current/reference/html/common -应用- properties.html
解决方案:我们最终通过以下文章自动修复了问题,在弹簧中将安全标志添加到JSESSIONID cookie
有没有人知道Cloud Foundry或Liberty是否存在与无法通过HTTPS同时在JSESSIONID和_VCAP_ID上设置SSL cookie安全标志相关的问题?
cookies jsessionid websphere-liberty sticky-session ibm-cloud
在Spring Security中可以设置Same-site Cookie标志吗?请参阅:https : //tools.ietf.org/html/draft-west-first-party-cookies-07 ,如果没有,请问是否有增加支持的路线图?某些浏览器(例如Chrome)已经支持。TH
在 Liberty 上运行我的项目时,特别是在 Chrome 中,我收到一些警告消息。
[WARNING ] Detected JSESSIONID with invalid length; expected length of 23, found 28, setting: BD14EBEEDBE53803FAE565131A03 to null.
这是因为 Liberty 正在生成长度为 28 的 JSESSIONID,但 Liberty 配置文件将 httpSession 属性 idLength 默认为 23。如果我设置
<httpSession idLength="28" />
在 Liberty server.xml 中,我没有在日志中收到这些警告消息。但是,我想在不更改 server.xml 的情况下解决这个问题。
是否可以将 JSESSIONID 的生成方式更改为默认长度 23?或者也许这是一个糟糕的方法?
我们之前使用过JBoss 7.1.2,并且如果不接受cookie或者请求中没有JSESSIONID cookie,则使用JSESSIONID作为后备的行为作为后备.
迁移到WildFly 8.2.0/Undertow 1.1.0后,此URL重写不会发生.
是否可以配置WildFly/Undertow将JSESSIONID作为后备放在URL上?我们知道将session-config放入的可能性web.xml,例如:
<session-config>
  <tracking-mode>URL</tracking-mode>
</session-config>
但我们只希望将URL上的JSESSIONID作为后备解决方案.