Kotlin 如何在webflux中端点执行之前创建和持久化自定义用户对象?

Kotlin 如何在webflux中端点执行之前创建和持久化自定义用户对象?,kotlin,oauth-2.0,spring-webflux,spring-security-oauth2,principal,Kotlin,Oauth 2.0,Spring Webflux,Spring Security Oauth2,Principal,我目前正在使用SpringWebFlux开发OAuth2.0资源服务器(RESTAPI) 我已经设置了Spring安全性,可以使用Spring内置的主体类成功地验证用户 问题是: 应用程序需要根据需要存储有关用户的附加信息。 首次访问API的用户不会存储在RESTAPI的内部用户数据库中。现在,我必须检查所提供的主体名称(我可以访问相应的OAuth UUID——存储在授权服务器中的名称)是否已经存在于应用程序数据库中 我希望避免代码重复,在这种情况下,我必须调用一个在每个端点上都能做到这一点的方

我目前正在使用SpringWebFlux开发OAuth2.0资源服务器(RESTAPI)

我已经设置了Spring安全性,可以使用Spring内置的主体类成功地验证用户

问题是:

应用程序需要根据需要存储有关用户的附加信息。 首次访问API的用户不会存储在RESTAPI的内部用户数据库中。现在,我必须检查所提供的主体名称(我可以访问相应的OAuth UUID——存储在授权服务器中的名称)是否已经存在于应用程序数据库中

我希望避免代码重复,在这种情况下,我必须调用一个在每个端点上都能做到这一点的方法

以下是已经奏效的方法:

@GetMapping("/secure")
fun secureEndpoint(principal: Principal): ResponseEntity<Void> {
    println(principal.name)
    // here I would have to check if the user has already been
    // created in the database
    return ResponseEntity.ok().build()
}

我将非常感谢任何帮助

我应该补充一点:一旦在经过身份验证的端点之前有了一个入口点,我就知道该做什么了。我只是不知道在春天怎么做才对。你试过什么?我看不出你在allI写过任何代码,我不知道从哪里开始。我查看了Webfilters,但老实说,我认为它没有很好的文档记录。我需要的是guidance@BoristheSpider那么我的问题是:我要找的是这些过滤器中的哪一个?
@Bean
fun springSecurityFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain {
    val cookieServerCsrfTokenRepository = CookieServerCsrfTokenRepository()
    cookieServerCsrfTokenRepository.setCookieHttpOnly(false)


    http.authorizeExchange()
        .pathMatchers("/**").permitAll()
        .pathMatchers("/secure/**").authenticated()
        .and()
        .oauth2ResourceServer()
        .jwt()

    http.csrf()
        .csrfTokenRepository(cookieServerCsrfTokenRepository)


    return http.build()
}