2013-07-23 102 views
6

我有一個情況我需要的路徑變量傳遞的參數傳遞給預授權如何使用路徑變量@Preauthorize

@RequestMapping(value="/page/{cmd}", method = RequestMethod.GET) 
    @PreAuthorize("hasRole(#cmd)") 
    public void method(@PathVariable String cmd, HttpServletRequest request, HttpServletResponse response){ 
// my stuff 
} 

它不working.can有人建議我如何使用路徑請在預授權變量。

回答

2

Spring Security的@PreAuthorize用於授權訪問的方法。它不知道是不是真的很瞭解Spring MVC的,尤其是關於其@RequestMapping註釋。

的名字,像#cmd將把方法的參數,和你的cmd參數爲空。它更改爲:

@PathVariable("cmd") String cmd 

這樣,cmd路徑變量將被綁定到cmd方法參數,這將隨後通過#cmd@PreAuthorize的約束。