OAuth/authorization 端点未返回预期的 HTTP 302 状态,响应中也缺少会话 ID 和令牌信息

OAuth/authorization end point is not returning with expected http 302 status, also session id and token information is missing in the response

我正在将我的 jhipster 应用程序升级到最新的 jhipster 版本 7.6.0。 Jhipster 7.6.0 引入了最新版本的 spring 引导 (2.6.3) 和 spring 框架 (5.3.15)

对于安全配置 class,我仍在使用来自 spring web mvc 的注释,我没有使用 spring web reactive。在这一点上,我不想切换到网络反应。

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
@Import(SecurityProblemSupport.class)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter { }

编译、构建并启动我的应用程序后,如果我点击登录 url,屏幕上会出现以下错误

Login with OAuth 2.0
[invalid_user_info_response] An error occurred while attempting to retrieve the UserInfo Resource: 403 Forbidden: [no body]

浏览器的 DevTools 控制台显示 OAuth/authorization 端点是 returning with 200 http status 没有会话 id 和 token 的值,而理想情况下端点应该 return with http状态 302 以及会话 ID 和令牌。

我怀疑,它与版本升级引入的更改有关,因为如果我切换回源代码的旧分支(具有旧版本的 jhipster,如 6.4.1 和 spring),然后登录就可以正常工作了。

任何人都可以提出这个问题背后的可能原因是什么吗? 我相信 'authorize' 端点 returning 200 响应缺少会话 ID 和令牌肯定是原因之一。 请指导我。

谢谢。

感谢您提供详细信息。我找到了根本原因。对于最新版本的 spring 安全性,需要明确提及 oidc: 范围。像这样的 - 范围:openid,配置文件,电子邮件。在应用程序 yml 中添加此范围解决了这个问题。 –