我想在我的应用程序的后端访问一般用户信息(如用户名,名字,姓氏等)。
我有一个多模块设置,看起来像这样:
我的核心实施模块基本上包含所有数据库互动服务,例如" UserService"它更新了DB中的Userinformations。
这些服务类是有效的@javax.enterprise.context.ApplicationScoped
CDI Bean,它通过ProducerClass注入EntityManager,因为它只有一个EntityManager PER THREAD - @javax.enterprise.context.RequestScoped
。
现在这里变得棘手......
在某些Service实现中,我需要访问有关当前交互用户的Userinformation。但是因为UI可以有多个Sessions和多个Threads激活,我不能简单地通过Producer方法注入这些信息...
现在我想知道是否有人有过类似的问题(我相信......)以及你是怎么解决的?
我想在每个方法中传递一些Principal Implementation作为参数,这不是一个非常漂亮但是安全的方法来摆脱这个问题。
我必须确保我在后端使用的用户信息完全是调用后端服务的用户的凭据 - 可能会有更多用户同时处于活动状态,同时调用相同的服务... < / p>
如果有人为这个问题找到一个干净的解决方案,请告诉我!
提前感谢您的帮助!