如何通过Zuul或任何api网关调用安全的微服务端点

时间:2019-10-28 13:44:16

标签: java netflix-zuul api-gateway

我有一个springboot应用程序。端点是安全的,它们需要jwt令牌授权才能被访问。应用程序中有一个端点,该端点接受用户名和密码并返回jwt令牌。现在,可以在授权标头中设置此令牌,并可以访问其他安全api。

我有另一个springboot应用程序,它充当zuul api网关。如何通过此zuul应用程序调用我的安全api。我是微服务架构的新手。请告知。

1 个答案:

答案 0 :(得分:0)

我的建议是您只应在网关(Zuul)级别进行身份验证。

在微服务间调用期间,您不应该进行身份验证。

您的所有微服务都可以通过网关访问,因此将受到保护。

如果您仍然希望使用JWT令牌机制进行微服务间调用,请使用以下示例-

假设我有一个称为“搜索服务即微服务”的服务。

创建一个服务来调用登录端点并获取令牌,并将该令牌传递到Authorization标头中,例如:“ Bearer” <>

@FeignClient(name = "search-service")
public interface SearchService 
{
    @RequestMapping(method = RequestMethod.POST , value = "/api-search/user/v2/search" , consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    List<Map<String, List<Map<String, Object>>>> search(@RequestHeader("Authorization")String token, String query);

    @RequestMapping(method =  RequestMethod.POST , value = "/api-search/auth/login", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public AuthResponseDto login(@RequestBody AuthRequestDto authRequestDto);


}