加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用JDBCRealm获取登录用户的用户名?

发布时间:2020-12-15 04:55:10 所属栏目:Java 来源:网络整理
导读:我正在运行Glassfish 3.0,我正在实现JDBCRealm用于登录身份验证.用户名和角色保存在名为usertable的表中.身份验证按预期工作. 但问题是,当用户登录时,如何在应用程序中检索登录用户的用户名? PS:我正在实现JSF页面和Managed Bean 解决方法 在JSF中,您可以
我正在运行Glassfish 3.0,我正在实现JDBCRealm用于登录身份验证.用户名和角色保存在名为usertable的表中.身份验证按预期工作.

但问题是,当用户登录时,如何在应用程序中检索登录用户的用户名?

PS:我正在实现JSF页面和Managed Bean

解决方法

在JSF中,您可以使用 ExternalContext对象检索与请求关联的当前Principal,从而检索当前会话,该对象可以从 FacesContext中检索.与请求关联的Principal可以使用 getUserPrincipal()方法从ExternalContext访问:

FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();

上面的调用可以在JSF托管bean中完成.您可以在Principal对象上调用getName()方法,以将用户的名称检索为String.

请注意,如果在身份验证之前检索Principal,或者身份验证方案不保护整个站点,则可以获取引用匿名用户的Principal实例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读