使用spring-security-oauth2保护我的资源免受可充当授权服务器的SSO端点的影响。当文档说明时,我有点困惑:
OAuth 2.0中的提供者角色实际上是在授权服务和资源服务之间分配的,虽然这些角色有时位于同一个应用程序中,但是使用Spring Security OAuth,您可以选择将它们分成两个应用程序,还可以拥有多个资源共享授权服务的服务。
但我认为我没有找到这种情况的例子。在sparklr / tonr中,授权服务器和资源服务器位于同一个应用程序中。我在搜索时看到的唯一示例是this 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" />
的自定义实现。是否有另一种方法来支持资源服务器中的外部授权服务器?有点像:
{{1}}
这可能吗?
*编辑:我将添加它作为一种解决方法(或者这可能是预期的解决方案)我正在使用jdbc令牌存储并依赖于两个服务器碰巧都可以访问该数据库这一事实。
答案 0 :(得分:0)
您可以在spring-security.xml
中分隔开放资源和受保护资源模式/ api / **将受到保护,其他资源将被打开。
A
答案 1 :(得分:0)
对于可能感兴趣的人,还有另一个分离此处的身份验证服务器和资源服务器的示例:https://github.com/sharmaritesh/spring-angularjs-oauth2-sample