我正在建立一个OIDC客户端与网络流量和钥匙斗篷。我的spring应用程序不会启动,因为它找不到下面的bean:
Consider defining a bean of type 'org.springframework.security.oauth2.client.OAuth2AuthorizedClientService' in your configuration.那么现在..。
build.gradle
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
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设置部分?
谢谢你的帮助。
发布于 2020-05-20 11:29:18
我今天遇到了同样的问题,和往常一样,用Spring + IntelliJ调试源代码非常容易,原因是这一行代码:
map.from(properties::getRedirectUri).to(builder::redirectUriTemplate);因此,您不应该在yaml文件中使用redirect-uri-template,而应该使用redirect-uri。
在教程和粘贴他们的yaml文件之后,我就陷入了这个问题。
https://stackoverflow.com/questions/51180856
复制相似问题