gpt4 book ai didi

java - httpSession.getAttribute ("userId") 在来自 Angular 前端的一些频繁的 API 请求后,在 Spring Boot 中返回 null

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:37 24 4
gpt4 key购买 nike

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

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

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

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

最佳答案

所以我发现这是由于 Spring Security 的 session 固定行为造成的,该行为默认情况下处于 Activity 状态。在WebSecuirtyConfigurerAdapter中配置HttpSecurity http可以解决问题。只需要添加这个配置即可。

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

另请参阅这篇文章:Apache Tomcat 7 Changing JSESSIONID on Every Request

关于java - httpSession.getAttribute ("userId") 在来自 Angular 前端的一些频繁的 API 请求后,在 Spring Boot 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51648225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com