2010-03-27 15 views
11

Podczas korzystania z zabezpieczeń sprężynowych, w szczególności z @ notatkowaniem; jaki jest właściwy sposób dostępu do zleceniodawcy w kontrolerze? Powiedzmy, że dodaje to mój kontroler, ale chciałbym, aby uzyskać dostęp do kapitału w bezpieczny sposób gdzieś() ...Wiosenny dostęp do zabezpieczenia głównego

@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"); 
    } 


} 

Odpowiedz

15

Najłatwiej jest SecurityContextHolder.getContext().getAuthentication().getPrincipal(). Działa poprzez wzorzec lokalny wątku.

Powiązane problemy