我正在将应用程序从Spring Boot 1.5迁移到Spring Boot2。这需要更新项目使用的oAuth2库,因为从Spring Boot 2开始,spring-security-oauth2
库已被{{1}取代}(据我了解)。
无论哪种方式,即使我显然拥有spring-security-oauth2-autoconfigure
文件中定义的密钥的URI以及其他oAuth2配置,我的项目在启动过程中都会抱怨JWT验证密钥(oAuth2要求)丢失了,如下:
application.yml
启动过程中出现的错误是:
security:
oauth2:
client:
userAuthorizationUri: ${uaa.url}/oauth/authorize
accessTokenUri: ${uaa.url}/oauth/token
clientId: ${security.oauth2.client.client-id}
clientSecret: ${security.oauth2.client.client-secret}
resource:
jwt:
keyUri: ${uaa.url}/oauth/token_key
此配置在我使用Spring Boot 1.5.x之前一直运行良好,但是在升级到Spring Boot 2(并移至***************************
APPLICATION FAILED TO START
***************************
Description:
Binding to target org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerProperties@468bb799 failed:
Property: resourceServerProperties.tokenInfoUri
Value: null
Reason: Missing tokenInfoUri and userInfoUri and there is no JWT verifier key
库)之后,我开始遇到此问题。
我可以通过访问上面配置中定义为spring-security-oauth2-autoconfigure
的URL来访问浏览器中的密钥,因此显然这是一个有效的URL。这可能是什么问题?
编辑:我在几个地方在线找到的解决方案之一是添加一个虚拟的userInfoUri值,如下所示:
keyUri: ${uaa.url}/oauth/token_key
我尝试了这个,仍然出现相同的错误。
答案 0 :(得分:1)
spring:
security:
oauth2:
client:
clientId: xxxxxxxxxxxxxxxxxxxx
clientSecret: xxxxxxxxxxxxxxxxxxxxxxxx
accessTokenUri: https:graph.facebook.com/oauth/access_token
userAuthorizationUri: https://www.facebook.com/dialog/oauth
tokenName: oauth_token
authenticationScheme: query
clientAuthenticationScheme: form
scope: profile email
resource:
userInfoUri: https://graph.facebook.com/me
我在我的application.yml中使用了它,终于可以了。您只需要使用 spring:(对我有用)将其细分。
此外,我认为您应该改用spring-boot-starter-oauth2-client。
答案 1 :(得分:0)
security:
oauth2:
client:
clientId: xxxx
clientSecret: xxxx
accessTokenUri: https://www/yyy.com/.well-known/oauth-authorization-server
userAuthorizationUri: https://www/yyy.com/.well-known/oauth-authorization-server
scope: openid profile email
resource:
userInfoUri: https://www/yyy.com/.well-known/oauth-authorization-server
sso:
loginpath: /authorization-code/callback
在application.yaml文件中帮了我大忙。