我必须使用哪些选项才能从 JSP 页面读取当前用户的角色?我知道visibleOnUserRole="myRole"
Tomahawk 组件上的属性,但我需要角色来处理比简单可见性更复杂的事情。
The 外部上下文 http://docs.oracle.com/javaee/6/api/javax/faces/context/ExternalContext.html公开用户和角色信息。
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,则此信息将映射到由HttpServlet请求 http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html.
您可以使用托管 bean 通过以下方式向视图公开值表达语言 http://docs.oracle.com/javaee/6/tutorial/doc/bnahq.html.
<f:view>
<h:outputLabel value="#{rolesBean.userPrincipalName}" />
<h:outputLabel value="#{rolesBean.user}" />
<h:outputLabel value="#{rolesBean.manager}" />
</f:view>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)