0
我有兩種類型的管理員。 超級管理員和普通管理員。基於用戶角色的JSF重定向頁面
兩者都從頁面admin.xhtml開始。
我想轉發超級管理員用戶到super-admin.xhtml和正常管理員到normal-admin.xhtml。
如何在JSF中執行此操作(我正在使用Spring Security)?
我有兩種類型的管理員。 超級管理員和普通管理員。基於用戶角色的JSF重定向頁面
兩者都從頁面admin.xhtml開始。
我想轉發超級管理員用戶到super-admin.xhtml和正常管理員到normal-admin.xhtml。
如何在JSF中執行此操作(我正在使用Spring Security)?
我不熟悉JSF,但假設它的引擎蓋就像Spring MVC的JSP應用下的功能,你可以有你的控制器根據用戶持有的角色(一個或多個)提供不同的頁面:
@RequestMapping("/admin.xhtml")
@PreAuthorize("hasAnyRole('ROLE_ADMIN', 'ROLE_SUPERADMIN')")
public String getAdminPage(Modelmap model, Principal principal) {
Collection<? extends GrantedAuthority> authorities = SecurityContextHolder.getContext().getAuthentication().getAuthorities();
for (GrantedAuthority authority : authorities) {
if (authority.toString() == "ROLE_SUPERADMIN") { return "superadminpage"; }
}
//no need to check for admin privileges, since the annotation took care of that
//if you're not using annotations (or @PostAuthorize), you'd have to capture the
//'admin' role as well, and adjust the return statements accordingly.
return "adminpage";
}
您想通過在admin.xhtml頁面上重定向到不同頁面的操作? – 2013-05-09 11:46:04