Я вижу странное поведение при использовании аутентификации на основе токена на основе аутентификации в API для отдыха, написанном с использованием Spring Boot.Является ли SecurityContext разделяемым между запросами при использовании Spring Security?
клиент включает в себя маркер JWT с каждым запросом, а также пользовательский фильтр я написал, что расширяет GenericFilterBean добавляет объект проверки подлинности на основе требований в маркер контекста безопасности, используя следующее:
SecurityContextHolder.getContext().setAuthentication(authentication);
и очищает контекст после обработки запроса, выполнив:
SecurityContextHolder.getContext().setAuthentication(null);
Однако когда простое приложение, которое я разработал выполняет ряд операций, я иногда вижу, что контекст безопасности не установлен правильно - иногда это ноль для запроса, который предоставил токен. Фильтр вызывается правильно, также вызывается setAuthencation(), но запрос не выполняет аутентификацию и выдает отказ 403.
Если я отключу любое управление сеансами http, установив политику создания сеанса STATELESS, это поведение прекратится.
Любые идеи, что может быть здесь? Является ли контекст безопасности совместно использоваться потоками, связанными с запросами?
Вы проверили это? http://stackoverflow.com/questions/16952718/springs-securitycontextholder-getcontext-getauthentication-returns-null-aft – randominstanceOfLivingThing