Spring security 如何编辑主体';作为OAuth2资源服务器运行的SpringWebFlux应用程序中的角色和名称信息?

Spring security 如何编辑主体';作为OAuth2资源服务器运行的SpringWebFlux应用程序中的角色和名称信息?,spring-security,spring-security-oauth2,spring-webflux,Spring Security,Spring Security Oauth2,Spring Webflux,我正在开发一个应用程序,其中我的后端是一个无状态资源服务器。它接收到的每个请求都应该包含一个带有JWT承载令牌的身份验证头-当前是一个Googleid\u令牌。我能够验证令牌,但为了实现方法级安全性,我需要能够使用存储库/服务中的信息设置主体的角色和名称。如何设置负责人的角色和名称 在Spring教程之后,我试图定义一个UserDetailsServicebean来设置信息,但它似乎没有被调用。我在findByUsername方法中添加了一个断点,但执行从未停止过 application.yml

我正在开发一个应用程序,其中我的后端是一个无状态资源服务器。它接收到的每个请求都应该包含一个带有JWT承载令牌的
身份验证
头-当前是一个Google
id\u令牌
。我能够验证令牌,但为了实现方法级安全性,我需要能够使用存储库/服务中的信息设置主体的角色和名称。如何设置负责人的角色和名称

在Spring教程之后,我试图定义一个
UserDetailsService
bean来设置信息,但它似乎没有被调用。我在
findByUsername
方法中添加了一个断点,但执行从未停止过

application.yml文件

spring:
  security:
    oauth2:
      resourceserver:
        jwt:
          issuer-uri: https://accounts.google.com
Config.java文件:

@EnableWebFluxSecurity
@EnableReactiveMethodSecurity
公共类SecurityConfig{
@豆子
SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http)引发异常{
http
.授权交易所()
.pathMatchers(“/**”)
.authenticated()
.及()
.oauth2ResourceServer()
.jwt();
返回http.build();
}
//使用MapReactiveUserDetailsService,但我将创建自定义UserDetailsService实现
@豆子
公共映射反应用户详细信息服务用户详细信息服务(){
User.UserBuilder UserBuilder=User.withDefaultPasswordEncoder();
UserDetails rob=userBuilder.username(“rob”)//我的代码中没有“rob”和“admin”,而是我用来创建令牌的Google帐户的Google ID
.密码(“rob”)
.角色(“用户”)
.build();
UserDetails admin=userBuilder.username(“admin”)
.密码(“管理员”)
.角色(“用户”、“管理员”)
.build();
返回新的MapReactiveUserDetailsService(rob,admin);
}
SecuredController.java文件:

@RestController
公共类安全控制器{
@GetMapping(“/secured”)
@预授权(“hasRole('ADMIN')”)
公共单担保(委托人){
返回Mono.just(委托人);
}
}
使用此配置,不会调用用户详细信息服务,并且我无法访问
GET/secured
端点。我希望使用具有管理员角色的用户访问它