gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:35:51 26 4
gpt4 key购买 nike

我正在运行 Glassfish 3.0,并且正在实现 JDBCRealm 以进行登录身份验证。用户名和角色保存在名为 usertable 的表中。身份验证按预期工作。

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

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

最佳答案

在 JSF 中,您可以使用 ExternalContext 检索与请求关联的当前 Principal,从而检索当前 session 。对象,可以从 FacesContext 中检索到.与请求关联的委托(delegate)人可以使用 getUserPrincipal() 从 ExternalContext 访问方法:

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

上述调用可以在 JSF 托管 bean 中完成。您可以调用 Principal 对象的 getName() 方法,以字符串形式检索用户的姓名。

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

关于java - 如何使用 JDBCRealm 获取登录用户的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6671641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com