如何在我的支持bean中获取调用者主体?

时间:2010-08-05 12:13:35

标签: java jsf

这是我的支持bean(部署到GlassFish):

@ManagedBean
@DeclareRoles({ "USER" })
@RolesAllowed("USER")
public class MyBean {
  public MyBean() {}
  public final String getId() {
    Principal p = .. // how and where?
    return p.getName();
  }
}

我如何以及在哪里获取java.security.Principal对象以了解现在登录的用户?

1 个答案:

答案 0 :(得分:4)

您可以ExternalContext#getUserPrincipal()获取。

Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();