我有一个与JBoss 5身份验证相关的三部分问题(在Web / EJB容器中):
有没有办法传播 用户名以外的身份 登录时指定的?对于 例如,使用 我想要DatabaseServerLoginModule 使用a验证用户 用户名/密码,但返回 用户的ID,而不是用户名,何时 ejbContext.getCallerPrincipal()或 httpRequest.getUserPrincipal()是 调用。
更好的是,我想制作一个自定义 返回用户的登录模块 对象(可能是一个实体) 从数据库加载)。然而, 即使我将User对象包装起来 很好地在我的一个Principal子类中 登录模块,EJB层永远不会 得到那个对象。相反, EJB层总是得到一个 SimplePrincipal时 调用getCallerPrincipal。
我希望能够触发登录 以编程方式,如中所述 WebAuthentication。但是,我需要 在不知道的情况下这样做 密码。想象一下客户服务 接口所在的客户服务 代理可以登录到该应用程序 作为最终用户。他们会点击一个 “登录为”按钮,我们应该 能够以编程方式登录 作为用户,不知道 用户密码(客户 服务代理已经 认证自己)。你可以 也有同样的情况 “忘记密码”使用了 备用登录机制 然后验证用户 以编程方式登录。
谢谢!
答案 0 :(得分:0)
1)不熟悉DatabaseServerLoginModule,但用户的id也不应该是他们的用户名吗?用户名至少应该是唯一的?
(在阅读完其余问题之后,这可能是没有用的......)
答案 1 :(得分:0)
两年前回答我自己的问题:自从我写这个问题以来,我们已经切换到Spring Security,发现它比JBoss单独提供的灵活得多。我向任何寻求真正解决此问题的人的建议是放弃容器提供的身份验证并仔细查看Spring Security。