我正在运行Glassfish 3.0,并且正在实现JDBCRealm进行登录身份验证。用户名和角色保存在名为usertable的表中。身份验证按预期工作。
但是现在的问题是,当用户登录时,如何在应用程序中检索登录用户的用户名?
PS:我正在实现JSF页面和Managed Bean
在JSF中,您可以使用ExternalContext
对象检索与请求关联的当前Principal,从而检索当前会话,该对象可以从中检索FacesContext
。可使用以下getUserPrincipal()
方法从ExternalContext访问与请求关联的Principal :
FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
可以在JSF托管Bean中完成上述调用。您可以调用getName()
Principal对象上的方法以String的形式检索用户的名称。
请注意Principal
,如果您在身份验证之前要检索主体,或者身份验证方案不能保护整个站点,则可以获取引用匿名用户的实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句