Spring Security - AuthenticatedPricipal已弃用

cod*_*ode 6 spring-mvc spring-security spring-boot

Spring Security版本: spring-boot-starter-security:1.3.0.RC1

注意到注释@AuthenticationPrincipal已被弃用.

可能有不同的方法来完成相同的事情,并想知道这是否是在Spring MVC控制器中获取用户信息的正确方法.

@RequestMapping(method = RequestMethod.GET)
public String getIndex(HttpSession session, Device device, Model model, Principal principal) {

    /**
     * Spring Security Fetch User
     */
    if (principal != null) {
        String username = principal.getName();
        User currentUser = userRepository.findByEmail(username);
        model.addAttribute("user", currentUser.getFirstName());
    }

    return "view";

}
Run Code Online (Sandbox Code Playgroud)

另一方面,我发现没有HttpSession session导致过时的会话导致页面加载错误.

Ily*_*sev 16

注释已移至另一个包中.

使用org.springframework.security.core.annotation.AuthenticationPrincipal而不是弃用org.springframework.security.web.bind.annotation.AuthenticationPrincipal.