OAuth2.0 вопрос по возвращаемому объекту текущего пользователя Jmix 2.0

Класс io.jmix.authserver.introspection.AuthorizationServiceOpaqueTokenIntrospector

Здравствуйте, сразу начну с замечания по коду: строка 65 и 74, в 74 ненужный дубль.

Суть вопроса в том чтобы помимо username сохранять еще и userId (id) текущего пользователя в объекте UserDetailsOAuth2AuthenticatedPrincipal для grant_type AuthorizationGrantType.AUTHORIZATION_CODE, чтобы можно было нормально использовать правила авторизации уровня строк (:current_user_id), сейчас приходится писать (:current_user_username) что не совсем корректно на мой взгляд, спасибо!

Новый точечный рисунок

Если этот объект нужен для AuthorizationGrantType.CLIENT_CREDENTIALS, как я понимаю, может для AuthorizationGrantType.AUTHORIZATION_CODE стоит формировать нормальный UserDetails пусть и с приставкой OAuth2? Просто выглядит как-то куцо, ведь суть в том что мы при авторизации по AuthorizationGrantType.AUTHORIZATION_CODE должны возвращать нормального пользователя, а не кастрированного.

Как временное решение (может кому пригодится): определение своего bean как primary для AuthorizationServiceOpaqueTokenIntrospector, расширение объекта UserDetailsOAuth2AuthenticatedPrincipal с указанием id.

Кому по ресту нужен нормальный объект в текущем пользователе (если вдруг логика общая для рест и вэб) модифицируем метод:
Новый точечный рисунок

Расширяем саму сущность пользователя, и реализуем пару методов интерфейса:
Новый точечный рисунок

1 симпатия

Добрый день!

Верное замечание, спасибо. Завёл тикет. Подумаем, как тут лучше поступить.