标签: jsessionid

如何从JSP中的URL中检索jsessionid?

我知道如何将jsessionid传递给URL.我编码url,它看起来像这样:

mysite.com; jsessionid = 0123456789ABCDEF(http)

是否存在使用Java从URL检索jsessionid的内置方法?我在javadocs中找到了这个方法,isRequestedSessionIdFromURL,但它并没有帮我实际检索该值.我是否必须构建自己的检索方法?

谢谢.

java session jsp sessionid jsessionid

4
推荐指数
1
解决办法
6134
查看次数

使用h:按钮时,除去URL中的jsessionid = xxx路径参数

我在Tomcat7和JSF 2.1中使用OmniFaces FullAjaxExceptionHandler来处理ViewExpiredException.我设置了与OmniFaces展示相同的错误页面.在这里查看错误页面,这里是模板.

它工作正常.当会话过期时,我最终会出现expired.xhtml错误页面.但是,当我单击错误页面中的以下链接时,

 <p><a href="#{requestScope['javax.servlet.error.request_uri']}">Back to initial page.</a></p>
Run Code Online (Sandbox Code Playgroud)

然后我得到以下异常:

com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean 
Run Code Online (Sandbox Code Playgroud)

这不是一个大问题.无论如何,我需要一个将用户指向主页的按钮.所以我用下面的按钮替换它:

<h:button value="Home" outcome="logout" />
Run Code Online (Sandbox Code Playgroud)

以及此导航案例:

<navigation-rule>
    <from-view-id>*</from-view-id>
    <navigation-case>
        <from-outcome>logout</from-outcome>
        <to-view-id>/stdPortal/index.xhtml</to-view-id>
        <redirect/>
    </navigation-case>
</navigation-rule>
Run Code Online (Sandbox Code Playgroud)

导航将我带到了正确的页面,但会话ID显示在URL中:

https://localhost/stdPortal/index.xhtml;jsessionid=B68784B4ED8882A6575A2EE4012AF1B5
Run Code Online (Sandbox Code Playgroud)

我不想要这个.我怎么摆脱它?我希望网址如下:

https://localhost/stdPortal/index.xhtml
Run Code Online (Sandbox Code Playgroud)

jsessionid jsf-2 omnifaces

4
推荐指数
1
解决办法
3621
查看次数

仅在第一次请求时拥有Jsessionid的漏洞是什么?

最近我们从URL中删除了jsessionid做了基于cookie的会话管理,以防止"会话劫持攻击"

但我们发现,当启用cookie并且后续请求URL没有jsessionid时,第一个请求URL始终具有jsessionid.

使用第一个网址的jsessionid,我们可以直接点击工作流程中的其他页面

问题:是否有任何安全漏洞仅在第一次请求时暴露jsessionid?

有一个解决方案可以从第一个请求中删除jsessionid,但是想要检查一下,如果它真的很容易要求更改

谢谢J

编辑:我澄清了我的疑问.谢谢你的回复.

security jsessionid

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

URL中的jsessionid的Amazon Load Balancer粘性会话配置

我目前正在尝试为Tomcat工作者设置Amazon Load Balancer,但我遇到了一个问题.

我正在使用粘性会话,并且cookie JSESSIONID可用于大多数请求.但有些请求在URL中有会话信息,如下所示:

http://myserver.com/contextPath/someAction;jsessionid=BA6853C23F795BD5EEDAEA996E601BB8

并且它不起作用(并且请求被转发给错误的工作者).

AWS Load Balancer是否支持jsessionidURL?如果不是,可能你知道一些解决方法吗?

使用Apache + mod_proxy_balancer,我可以像这样定义它:

ProxyPassMatch /.* balancer://mycluster stickysession=JSESSIONID|jsessionid 
Run Code Online (Sandbox Code Playgroud)

tomcat load-balancing jsessionid amazon-web-services

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

如何从浏览器的cookie商店中删除sessionid

我想在单击注销按钮时在浏览器中注销我的Web应用程序.并且想要使用js代码实现它.所以,没有注销servlet.这意味着,我需要删除现在使用并存储在浏览器内存中的sessionid,但我该怎么做呢?

javascript browser sessionid jsessionid

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

为HttpOnly和Secure设置了JSESSIONID

我们有一个tomcat实例通过SSL nginx代理服务HTTP.我们按如下方式设置连接器的设置:

connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressionMinSize="2048"
scheme="https"
secure="true"
proxyPort="443"           
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javscript,application/javascript,application/json"
Run Code Online (Sandbox Code Playgroud)

在HttpOnly和SSL上都创建了JSESSIONID cookie.我们希望仅将其限制为SSL,我们似乎无法弄清楚Java中会话cookie创建背后的逻辑.任何提示都将非常感激.

Google Chrome Inspector屏幕截图

java security jsessionid session-cookies

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

HTTP请求中的Angular2 Set-Cookie JSESSIONID

我正在使用auth0/angular2-jwt库在每个请求上附加JWT.

我想知道如何在每个请求上添加JSESSIONID cookie,以便进入服务器端会话?

这是一个好习惯吗?

我试过这个没有成功

let myHeader = new Headers();
myHeader.append('SET-COOKIE', 'JSESSIONID=<jsessionid>');

this.authHttp.get(endpoint, {headers: myHeader, withCredentials: true}).map(res => res.json()).subscribe(
  jwt => {
    ...
  },err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

javascript java cookies jsessionid angular

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

jsessionid被忽略了

我正在使用带有jsessionid的URL,例如.

HTTP://本地主机:8080/myservlet; JSESSIONID = 123

然而,每当我在HttpServletRequest中读取会话ID时,该值永远不会是123,而是生成的会话ID,例如.B663A96D3FBC84B4A427C0810EAB9073.

为什么我的jsessionid被忽略了?

java servlets jsessionid

2
推荐指数
1
解决办法
932
查看次数

何时将JSESSIONID cookie添加到响应中

我有一个JSF 2.0应用程序,让我们称之为"MyApp",SessionScoped使用下面的代码获取会话并在init上设置路径的bean ...

HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();   //Get request from external context
HttpSession session = request.getSession(false);   //Get session and don't create one if it doesn't exist
session.getServletContext().getSessionCookieConfig().setPath(""); //Set the path in the session's cookie
Run Code Online (Sandbox Code Playgroud)

我的问题是更新的路径("")没有显示在响应会话cookie中JSESSIONID,直到第二个请求到应用程序.第一个请求JSESSIONID在响应中使用默认路径获取cookie,其中包括应用程序的根上下文("/ MyApp").如果我重新加载页面,第二个请求将获得一个JSESSIONID包含更新路径("")的cookie 的响应.

我似乎无法找到有关何时JSESSIONID创建默认cookie并将其添加到响应的任何文档.我不确定更新的会话路径是在第一个响应的JSESSIONIDcookie中设置的,还是由页面的默认JSESSIONIDcookie 设置和覆盖.

问题:

  1. 何时将默认的JSESSIONID cookie添加到响应中?
  2. 是否可以禁用页面的默认JSESSIONID cookie?

cookies session jsf jsessionid jsf-2

2
推荐指数
1
解决办法
4579
查看次数

在同时使用两个弹簧启动应用程序时退出一个弹簧应用程序

我有两个弹簧启动应用程序.

  • module1在端口8080上运行
  • module2在端口9090上运行

我在application.properties文件中使用此属性设置了端口

server.port=${port:9090}
Run Code Online (Sandbox Code Playgroud)

两个模块都有/ login,/ signup,无需通过以下代码完成身份验证即可访问.

http.authorizeRequests()
            .antMatchers("/signup", "/login").permitAll()
Run Code Online (Sandbox Code Playgroud)

任何其他请求都要求对用户进行身份验证.

如果我一次使用一个模块没有问题,

但是如果尝试在同一时间来回使用它们,那么问题是我每次使用另一个时都必须再次登录到之前的应用程序.例如.

  1. 转到登录页面到module1 - (标题响应已设置jsessionid = XX)确定
  2. 登录module1 - 确定
  3. 浏览module1上的安全内容 - 确定
  4. 在模块2上转到注册页面 - (标题响应已设置jsessionid = YY)确定
  5. 尝试浏览module1上的另一个安全内容 - 我必须再次登录

我很确定这是因为模块2重置了jessionid.

HTTP cookie端口是否特定? 我已经阅读了这篇文章,其中指出cookie不是特定于端口的.

但必须有一个解决方案,这样我每次切换应用程序时都不必登录.

cookies port spring-security jsessionid spring-boot

2
推荐指数
1
解决办法
887
查看次数