Spring Security/Технический обзор Spring Security: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 16:
Самым фундаментальным явлется <code>SecurityContextHolder</code>. В нем мы храним информацию о текущем контексте безопасности приложения, который включает в себя подробную информацию о доверителе (принципале/пользователе) работающем в настоящее время с приложением. По умолчанию <code>SecurityContextHolder</code> использует <code>ThreadLocal</code> для хранения такой информации, что означает, что контекст безопасности всегда доступен для методов исполняющихся в том же самом потоке, даже если контекст безопасности явно не передается в качестве аргумента этих методов. Использование <code>ThreadLocal</code> таким образом, вполне безопасно, если принимаются меры для очистки потока после завершения обработки запроса текущего доверителя. Естественно Spring Security делает это за вас автоматически, поэтому нет необходимости беспокоиться об этом.
В некоторых приложениях использование <code>ThreadLocal</code> не является удачным решением, в силу их специфики работы с потоками. Например, клиент Swing может захотеть чтобы все потоки Java-
=== Получение информации о текущем пользователе ===
|