【问题标题】:httpSession.getAttribute("userId") returns null in spring Boot after some frequent API request from Angular front endhttpSession.getAttribute("userId") 在来自 Angular 前端的一些频繁 API 请求后在 Spring Boot 中返回 null
【发布时间】:2018-08-02 20:09:07
【问题描述】:

我正在开发一个在 Angular 5 中实现前端而后端在 Spring Boot 中的应用程序,我正在使用 JWT 令牌进行身份验证。我无法弄清楚的问题是,当用户登录时,我在后端的 HttpSession 中设置了 userId,以便在同一用户以后的请求中使用 userId。

session.setAttribute("userId", userData.getUsername());

如果同一用户以半秒之类的间隔向后端的 RestControllers 发出请求,则 httpSession 正确返回,如果我发出非常快的请求,httpSession 开始返回 NULL。我正在从各种服务向 Angular 发出这样的请求。

getMyAccountList(){
    return this.http.get('/api/account/getMyAccountList');
  }

【问题讨论】:

  • 如果cookie还没有返回来识别会话,那么还没有会话。

标签: java angular spring-boot session httpsession


【解决方案1】:

所以我发现这是由于 Spring Security 的 Session Fixation 行为,默认情况下是活动的。在 WebSecuirtyConfigurerAdapter 中配置 HttpSecurity http 即可解决问题。只需添加此配置即可。

http.sessionManagement().sessionFixation().none();

也可以参考这篇文章:Apache Tomcat 7 Changing JSESSIONID on Every Request

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 2020-02-23
    • 2021-09-13
    • 1970-01-01
    相关资源
    最近更新 更多