繁体   English   中英

EJB 3.1为安全目的删除调用上下文(ThreadLocal,...)

[英]EJB 3.1 remove invocation context for security purpose (ThreadLocal, …)

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

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

我有一个想法,但不确定它是否会起作用:使用ThreadLocal存储数据,但ThreadLocal只能在一个服务器上使用(意味着JVM)=>使用InvocationContext对象并创建拦截器以将用户数据添加到ContextData Map 。

你怎么看待这件事? 任何其他想法都非常欢迎! ;-)

UPDATE

在第一次回答后,我用Google搜索了一下,找到了注释@CallerPrincipal

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

容器已经处理好了,所以你不必自己编写代码。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM