Фильтр на api-gateway для авторизации на миросервисах java
У меня есть api-gateway который отлавливает все запросы и рассылает их на микросервисы. Я делал авторизацию с помощью jwt, в который зашиты роли юзера. Я проверяю на валидность через фильтр
- id: test-server
uri: lb://test-service
predicates:
- Path=/test/**
filters:
- AuthenticationFilter
В этом фильтре я проверяю валидный ли токен, если да, то даю доступ. Но если я хочу, чтобы какой-то endpoint был разрешен только админу, или менеджеру и т.д. Где мне это лучше указывать? Есть вариант передать параметры
key: <your-public-key-or-secret>
jwtClaimKey: roles
jwtClaimValue: ADMIN
Вот так, но тогда мне придется, наверное каждый endpoint указывать даже роли USER. Я думал сделать еще один фильтр, по типу AuthenticationFilter, который бы проверял на роли, и туда бы я уже передавал аргументы. Но мне кажется, что так не очень красиво. Как мне сделать проверку endpoint с jwt на java ?