Принцип доступа к безопасности Spring - PullRequest
11 голосов
/ 27 марта 2010

При использовании Spring Security, особенно с @notation; Как правильно получить доступ к принципалу в контроллере? Допустим, мой контроллер является следующим, но я бы хотел получить доступ к принципалу где-нибудь в методе secure ()

@Controller
public class LoginController {

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public String login(ModelMap map, @RequestParam(value="fail" , required=false) String fail){
        map.addAttribute("title", "Login: AD Credentials");
        if(fail != null){
            map.addAttribute("error", "Invalid credentials");
        }
        return("login");
    }

    @RequestMapping("/secure")
    @PreAuthorize("isAuthenticated()")
    public String secure(ModelMap map, String principal){
        System.out.println(principal);
        return("secure");
    }


}

1 Ответ

15 голосов
/ 29 марта 2010

Самый простой - SecurityContextHolder.getContext().getAuthentication().getPrincipal(). Работает через локальный шаблон потока.

...