С веб-приложением, когда запрос приходит на сервер, Spring также перезагружает и устанавливает SecurityContext этого запроса в SecurityContextHolder для своего потока?
В основном да.
По умолчанию SecurityContextHolder.getInstance()
возвращает экземпляр SecurityContextHolder
, который был сохранен как локальный для текущего потока. (Это только механизм по умолчанию. Вы можете использовать другую стратегию для определения местоположения SecurityContextHolder
, вызывая SecurityContextHolder.setStrategemName()
)
Фильтры SpringSecurity гарантируют, что запрос SecurityContextHolder
(как бы он ни находился) загружается с учетными данными запроса в начале и что держатель очищается в конце обработки запроса.