我必须从我的JSP页面读取当前用户的角色吗?我知道Tomahawk组件上的visibleOnUserRole="myRole"
属性,但我需要的角色比简单的可见性更复杂一些。如何使用JSF/MyFaces基于用户角色创建条件?
3
A
回答
7
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将值展示给视图。
<f:view>
<h:outputLabel value="#{rolesBean.userPrincipalName}" />
<h:outputLabel value="#{rolesBean.user}" />
<h:outputLabel value="#{rolesBean.manager}" />
</f:view>
2
在Java EE 6(当这个问题被问/回答这是不可用),你可以在你的Facelets代码request
变量直接测试角色。这非常方便。
E.g.
<h:outputText value="hi, admin!" rendered="#{request.isUserInRole('Admin')}" />
相关问题
- 1. 如何基于用户角色创建程序化内容(Drupal)
- 2. 如何基于用户角色
- 3. 如何使用AngularJS创建基于角色的动态菜单
- 4. 如何创建角色用户登录?
- 5. 创建用户角色
- 6. 如何根据角色创建角色和管理用户
- 7. 如何使用Eloquent ORM Laravel创建基于条件的查询?
- 8. 首页基于用户角色
- 9. 基于用户角色的数据
- 10. MVC3验证基于用户角色
- 11. 基于用户角色RESTfully路由API
- 12. 创建基于条件
- 13. 创建基于条件
- 14. 创建基于条件
- 15. ř创建基于条件
- 16. 使用SLAPI创建角色
- 17. 基于用户角色的SiteMap控件不起作用
- 18. 如何在创建帐户时为用户分配角色
- 19. Amazon S3创建用户角色
- 20. Yii2:基于用户角色操作的合理构建
- 21. 如何隐藏WooCommerce产品具有基于用户角色
- 22. 如何使用基于Web服务的KendoUI创建条形图
- 23. PHP基于“角色”使用的mysqli
- 24. 用于基于角色的用户管理的轻量级CMS
- 25. 如何使用createuser控件在asp.net中创建角色
- 26. 如何使基于条件
- 27. 如何使基于条件
- 28. 基于用户角色呈现JSF组件
- 29. 基于用户角色显示PDF文件
- 30. 跨账户访问使用boto3为AWS账户创建角色