Spring安全策略MODE_INHERITABLETHREADLOCAL。为什么?

Joe*_*oel 3 security spring-security thread-local

我了解当我们在 Spring 安全策略中使用 MODE_THREADLOCAL 和 MODE_INHERITABLETHREADLOCAL 时如何以及会发生什么。我不明白的是,为什么有人会使用 MODE_THREADLOCAL 而不是 MODE_INHERITABLETHREADLOCAL。

  1. 使用其中一种会不会对记忆产生影响?如果是这样,它是否足够重要?
  2. 使用 MODE_INHERITABLETHREADLOCAL 的典型业务/功能用例是什么?
  3. 使用其中一种与另一种相比,性能有何不同?

Rob*_*nch 6

  1. 使用两者对内存的影响可以忽略不计

  2. 在某些环境中,启动新线程来执行后台任务是很常见的。有时,开发人员不希望创建的线程自动包含 SecurityContext。在这些情况下,MODE_THREADLOCAL 更可取。如果您代表当前用户启动任务,那么可能需要传播 SecurityContext。在这种情况下,MODE_INHERITABLETHREADLOCAL 会更好。

  3. 两种策略之间的性能可以忽略不计