Как вызвать защищенную конечную точку микросервиса через zuul или любой шлюз API - PullRequest
1 голос
/ 28 октября 2019

У меня есть приложение Springboot. Конечные точки защищены, им необходим доступ к авторизации токена jwt. В приложении есть конечная точка, которая принимает имя пользователя и пароль и возвращает токен jwt. Теперь этот токен можно установить в заголовке авторизации и получить доступ к другим безопасным API.

У меня есть другое приложение Springboot, которое действует как шлюз Zuul API. Как я могу назвать мой безопасный API через это приложение Zuul. Я новичок в архитектуре микросервисов. Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 28 октября 2019

Я предлагаю, чтобы у вас была аутентификация только на уровне шлюза (Zuul).

У вас не должно быть аутентификации во время межмикросервисного вызова.

Все ваши микро-сервисыбыть доступным через шлюз и, следовательно, будет защищен.

Если вы все еще хотите использовать механизм токенов JWT для межсервисных вызовов, используйте приведенный ниже пример -

Предположим, у меня естьслужба под названием search-service как micro-service.

Создайте службу для вызова конечной точки входа в систему, получения токена и передачи этого токена в заголовке авторизации, например: «Носитель» <>

@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);


}



...