当前位置: 首页 > 知识库问答 >
问题:

登录后如何更改Vaadin中的JSESSIONID

曹驰
2023-03-14

我正在尝试在登录后更改vaadin中的JSESSIONID。

这是我的密码

System.out.println("0000.....OLD-SESSION: " + VaadinSession.getCurrent().getSession().isNew());
System.out.println("0000.....OLD-SESSION-ID: " + VaadinSession.getCurrent().getSession().getId());
VaadinSession.getCurrent().getSession().invalidate();
WrappedSession newSession = VaadinService.getCurrentRequest().getWrappedSession(true);
System.out.println("1111.....NEW-SESSION: " + newSession.isNew());
System.out.println("1111.....NEW-SESSION-ID: " + newSession.getId());
VaadinService.getCurrentResponse().addCookie(new Cookie("JSESSIONID", newSession.getId()));

///////////////////// OUTPUT ////////////////////////
0000.....OLD-SESSION: false
0000.....OLD-SESSION-ID: F353B452D148B35E71920C73EA3BB7AA
1111.....NEW-SESSION: true
1111.....NEW-SESSION-ID: 8C6E4EF40724C060B9B10C1E70FB2441

JSESSIONID正在成功更改,但在登录到我的仪表板后,im getting SESSION EXPIRED框。我怎么才能在瓦丁解决这件事。

System.out.println("0000.....OLD-SESSION: " + VaadinSession.getCurrent().getSession().isNew());
System.out.println("0000.....OLD-SESSION-ID: " + VaadinSession.getCurrent().getSession().getId());
for (Cookie cookie : VaadinService.getCurrentRequest().getCookies())
{
    System.out.println("OLD:: " + cookie.getName() + " - " + cookie.getValue());
}
//                              VaadinSession.getCurrent().getSession().invalidate();
//                              WrappedSession newSession = VaadinService.getCurrentRequest().getWrappedSession(true);

VaadinService.reinitializeSession(VaadinService.getCurrentRequest());
System.out.println("1111.....NEW-SESSION: " + VaadinSession.getCurrent().getSession().isNew());
System.out.println("1111.....NEW-SESSION-ID: " + VaadinSession.getCurrent().getSession().getId());

for (Cookie cookie : VaadinService.getCurrentRequest().getCookies())
{
    System.out.println("NEW:: " + cookie.getName() + " - " + cookie.getValue());
}

VaadinService.getCurrentResponse().addCookie(new Cookie("JSESSIONID", VaadinSession.getCurrent().getSession().getId()));

///////////////// NEW OUTPUT /////////////////
0000.....OLD-SESSION: false
0000.....OLD-SESSION-ID: 7115CC9FF20C2CB485B9F35FDCCF7DEE
OLD:: JSESSIONID - 0D9FCDE46EC8BFDF90A267E01F763EE9
OLD:: JSESSIONID - 7115CC9FF20C2CB485B9F35FDCCF7DEE
1111.....NEW-SESSION: true
1111.....NEW-SESSION-ID: 44969C81DAA007B8CF296C8FCEE6581D
NEW:: JSESSIONID - 0D9FCDE46EC8BFDF90A267E01F763EE9
NEW:: JSESSIONID - 7115CC9FF20C2CB485B9F35FDCCF7DEE

共有1个答案

巴博耘
2023-03-14

使用VAADINService.ReinitializeSession

 类似资料:
  • 您好,我正在使用Laravel5.2版本。我通过composer安装了laravel项目。之后,我使用命令“phpartisanmake:auth”创建auth。创建身份验证路由后生成,例如“http://localhost:8000/login“.现在我不想要此路线,我想设置不同的路线,例如”http://localhost:8000/super/admin“那么,我该如何更改”http://l

  • 在我更改了pom.xml文件的vaadin版本号和vaadin插件版本号后,构建失败 然后,我尝试清理并重建项目,但构建失败表明: [Help 1]的链接没有给出任何错误的线索。如果我回到以前版本的vaadin 7.3.10,项目运行得很好

  • 我可以通过重新启动服务器并尝试重新登录来重现此问题。我在开发模式和生产模式中测试了这个问题,得到了相同的行为。

  • 我正在使用Larave Jetstream livewire,我想修改登录名。 从初始值为1的隐藏输入字段“is_admin”登录 当用户提交登录表单后端检查时,使用数据库表字段的is\u admin=1 表结构:名称、电子邮件、密码、is_admin is_admin=0或1 我想检查is_admin标志,如果提供的凭据与电子邮件、密码和is_admin=1匹配,则只有用户可以登录。

  • 我在Azure SQL server数据库中创建了一个新登录名和一个新用户。我要做的是为数据库中的单个表提供此角色的只读权限。执行此操作时,我运行了以下脚本: EXECsp_addrolememberN'db_datareader', N'new_user'GO 但是有了这个权限,新用户可以查看数据库中的所有表。所以我试着用“public”角色运行下面的脚本。 EXEC sp_addrolembe

  • 如何用自己的图标替换Vaadin Flow组件(日历,上传等)中使用的图标?这可能吗?我在组件的应用编程接口中没有看到任何东西,看起来图标是字体图标,而不是通常的铁图标。