我有一个在带有EJB 3后端的glassfish 2.1上运行的JSF应用程序。对于身份验证,我使用自定义域。用户使用他在注册时指定的电子邮件地址和密码进行身份验证。一切都运作良好。
现在我有两个相关的问题:
1)用户可以编辑他的个人资料 - 自然 - 他也可以更改他的电子邮件地址。不幸的是,当我使用ExternalContext.getUserPrincipal()。getName()基于当前用户的身份执行操作时,我将收到用户登录时使用的上一个电子邮件地址。目前,我通过强迫用户在更改电子邮件地址后重新进行身份验证来处理此问题,但还有其他更优雅的可能性吗?
2)用户角色相同。例如。我有用户角色MEMBER和PREMIUM_MEMBER。会员在其当前会话期间可能成为PREMIUM_MEMBER。不幸的是,这个角色似乎只能在登录时确定。 JSF和EJB是否有可能识别新用户角色而无需用户重新进行身份验证?