2

查看以下示例https://github.com/spring-cloud-samples/sso,授权/身份验证服务器的 URL 是在 application.yml 中预定义的。

问题是,如果我的架构中有配置服务器和 eureka,SSO 服务能否通过 Eureka 发现 authserver,而不是在配置文件中预定义它?

我尝试使用服务名称而不是 localhost:8080 来更改配置文件。它没有用。

oauth2:
    client:
        tokenUri: http://authserver/uaa/oauth/token
        authorizationUri: http://authserver/uaa/oauth/authorize
        clientId: acme
        clientSecret: acmesecret
     resource:
        jwt:
             keyUri: http://authserver/uaa/oauth/token_key
             id: openid
             serviceId: ${PREFIX:}resource

沿着同样的思考过程,我可以直接通过配置服务器填充公钥,而不是向 JWT 提供 keyUri 吗?语法是什么?

编辑:经过更多测试,似乎 tokenUri 和 authorizationUri 很容易被发现。我可以使用服务名称而不是 localhost:8080。现在唯一的问题是如何处理 keyUri。

4

1 回答 1

4

问题解决了。根据上面的编辑,tokenUri 和 authorizationUri 是可发现的。我没有使用 keyUri,而是使用 keyValue。这样,SSO 服务器不需要连接到 Oauth 服务器来验证密钥。然后,我使用配置服务器以填充任何其他值的方式填充 keyValue。这使我的授权服务器完全可发现。

于 2014-12-15T05:10:07.240 回答