如何为 spring webflux 应用程序配置 oauth2 资源服务器?

Posted

技术标签:

【中文标题】如何为 spring webflux 应用程序配置 oauth2 资源服务器?【英文标题】:How can i configure oauth2 resourceserver for spring webflux app? 【发布时间】:2019-02-27 20:45:36 【问题描述】:

Spring security 5.1.0.Rc1 支持 webflux 中的 OAuth2 资源服务器 - https://spring.io/blog/2018/08/21/spring-security-5-1-0-rc1-released。

此处给出的示例讨论了基于 JWT 格式的 Oauth2。 如何配置基于 oauth2 资源服务器并指定令牌解码 uri。

在春季 MVC 中,我可以使用 @EnableResourceServer 和 security.oauth2.resource.token-info-uri 属性。我将如何使用 webflux 做同样的事情?

【问题讨论】:

【参考方案1】:

我不知道它是否真的适用于 RC1,但使用 2.1.0.M1 我可以让它像这样工作:

build.gradle:

repositories 
    mavenCentral()
    maven 
        url 'https://repo.spring.io/libs-snapshot'
    


dependencyManagement 
    imports 
        mavenBom 'org.springframework.cloud:spring-cloud-gateway:2.1.0.M1'
    


dependencies 
    compile 'org.springframework.boot:spring-boot-starter-security'

    compile 'org.springframework.security:spring-security-oauth2-jose'
    compile 'org.springframework.security:spring-security-oauth2-client'
    compile 'org.springframework.security:spring-security-oauth2-resource-server'

应用程序.yaml

spring:
 security:
    oauth2:
      resourceserver:
        jwt:
          jwk-set-uri: http://keycloak.example.com/auth/realms/your-realm/protocol/openid-connect/certs

https://github.com/spring-projects/spring-security/tree/master/samples/boot/oauth2resourceserver-webflux也有一个示例

【讨论】:

以上是关于如何为 spring webflux 应用程序配置 oauth2 资源服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Webflux、Spring-Security、okta-spring-boot-starter 和 Okta-React 正确使用 CORS?

如何为 Spring Boot 应用程序配置端口

如何在 Spring boot 2 + Webflux + Thymeleaf 中配置 i18n?

如何为 Spring Boot 应用程序的 gradle 构建设置活动配置文件?

如何为 LDAP 和 JDBC 配置 Spring?

如何为 Elastic Beanstalk 应用程序正确配置 Spring Datasource?