Экземпляр класса SecurityContext
хранит информацию о пользовательской сессии для текущего потока выполнения. Он создается и передается в метод AppContext.setSecurityContext()
в следующие моменты:
-
для блоков Web Client и Web Portal - в начале обработки каждого HTTP-запроса от пользовательского браузера
-
для блока Middleware - в начале обработки каждого запроса от клиентского уровня
-
для блока Desktop Client - один раз после входа пользователя, так как десктопное приложение является однопользовательским
По окончании выполнения запроса в первых двух случаях SecurityContext
удаляется из потока выполнения.
При создании прикладным кодом нового потока выполнения в него необходимо передать текущий экземпляр SecurityContext
, например:
final SecurityContext securityContext = AppContext.getSecurityContext(); executor.submit(new Runnable() { public void run() { AppContext.setSecurityContext(securityContext); // business logic here } });