我们使用 Okta 进行用户身份验证和授权。众所周知,在授权过程中,会创建两个会话,一个在 Okta 端,另一个在应用程序端。因此,如果使用常规 JSESSION ID(在 Okta 调用 /callback 方法期间在 cookie 中设置),则对后端应用程序的所有后续请求都将包含此标头,并且可以对用户进行身份验证。
但是,我们决定使用 Redis 进行会话存储。现在,来自 Okta 的 /callback 以某种方式设置了 2 个会话,其中一个为空,并且显示如下:
SESSION=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 GMT; HttpOnly; SameSite=Lax
导致后续请求cookie中没有这个ID,无法解析用户。有人遇到过类似的问题吗
通过更改会话名称修复:
server:
servlet:
session:
cookie:
name: MYSESSION