当前位置: 首页 > 面试题库 >

使用Spring Security检索会话ID

养淇
2023-03-14
问题内容

为了进行记录,我想创建一个记录器,该记录器将当前会话的ID自动添加到记录的行中。
对于已登录的用户,这不是问题:

((WebAuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails())
    .getSessionId()

问题是,在用户登录之前getAuthentication()的回报null。是否有另一种获取会话ID的方法,而无需引用当前响应或此类响应?


问题答案:

您可以使用

RequestContextHolder.currentRequestAttributes().getSessionId();

这依赖于Spring的RequestContextHolder,因此应与Spring
MVC一起使用,DispatcherServlet否则您应该有一个RequestContextListener声明。如果不存在,还将创建会话。



 类似资料:
  • SSO/SAML使用OKTA API与SP一起工作。我的问题是,有没有一种方法可以从我的应用程序中获取当前的OKTA会话Id?

  • 问题内容: 我正在尝试将Redis会话集成到用Node.js编写的身份验证系统中。 我已经能够成功设置Redis服务器和Express服务器。 这是我的设置(只是重要的一点): 现在…我该如何实际创建,阅读和销毁会话?我已经阅读了很多关于如何设置的文章以及关于SO的许多问题,但是我发誓每个都只停留在配置上,并且不解释如何实际使用它… 我知道这可能非常简单,但是请不要投票,而只是解释一下:)。 问题

  • 中描述的声明性基和ORM映射函数 映射器配置 是ORM的主要配置接口。配置映射后,持久性操作的主要使用接口是 Session . 会话基础 会议的作用是什么? 使用会话的基础知识 打开和关闭会话 构建begin/commit/rollback块 使用sessionmaker 查询(1.x样式) 查询(2.0样式) 添加新项目或现有项目 删除 冲洗 过期/刷新 使用任意WHERE子句更新和删除 自动

  • 我读过关于命名空间属性的文章。我尝试使用此功能: 它工作得很好。 作为一项改进,我希望覆盖会话服务,因此它将在任何地方使用,并使用依赖注入,而不是将会话服务耦合到addProduct函数中。 为此,我编辑了我的services.yaml 然后我更新CartController: 现在我得到了以下错误消息: 检测到服务“会话”的循环引用,路径:“会话”- 这个错误应该在这个问题上得到解决:#3626

  • 问题内容: 我使用JSF,Hibernate,Spring创建一个Web应用程序。我添加了一个用于检查会话的过滤器。我的过滤器代码是: 在过滤器的init方法中,我有一些避免使用URL的方法,应该跳过会话检查,例如登录页面本身。这工作正常,但是此过滤器限制了我的CSS,图像和JS无法在登录页面上加载。建议我过滤器出了什么问题? 问题答案: 您的登录页面需要一些资源(CSS,JS,图像),这些资源是

  • MiniFramework 从 1.0.12 版本开始,新增了 Session 会话类。 示例代码如下: namespace App\Controller; use Mini\Session; class Example extends Action { function sessionAction() { // 开启会话 Session::st