Java 如何在我的支持bean中获取调用方主体?
这是我的支持bean(部署到GlassFish): 如何以及在何处获取Java 如何在我的支持bean中获取调用方主体?,java,jsf,Java,Jsf,这是我的支持bean(部署到GlassFish): 如何以及在何处获取java.security.Principal对象以了解现在登录的用户是谁?您可以通过 我在这段代码上遇到了nullpointer异常。为什么会这样?@victorio:当您尝试调用null引用上的实例方法时,异常的所有可能原因通常都已在异常自己的javadoc:中列出。如果你仍然口吃,只需按“提问”并发布一个好的SSCCE。我最好的猜测是,您试图在错误的时刻(即尚未创建时)获取FacesContext,就像在servlet筛
java.security.Principal
对象以了解现在登录的用户是谁?您可以通过
我在这段代码上遇到了nullpointer异常。为什么会这样?@victorio:当您尝试调用
null
引用上的实例方法时,异常的所有可能原因通常都已在异常自己的javadoc:中列出。如果你仍然口吃,只需按“提问”并发布一个好的SSCCE。我最好的猜测是,您试图在错误的时刻(即尚未创建时)获取FacesContext
,就像在servlet筛选器中一样。谢谢:
@ManagedBean
@DeclareRoles({ "USER" })
@RolesAllowed("USER")
public class MyBean {
public MyBean() {}
public final String getId() {
Principal p = .. // how and where?
return p.getName();
}
}
Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();