如何为Spring Webflux应用配置oauth2资源服务器?

时间:2018-09-24 10:46:10

标签: spring-security spring-security-oauth2 spring-webflux

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

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

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

1 个答案:

答案 0 :(得分:0)

我不知道它是否真的适用于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'
}

application.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处还有一个示例