作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Jersey 的文档中,Example 16.2显示了将 SecurityContext 注入(inject) Jersey 资源单例的示例。
当然文档是正确的,并且给出的示例确实是线程安全的。
我怀疑 SecurityContext 的注入(inject)只发生了一次,当 getUserPrincipal()
被调用,也许它从附加到线程本身的某些结构中获取用户数据(可能是 ThreadLocal 对象?)。这是当有大量线程竞争时,我可以看到将正确的用户信息提供给最终用户的唯一方法。
任何人都可以确认这种行为,或者以其他方式解释 Jersey 示例的线程安全性吗?
最佳答案
Dynamic Proxies与 ThralLocal 支持一起使用。这在 JAX-RS 规范中有所解释,关于一些请求范围的可注入(inject)对象(参见 this post for spec quote)
I suspect that the injection of the SecurityContext happens exactly once
关于jersey - 为什么将 SecurityContext 注入(inject) Jersey Singleton 线程是安全的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45246344/
我是一名优秀的程序员,十分优秀!