У меня есть три микросервиса: сервис-заказ, сервис-заказ и продукт-сервис. У user-service есть пользовательские API-интерфейсы, такие как логин, регистрация и т. д. Order-service заказывает продукт и получает информацию о продукте из product-service. Итак, микро сервис работает как пользовательский сервис,
и заказ-сервис ---- >> б / у --- >> продукт-сервис. Теперь я хочу использовать zuul api gateway и настроить фильтр zuul в этом. Как этот
public class PreFilter extends ZuulFilter {
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
// Here first i get token from header and then
// call to auth-server and then validate token if it is ok then go forword if
// token is not valid then thow exception unauthentication
}
}
Теперь запрос на пользователя работает как
API-шлюз --- >> обслуживание пользователей
запрос на заказ
api gateway - >> заказ-сервис --- >> продукт-сервис
Теперь запрос на заказ работает как
Api-шлюз --- >> сервер авторизации (проверка токена) ---- если запрос проверки токена переходит в службу заказа ----- >>>> служба заказа ------- >> услуга продукта.
Мой вопрос заключается в том, что если я проверяю токен в шлюзе API и могу напрямую получить доступ к сервису заказа, то как я могу остановить такой запрос, который не поступает через шлюз API и не требуется проверить токен в сервисе заказа и услуге продукта? ?.
Мне нужна одна такая точка входа, и я хочу проверить токен для API заказа и продукта, если кто-то хочет получить доступ к API-интерфейсу заказа-обслуживания без действительного токена, тогда сервис заказа или обслуживания продукта для них не работает. Пожалуйста, помогите мне понять, как я мог спроектировать структуру моего проекта.