Java Spring云网关和Spring安全将经过身份验证的角色传递给微服务
让我们假设 我们有Spring Boot(2)服务; 微服务A, 微服务B, 微服务 我们希望使用SpringCloudGateway将它们聚合在一起,并在需要特定服务的http路径时进行令牌身份验证 现在假设我们在api网关中进行了身份验证,然后扮演角色等。但我不想逐一允许特定的http路径,如带有ServerHttpSecurity链接的Java Spring云网关和Spring安全将经过身份验证的角色传递给微服务,java,spring,spring-boot,spring-security,spring-cloud-gateway,Java,Spring,Spring Boot,Spring Security,Spring Cloud Gateway,让我们假设 我们有Spring Boot(2)服务; 微服务A, 微服务B, 微服务 我们希望使用SpringCloudGateway将它们聚合在一起,并在需要特定服务的http路径时进行令牌身份验证 现在假设我们在api网关中进行了身份验证,然后扮演角色等。但我不想逐一允许特定的http路径,如带有ServerHttpSecurity链接的/service-b/public area 相反,我想在microservice B中使用@PreAuthorize(“hasRole(ROLE\u US
/service-b/public area
相反,我想在microservice B
中使用@PreAuthorize(“hasRole(ROLE\u USER)”)
对我的映射方法进行注释。
所以我可以在微服务中处理部分独立授权。因为当我有任何任务时,我只需要在特定的微服务上工作
但我找不到任何关于在中传递spring安全角色的文档
关于这个问题,有人能提供一些答案、经验和建议吗?我认为您应该在网关上进行代理传递,并在每个微服务上对身份验证服务进行身份验证,为了进行身份验证,您可以验证哪些用户是经授权的。@JonathanJohx我不是这个意思,我不想在每个微服务中实现身份验证,而是想将SecurityContext传递给微服务。然后,在传递给微服务之前,需要在网关服务上创建安全逻辑。你可以看看这个链接,让我知道这是否有助于你回答你的问题。