首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >春引导找不到bean OAuth2AuthorizedClientService

春引导找不到bean OAuth2AuthorizedClientService
EN

Stack Overflow用户
提问于 2018-07-04 21:19:31
回答 1查看 2K关注 0票数 5

我正在建立一个OIDC客户端与网络流量和钥匙斗篷。我的spring应用程序不会启动,因为它找不到下面的bean:

代码语言:javascript
复制
Consider defining a bean of type 'org.springframework.security.oauth2.client.OAuth2AuthorizedClientService' in your configuration.

那么现在..。

build.gradle

代码语言:javascript
复制
dependencies {
    compile "org.springframework.boot:spring-boot-starter-webflux:2.0.3.RELEASE"
    compile "org.springframework.security:spring-security-oauth2-client"
    compile "org.springframework.security:spring-security-oauth2-jose"
    compile "org.springframework.boot:spring-boot-devtools"

    compile group: 'org.keycloak', name: 'keycloak-services', version: '4.0.0.Final'
    compile group: 'org.keycloak', name: 'keycloak-admin-client', version: '4.0.0.Final'

    compile "org.projectlombok:lombok"
    compile group: 'org.jboss.resteasy', name: 'resteasy-jackson2-provider', version: '4.0.0.Beta4'

    testCompile('org.springframework.boot:spring-boot-starter-test')
}

application.yml

代码语言:javascript
复制
spring:
  security:
    oauth2:
      client:
        registration:
          google:
            client-id: your-app-client-id
            client-secret: your-app-client-secret
          facebook:
            client-id: your-app-client-id
            client-secret: your-app-client-secret
          keycloak:
            provider: keycloak
            client-id: auth-api
            client-secret: 727bea9d-6e01-433a-960b-83ac5d939adf
            client-name: auth-api
            client-authentication-method: basic
            authorization-grant-type: authorization_code
            redirect-uri-template: '{baseUrl}/login/oauth2/code/{registrationId}'
            scope:
              - openid
              - profile
              - email

        provider:
          keycloak:
            authorization-uri: http://70.314.280.xxx/auth/realms/master/protocol/openid-connect/auth
            token-uri: http://70.314.280.xxx/auth/realms/master/protocol/openid-connect/token
            user-info-uri: http://70.314.280.xxx/auth/realms/master/protocol/openid-connect/userinfo
            jwk-set-uri: http://70.314.280.xxx/auth/realms/master/protocol/openid-connect/certs
            user-name-attribute: preferred_username

显然,它不能创建ClientRegistration对象,但不确定为什么spring不从yaml文件中选择oauth2设置部分?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-05-20 11:29:18

我今天遇到了同样的问题,和往常一样,用Spring + IntelliJ调试源代码非常容易,原因是这一行代码:

代码语言:javascript
复制
map.from(properties::getRedirectUri).to(builder::redirectUriTemplate);

代码也可以在这里找到:https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/client/OAuth2ClientPropertiesRegistrationAdapter.java#L57

因此,您不应该在yaml文件中使用redirect-uri-template,而应该使用redirect-uri

在教程和粘贴他们的yaml文件之后,我就陷入了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51180856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档