Skip to content

Latest commit

 

History

History
31 lines (21 loc) · 1.05 KB

File metadata and controls

31 lines (21 loc) · 1.05 KB
安全上下文

SecurityContext 类实例存储关于当前执行线程的用户会话信息。它在以下情况下被创建并传递给 AppContext.setSecurityContext() 方法:

  • 对于 Web 客户端 block 和 Web 门户 block - 在开始处理用户浏览器的每个 HTTP 请求时。

  • 对于中间件 block - 在开始处理来自客户端层和 [scheduled_tasks_cuba] 的每个请求时。

在前两种情况下,当请求执行完成时,将从执行线程中删除 SecurityContext

如果通过应用程序代码创建一个新的执行线程,需要将当前的 SecurityContext 实例传递给它,示例如下:

link:../../../../../source/common/securitycontext_1.java[role=include]

使用 SecurityContextAwareRunnableSecurityContextAwareCallable 封装类可以完成同样的操作,例如:

link:../../../../../source/common/securitycontext_2.java[role=include]
link:../../../../../source/common/securitycontext_3.java[role=include]