Spring boot 吉普斯特公司;KeyClope,客户端角色未通过外调传递

Spring boot 吉普斯特公司;KeyClope,客户端角色未通过外调传递,spring-boot,microservices,jhipster,keycloak,Spring Boot,Microservices,Jhipster,Keycloak,我在使用多个Jhipster 6.7.1实例的同时使用了一个KeyClope 9 Orchestration microservice正在KeyClope中使用“机密”访问类型,并成功生成和验证令牌 为了@PreAuthorize能够工作,必须映射业务流程客户端中的角色设置,使用“用户客户端角色”和“角色”作为令牌声明名称。如果我试图传递组,出于某种原因,Jhipster会忽略角色,只返回Groups值,这会导致@PreAuthorize失败 其他微服务在KeyClope中使用“brearer”

我在使用多个Jhipster 6.7.1实例的同时使用了一个KeyClope 9

  • Orchestration microservice正在KeyClope中使用“机密”访问类型,并成功生成和验证令牌
  • 为了@PreAuthorize能够工作,必须映射业务流程客户端中的角色设置,使用“用户客户端角色”和“角色”作为令牌声明名称。如果我试图传递组,出于某种原因,Jhipster会忽略角色,只返回Groups值,这会导致@PreAuthorize失败
  • 其他微服务在KeyClope中使用“brearer”访问类型。为了授权微服务而设置的任何业务流程角色都将被完全忽略,因此业务流程和微服务之间的授权检查将失败,访问被拒绝
  • @AuthorizedFeignClient正在处理编排和其他微服务之间的通信

  • 我想知道我在这里做错了什么,编排客户端角色没有被传递到相应的微服务上,还有一种方法可以以嵌套的方式映射组和角色,这样它就符合现有的Jhipster代码而不发生更改。

    您的角色名是否以
    角色
    作为前缀?我认为这是spring security的默认设置。@GaëlMarziou是的,不管有没有运气,他们都尝试过。所以本质上我面临两个问题,一个是组和角色的自定义映射,它没有嵌套,如果使用组,则忽略角色。只有作为自定义令牌的角色才起作用。带有承载选项的KeyClope客户端无论如何都不提供自定义映射,因此添加了角色。