分离资源服务器和授权服务器的正确方法是什么?

时间:2013-05-17 15:53:05

标签: spring-security oauth-2.0

使用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令牌存储并依赖于两个服务器碰巧都可以访问该数据库这一事实。

2 个答案:

答案 0 :(得分:0)

您可以在spring-security.xml

中分隔开放资源和受保护资源

模式/ api / **将受到保护,其他资源将被打开。

A

答案 1 :(得分:0)

对于可能感兴趣的人,还有另一个分离此处的身份验证服务器和资源服务器的示例:https://github.com/sharmaritesh/spring-angularjs-oauth2-sample