3

我正在开发一个基于 OSGi 的系统,该系统使用 HTTP 服务规范提供 Web 应用程序。

我正在研究安全保存经过身份验证的用户数据的替代方案。Java EE 中的常见做法是使用保存在 ThreadLocal 映射中的 ThreadContext 对象。

这种方法在 OSGi 容器中使用是否安全?

4

2 回答 2

3

OSGi 对您对线程的处理完全没有实际意义,因此通常 ThreadLocal 可以按预期工作。但是,请意识到这也意味着您的应用程序可以看到多个线程。

您可能想查看 OSGi Coordinator 规范,该规范提供了一种在调用链上共享数据的标准化方式。

于 2013-07-08T06:19:50.670 回答
1

彼得关于 OSGi 中 ThreadLocal 的回答是正确的,但有更简单的解决方案来处理用户身份验证。

看看Amdatu Security,它提供了一个 OSGi 服务,负责存储可以在 cookie 中设置的用户令牌。默认实现使用 MongoDB 进行实际令牌存储,但可以轻松插入其他实现。另外不要忘记,通过将这种数据存储在内存中,实现水平缩放变得更加困难。

于 2013-07-08T11:08:45.417 回答