Хочу прикрутить к quarkus приложению авторизацию именно так, как оно предполагается делать, а не через костыли.
Соответственно переопределил ContainerRequestFilter, при авторизации устанавливаю кастомный свой SecurityContext, в который пропихиваю соответственно Principal его роль и т.д.
Работает прекрасно на несекьюрных методах, легко могу вытащить Principal и все такое. То есть костыльную валидацию ролей я уже могу сделать.
Как только я делаю именно то, что хочу, то есть аннотирую метод @RolesAllowed(value = ["admin", "user"]) —
при попытке вызвать метод получаю 401 Unathorized. Ни до одного фильтра похоже дело вообще не доходит, ставил отладчик на любой filter метод — ни черта не поймалось, явно отфутболивает где то сильно раньше.
Вопрос — как мне понять где осуществляется эта проверка роли, где поставить точку останова.
Здравствуйте, elmal, Вы писали:
E>Как только я делаю именно то, что хочу, то есть аннотирую метод @RolesAllowed(value = ["admin", "user"]) -
Я так на вскидку могу только подсказать, что в Spring Security по-умолчанию добавляется префикс "ROLE_". И, не уверен, но кажется оно и case-sensitive.
Я бы покопал в эту сторону, может всё просто?
Здравствуйте, Micht, Вы писали:
M>Я бы покопал в эту сторону, может всё просто?
Уже нашел причину, выставив уровень логирования в DEBUG — не сработала валидация JWT токена, ибо я там не заморачивался подписями и т.д.
Здравствуйте, Infernal, Вы писали:
I>Приветствую, https://quarkus.io/guides/security-customization вроде у них был живой пример. Работает вроде. I>С GRPC там хуже ситуация. Описание ноль, но в коде уже "магия" поддерживается.
Конкретно какого черта фильтр не вызывался разобрался.