将@EnableResourceServer与自定义授权提供程序一起使用

时间:2018-02-27 03:38:06

标签: spring-boot spring-security spring-security-oauth2

我正在尝试找到我需要实现的类,以便使用@EnableResourceServer注释并与我们的自定义OAuth2服务器和令牌存储进行交互。

目标是将其打包为库并与其他服务共享。所以基本上我需要实现:

  1. 自定义令牌端点。
  2. 自定义刷新端点。
  3. 自定义令牌验证过滤器(以避免调用/check_token,因为我们使用的是JWT,我们可以确保令牌已正确签名。
  4. 在Redis中保存令牌(在资源服务上)
  5. 用于检索用户信息的自定义端点。
  6. 到目前为止,我已经看过以下课程:

    1. TokenEndpoint
    2. RefreshTokenGranter
    3. OAuth2AuthenticationProcessingFilter
    4. 但是由于我无法找到太多的文档,我想知道我是否有点丢失或者这些类不是要被覆盖的,而且创建自定义逻辑并不依赖于@EnableResourceServer

1 个答案:

答案 0 :(得分:1)

我相信你可能想要开始寻找的地方是ResourceServerSecurityConfigurerResourceServerConfigurerAdapter。这遵循与WebSecurityConfigurerAdapter类似的编程模型,并将为您提供可配置内容的上下文。

从那里开始,请查看ResourceServerTokenServicesTokenStore获取第1,3,4和5点。

现在,关于#2,因为您还希望让应用程序刷新令牌,听起来您可能想要创建两个库,一个用于想要使用OAuth2(@EnableResourceServer)授权请求的服务,一个用于要解决这些资源服务器的服务(@EnableOAuthClient)。在这种情况下,请查看OAuth2RestTemplateClientTokenServices

另外,如果您还没有,请查看http://projects.spring.io/spring-security-oauth/docs/oauth2.html,因为这是我从上面提取大部分内容的地方。

https://github.com/spring-projects/spring-security-oauth/tree/master/samples/oauth2上有一些示例您可能会在资源服务器端找到帮助,特别是https://github.com/spring-projects/spring-security-oauth/blob/master/samples/oauth2/sparklr/src/main/java/org/springframework/security/oauth/examples/sparklr/config/OAuth2ServerConfig.java

https://github.com/spring-projects/spring-security-oauth/blob/master/tests/annotation/client/src/main/java/client/ClientApplication.java

有一个客户端示例

希望有所帮助!