【问题标题】:Spring security accessing principalSpring安全访问主体
【发布时间】:2010-03-27 12:16:45
【问题描述】:

当使用 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");
    }


}

【问题讨论】:

    标签: java spring-security principal


    【解决方案1】:

    最简单的是SecurityContextHolder.getContext().getAuthentication().getPrincipal()。通过线程局部模式工作。

    【讨论】:

      猜你喜欢
      • 2021-06-06
      • 2016-12-27
      • 2011-01-01
      • 2011-12-14
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 2013-06-20
      相关资源
      最近更新 更多