Spring security Spring安全性和OIDC IllegalArgumentException:当属性位于id标记中时缺少属性

Spring security Spring安全性和OIDC IllegalArgumentException:当属性位于id标记中时缺少属性,spring-security,spring-security-oauth2,Spring Security,Spring Security Oauth2,我正在尝试使用Azure AD配置Spring安全性(5.4.5)OIDC身份验证 我想使用首选\u用户名作为用户名属性 我将profile和openid设置为作用域 目前,它出现以下故障: 原因:java.lang.IllegalArgumentException:缺少属性 属性中的“首选\u用户名” org.springframework.security.oauth2.core.user.DefaultOAuth2User.(DefaultOAuth2User.java:72) 在 org

我正在尝试使用Azure AD配置Spring安全性(5.4.5)OIDC身份验证 我想使用首选\u用户名作为用户名属性 我将profileopenid设置为作用域

目前,它出现以下故障:

原因:java.lang.IllegalArgumentException:缺少属性 属性中的“首选\u用户名” org.springframework.security.oauth2.core.user.DefaultOAuth2User.(DefaultOAuth2User.java:72) 在 org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService.loadUser(DefaultOAuth2UserService.java:116) 在 org.springframework.security.oauth2.client.oidc.userinfo.OidcUserService.loadUser(OidcUserService.java:109)

首选\u用户名位于id令牌属性中。调试代码失败,因为首选_用户名不在userInfo端点返回的属性中,但我认为这一失败是错误的。如果我设法通过DefaultOAuth2User实例化(通过在userInfo中提供一个属性),我在后面的代码中看到,
org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser
返回的
org.springframework.security.oauth2.client.oidc.userinfo.OidcUserService
正在查看id令牌和userinfo属性,因此首选用户名将在那里成功


对我来说,这似乎是一个spring安全漏洞,我是对的还是错的?

深入查看代码,它显然看起来像一个漏洞,所以我提出了