更好從不遲到,讓我把我的2美分價值。
在JSF的世界裏,我的管理bean中,我做了以下內容:
HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
SecurityContextHolderAwareRequestWrapper sc = new SecurityContextHolderAwareRequestWrapper(req, "");
正如上面提到的,我的理解是,這是可以做到的長篇大論方式如下:
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserDetails userDetails = null;
if (principal instanceof UserDetails) {
userDetails = (UserDetails) principal;
Collection authorities = userDetails.getAuthorities();
}
這只是爲了 - 通過auth.getAuthorities()進行每次查找 複製此代碼比構造或讀取SecurityContextHolderAwareRequestWrapper對象更容易。 我寧願要使用所有安全EL方法。例如ACL – 2010-06-11 11:58:57
的hasPermission正如你的答案所述,它看起來像方法是靜態的,但是你需要一個'SecurityContextHolderAwareRequestWrapper'實例。你可以改進它,解釋如何獲得它,並更多地澄清答案本身。 – 2015-02-23 09:59:18
如何檢索控制器中的包裝? – 2015-08-04 12:17:59