当前位置: 首页 > 知识库问答 >
问题:

保护每个微服务

邢乐
2023-03-14

我有两个微服务,它们应该相互通信。我的例子是:微服务A向微服务B发出请求。用户不应该有访问权限,只能访问其他微服务。我想,那个解决方案可能是“Http基本身份验证”,所以microservice A还应该向microservice B发送用户名和密码。这很好,但microservice A应该如何找到用户名和密码呢?我正在使用Eureka作为发现服务,但在这种情况下,我没有找到任何可以帮助我的。我只找到了尤里卡。客户代理用户名和eureka。客户代理密码,但对我无效。

共有1个答案

万俟玉书
2023-03-14

>

private WebClient client = null;

@PostConstruct
public void init() {
    client = WebClient.builder().baseUrl("some-url").build();
}

@GetMapping("/getCandidateById/{institutionId}/{id}")
public Mono<Candidate> getCandidateById(@PathVariable String institutionId, @PathVariable String id, ServerHttpRequest request) {
        return client.get()
                .uri("/getCandidateById/{institutionId}/{id}", institutionId, id)
                /*main logic*/.header("Authorization", request.getHeaders().getFirst("Authorization"))
                .retrieve()
                .bodyToMono(Candidate.class);
}

我正在提取标头并将其添加到我通过WebClient发出的请求中。同样,您也可以使用RestTemboard。

注意:我使用了基本身份验证

 类似资料:
  • 我正在寻找一个最佳实践和高效的解决方案,以确保通过REST与Web客户端应用程序通信的多个微服务的安全。 当前设置: 这些微服务是用Java制作的,带有Spring框架,并运行在Docker容器中。 客户端是一个Angular 2应用程序。 我创建了一个新的µ服务,它将充当“网关”,是我的web客户端和其他服务之间的唯一通信点。 我从远程身份验证API检索JWT加密令牌(让我们称之为LOCK) 我

  • 对于我最近的项目,我使用springboot创建了一个单独的资源服务器。资源服务器的配置方式是,它将检查对API的2脚和3脚访问,并验证JWT令牌。资源服务器是一个在其容器中运行的独立的Spring Bootjar 我们使用Spring Boot创建了几个微服务,这些微服务是可执行的jar,在它们的容器中独立部署和运行。资源服务器将保护这些微服务中暴露的endpoint。为此,我在资源服务器中创建

  • 提前,我为这个looong问题道歉!事实上,问题并没有那么长,但是我发布了很多我的代码片段,因为我真的不知道什么与解决我的问题相关或不相关...... 我一直在尝试使用以下内容制作一个简单的poc:-Angular 8前端-用于身份验证的Keycloak服务器-Spring云后端架构:-使用Spring Cloud Security保护的Spring Cloud Gateway-Spring Cl

  • 我有一个创建的Spring引导Restapi,我打算从另一个应用程序调用。我如何才能以这样一种方式保护它,我只能从那个应用程序调用我的api。 我在这方面很新,所以我真的不知道怎么做,因为我是SpringSecurity的新手。 谢谢你的建议。

  • 我有一个包含10个微服务的微服务架构,每个微服务提供一个客户端。在由微服务团队管理/控制的客户机内部,我们只接收参数并将它们传递给一个通用http调用程序,该调用程序接收endpoint和N个params,然后进行调用。所有微服务都使用http和web api(我猜技术并不重要)。 对于我来说,作为微服务团队提供一个客户是没有意义的,应该是消费者的责任,如果他们想创建一些抽象或者直接调用它是他们的