使用 spring-security-oauth2 来保护我的资源免受可以充当授权服务器的 SSO 端点的影响。当文档指出:
OAuth 2.0 中的提供者角色实际上分为授权服务和资源服务,虽然它们有时驻留在同一个应用程序中,但使用 Spring Security OAuth,您可以选择将它们拆分为两个应用程序,也可以让多个资源服务共享授权服务。
但我认为我没有找到发生这种情况的例子。在 sparklr/tonr 中,授权服务器和资源服务器位于同一个应用程序中。我从搜索中看到的唯一示例是这个 spring-servlet.xml,它需要这个自定义实现ResourceServerTokenServices
才能工作。
我想尽可能避免编写自定义实现ResourceServerTokenServices
。是否有另一种方法可以在资源服务器中支持外部授权服务器?类似于以下内容:
<bean class="com.example.ExternalAuthorizationServerTokenServices"
p:remote-url="https://my-oauth-compatible-sso.com"
p:token-endpoint="/oauth/access_token"
p:authorize-endpoint="/oauth/authorize" />
这可能吗?
*编辑:我将添加它作为一种解决方法(或者这可能是预期的解决方案)我正在使用 jdbc 令牌存储并依赖于两个服务器碰巧都可以访问该数据库的事实。