【问题标题】:How to handle dynamic role or username changes in JSF?如何处理 JSF 中的动态角色或用户名更改?
【发布时间】:2011-01-30 01:00:50
【问题描述】:

我有一个在 glassfish 2.1 上运行并带有 EJB 3 后端的 JSF 应用程序。对于身份验证,我使用自定义领域。用户使用他在注册时指定的电子邮件地址和密码进行身份验证。一切运行良好。

现在我有两个相关的问题:

1) 用户可以编辑他的个人资料,当然也可以更改他的电子邮件地址。不幸的是,当我使用 ExternalContext.getUserPrincipal().getName() 根据当前用户的身份执行操作时,我将收到用户在登录时使用的先前电子邮件地址。目前我通过强制用户在更改他的电子邮件地址后重新进行身份验证来处理这个问题,但是还有另一种更优雅的可能性吗?

2) 用户角色相同。例如。我有用户角色 MEMBER 和 PREMIUM_MEMBER。会员可能在当前会话期间成为高级会员。不幸的是,角色似乎只在登录时确定。是否有可能 JSF 和 EJB 识别新用户角色而无需用户重新认证?

【问题讨论】:

标签: authentication jsf ejb-3.0 ejb


【解决方案1】:

考虑将 Seam 与 JSF 一起使用。在那里您可以更改已登录用户的凭据,而无需重新登录。

【讨论】:

  • 1) 您是否有任何指向描述此内容的 Seam 文档的链接? 2) Seam 会为我的应用程序引入一个全新的授权/认证框架,还是会在 JEE 授权/认证之上提供动态功能?
  • 它使用了 JEE 之上的特性。没有文档描述您可以更改登录用户的凭据。但是,这里有一些关于身份验证的文档:docs.jboss.org/seam/2.2.1.CR1/reference/en-US/html_single/… 安全章节是一个很好的起点:docs.jboss.org/seam/2.2.1.CR1/reference/en-US/html_single/… 当涉及到关于角色的第二个问题时,很可能需要重新登录,尽管 API 可能支持更改用户角色的事件。如果可能的话,我不会感到惊讶。
猜你喜欢
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多