gpt4 book ai didi

java - EJB 3.1 出于安全目的删除调用上下文(ThreadLocal,...)

转载 作者:行者123 更新时间:2023-12-02 08:09:49 25 4
gpt4 key购买 nike

我在一台 Glassfish 服务器(前端)上有一个 Web 应用程序,在另一台 Glassfish 服务器上有一个 EJB 3.1 应用程序(后端)。 Web应用程序通过远程调用与EJB 3.1进行通信。

我想传递上下文数据(即用户数据),而不必将其定义为每个业务操作的输入参数。

我有一个想法,但不确定它是否可行:使用 ThreadLocal 来存储数据,但 ThreadLocal 只能在一台服务器上使用(即 JVM) => 使用InitationContext对象并创建拦截器以将用户数据添加到ContextData映射。

你对此有何看法?任何其他想法都非常受欢迎! ;-)

更新

第一个答案后,我用谷歌搜索了一下,找到了注释@CallerPrincipal

如何在远程调用之前设置此对象?

最佳答案

容器已经处理了这个问题,因此您不必自己编写代码。

在您的 EJB 中,您可以访问 EJBContext,它具有 getCallerPrincipal()方法将为您提供调用者的身份。

关于java - EJB 3.1 出于安全目的删除调用上下文(ThreadLocal,...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7636586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com