【发布时间】:2011-01-30 01:00:50
【问题描述】:
我有一个在 glassfish 2.1 上运行并带有 EJB 3 后端的 JSF 应用程序。对于身份验证,我使用自定义领域。用户使用他在注册时指定的电子邮件地址和密码进行身份验证。一切运行良好。
现在我有两个相关的问题:
1) 用户可以编辑他的个人资料,当然也可以更改他的电子邮件地址。不幸的是,当我使用 ExternalContext.getUserPrincipal().getName() 根据当前用户的身份执行操作时,我将收到用户在登录时使用的先前电子邮件地址。目前我通过强制用户在更改他的电子邮件地址后重新进行身份验证来处理这个问题,但是还有另一种更优雅的可能性吗?
2) 用户角色相同。例如。我有用户角色 MEMBER 和 PREMIUM_MEMBER。会员可能在当前会话期间成为高级会员。不幸的是,角色似乎只在登录时确定。是否有可能 JSF 和 EJB 识别新用户角色而无需用户重新认证?
【问题讨论】:
-
JEE 安全模型一旦你需要一些动态的东西就很糟糕。也许这个问题将有助于“Java EE 服务器上的动态角色”stackoverflow.com/questions/2230717/…。我认为第 2) 点是不可能的。
-
我创建了java.net/jira/browse/JASPIC_SPEC-22 来支持这个问题。希望这可以在 Java EE 的未来版本中得到解决。
标签: authentication jsf ejb-3.0 ejb