Я использую асинхронные методы в своей службе (аннотация Spring 3 @Async). И у меня проблема - порожденный поток не имеет контекста безопасности. Причиной этого является то, что Spring Security по умолчанию использует стратегию SecurityContextHolder.MODE_THREADLOCAL для своего держателя контекста. Но мне нужно использовать стратегию SecurityContextHolder.MODE_INHERITABLETHREADLOCAL. На данный момент я настроил стратегию в моем AuthenticationSuccessHandler. Но, на мой взгляд, это не очень хорошая практика.
Итак, как я могу настроить его в файле конфигурации контекста?
Версия Spring Security 3.0.0.
MODE_INHERITABLETHREADLOCALможет привести к тому, что пул потоков будет содержать потоки с неправильным контекстом безопасности для асинхронных задач. Лучшим подходом является использование исполнителя, который делегирует контекст безопасности при выполнении задачи. См. здесь: Spring Security и @Async (прошедшие проверку пользователи перепутаны) а> - person Bernie   schedule 26.07.2018