gpt4 book ai didi

java - 控制 EJB 调用上传递的安全原则

转载 作者:行者123 更新时间:2023-12-01 19:23:52 26 4
gpt4 key购买 nike

我正在开发一个大型的现有 EJB 1.1 应用程序,该应用程序当前具有自己的安全性,并且没有 EJB 管理的安全性。

我正在尝试逐步转向更标准的解决方案,因此我想开始控制传递给 EJB 的安全原则。我无法更改当前的登录或安全框架,因此我不相信目前可以迁移到 JAAS。

一旦我创建了 java.security.Principle,我应该将其存储在哪里,以便它在我的 ejb 调用中传递并可从 context.getCallerPrincipal() 获取?

谢谢。

最佳答案

Java EE 安全性有点孤注一掷。您应该使用 Java EE 身份验证机制来正确设置安全上下文。如您所见,EJBContext通过注入(inject)获取的内容是只读的。

我知道更改安全上下文的唯一标准方法是使用 @RunAs 之类的东西(请参阅 an example ),但它非常不灵活。您无法动态传递凭据。

有一些非可移植容器特定机制,例如 Glassfish 有 ProgrammaticLogin 。但即使在这种情况下,您也需要传递用户名/密码,而不能立即更改 Principal

我记得读过一些文章,其中解释了如何使用容器的内部 API 手动设置安全上下文,但它当然是不可移植且不受支持的。

关于java - 控制 EJB 调用上传递的安全原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517241/

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