当前位置: 首页 > 知识库问答 >
问题:

在Spring Security 5 OAuth客户端和Spring Boot 2.0中,authorizationGrantType不能为空

萧宣
2023-03-14

我遵循Spring Security 5.0官方参考文档和示例代码oauth2login在我的项目中设置oauth2/oidc身份验证,但是失败了,当我通过MVN spring-boot:run引导我的应用程序时,出现了以下异常。

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientRegistrationRepository' 
    defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientRegistrationRepositoryConfiguration.class]: 
    Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: 
    Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: 
    Factory method 'clientRegistrationRepository' threw exception; 
    nested exception is java.lang.IllegalArgumentException: authorizationGrantType cannot be null

我使用的是Spring Boot提供的默认配置,只是在项目中添加了一些基本的依赖项,例如spring-security-configspring-security-oauth2-clientspring-security-oauth2-jsoe等。

更新:

我已经找到了原因,对于自定义OAuth2提供程序,如Gitlab,我必须添加grant type、RedirectureItemplate、scope、clientName等,但是OpenID Connect规范有一个配置endpoint协议,例如:https://Gitlab.com/.womnowled/openid-configuration,有可能让Spring Security自动读取此信息吗?

更新(5/15/2021):在最新的Spring Security 5.4和Spring Boot 2.4中,默认情况下会发现OpenId配置(.womnowled-configuration),对于大多数OAuth2/OIDC授权服务器,配置issuer_URI就足够了。

共有1个答案

闽阳州
2023-03-14

如果使用SpringBoot V2.2.1版本,请使用redirect-uri而不是redirect-uri-template

 类似资料:
  • 本文向大家介绍基于Springboot2.0构建ES的多客户端,包括了基于Springboot2.0构建ES的多客户端的使用技巧和注意事项,需要的朋友参考一下 有时候我们操作es的时候会有一些特殊的需求,例如需要操作的index使用了不同的es服务器、用户名、密码、参数等,这个时候我们需要使用不同的es的客户端进行操作,但是我们又不希望拆分成多个项目进行使用,这个时候我们就需要在我们的配置中自己构

  • [粤语][1] [1]:https://i.stack.imgur.com/c7n8R.png'C:\用户\busra\下载 C:\用户\busra\下载 C:\用户\busra\下载 C:\用户\busra\下载

  • 问题内容: 我正在尝试编写一个使用Redis的AWS Lambda函数。当我运行以下代码时: 我有这样的答案: 和日志看起来像: 恕我直言,这意味着调用了回调,但没有任何反应。 删除客户端的初始化后,我会看到正确的响应。 有任何想法吗? 问题答案: 从官方文档中: 调用回调时,Lambda函数仅在Node.js事件循环为空之后退出。 由于您正在调用回调,但是您的Lambda函数调用并未结束,因此看

  • 问题内容: 因此我得到了一个供女巫使用的智能表,我可以重新加载整个数据集(我需要它来绘制图形)。但我不希望一次渲染所有数据(太多)。因此,在文档中有一个叫做“客户端分页”的东西,但是由于某种原因,它似乎不起作用。保存整个数据集 我的模拟是: 问题答案: 问题在于,如果异步加载数据(如果我理解您的描述,您可能会这样做),则需要告诉智能表观看源集合,以便在发生更改时可以刷新它。为此,您需要使用

  • 我能够登录我的本地(和远程服务器)与以下curl(我用Postman生成)...我可以登录成功使用另一个API客户端(Rest)与我试图在Postman中使用相同的参数/头/体。我已经关闭了SSL证书验证和发送邮递员令牌头设置(每其他堆栈溢出答案)... 卷曲: Curl-X POST\http://localhost:8080/api/user/login\-H'接受:应用程序/json'\-H

  • 我有一个JBoss应用程序,需要与HBase服务器远程交谈。当使用simple console项目时,HBase客户机工作得很好,但是当部署在JBoss服务器中时,看起来服务器没有加载类org.apache.hadoop.hdfs.web.resources.UserProvider。有人能帮忙解决问题吗?? jar common-configuration-1.6.jar common-lang