gpt4 book ai didi

java - 如何使用 JSF/MyFaces 创建基于用户角色的条件?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:04:52 29 4
gpt4 key购买 nike

我有哪些选项可以从我的 JSP 页面读取当前用户的角色?我知道 Tomahawk 组件上的 visibleOnUserRole="myRole" 属性,但我需要角色来处理比简单可见性更复杂的事情。

最佳答案

ExternalContext公开用户和角色信息。

public class RolesAccess implements Serializable {

public String getUserPrincipalName() {
FacesContext context = FacesContext.getCurrentInstance();
Principal principal = context.getExternalContext().getUserPrincipal();
if(principal == null) {
return null;
}
return principal.getName();
}

public String getUser() {
FacesContext context = FacesContext.getCurrentInstance();
return context.getExternalContext().getRemoteUser();
}

public boolean isManager() {
FacesContext context = FacesContext.getCurrentInstance();
return context.getExternalContext().isUserInRole("manager");
}

}

如果您在 servlet 中使用 JSF,此信息将映射到 HttpServletRequest 公开的值.

您可以使用托管 bean 通过 Expression Language 向 View 公开值.

<f:view>
<h:outputLabel value="#{rolesBean.userPrincipalName}" />
<h:outputLabel value="#{rolesBean.user}" />
<h:outputLabel value="#{rolesBean.manager}" />
</f:view>

关于java - 如何使用 JSF/MyFaces 创建基于用户角色的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/286686/

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