Jersey SecurityContext.getUserPrincipal () возвращает ноль для не синглтон-ресурса - PullRequest
0 голосов
/ 28 июня 2019

Мой ресурс не является синглтоном, при каждом новом запросе я вижу, что вызывается мой конструктор ресурсов.Я вставляю @Context SecurityContext в свой конструктор и затем получаю Principal как securityContext.getUserPrincipal().

Проблема в том, что я строю SecurityContext в ContainerRequestFilter, где я получаю пользователя из токена в заголовке Autorization и создаю новый SecurityContext, но ContainerRequestFilterзапускает ПОСЛЕ Ресурс был создан, поэтому во время построения securityContext.getUserPrincipal() возвращает ноль.

Я хочу избежать вызова securityContext.getUserPrincipal() для каждого из методов моего Ресурса, поэтому есть лиспособы заставить ContainerRequestFilter запустить ДО создания ресурса?

1 Ответ

0 голосов
/ 28 июня 2019

Добавление аннотации @PreMatching к ContainerRequestFilter заставляет его работать до того, как ресурс будет выбран и создан платформой.

...