전공영역 공부 기록

스프링시큐리티 3편 - 컨트롤러에서 로그인 정보 조회

악분 2021. 11. 1. 07:07
반응형

 

3편에서는 컨트롤러에서 스프링시큐리티로 로그인한 사용자 정보를 어떻게 가져오는지 설명합니다.

 

▶ 영상(20:59 ~ ): https://youtu.be/ewslpCROKXY?t=798 

 

Controller에서 인증 정보 로드

git 링크: https://github.com/choisungwook/springsecurity-youtube/blob/chatper_1/src/main/java/com/demo/springseucurity/controller/DemoController.java

 

Controller에서 인증정보를 가져오려면 @AuthenticationPrincipal 애노테이션을 사용하시면 됩니다. 이 애노테이션은 로그인 정보를 SpringSecurity User객체로 파싱됩니다. 인증정보는 로그인이 되어있어야만 가져올 수 있습니다.

	@GetMapping("/session")
    public ResponseCookieDTO hello(@AuthenticationPrincipal User user, HttpSession HttpSession) {
        String username = "empty";
        String session_id = "empty";

        if (user == null){
            System.out.println("user is null");
        } else {
            session_id = HttpSession.getId();
            username = user.getUsername();
        }

        return new ResponseCookieDTO(username, session_id);
    }

 

[그림 1]예제는 로그인한 사용자의 이름을 가져오는 예제입니다.

그림1 AuthenticationPrincipal 애노테이션

반응형