1.의의

2.Authentication 객체 주입

@GetMapping("/register")
	public void registerForm(Model model, Authentication authentication) throws Exception {
		CustomUser customUser = (CustomUser) authentication.getPrincipal();
		Member member = customUser.getMember();
		
		Board board = new Board();
		
		board.setWriter(member.getUserId());

		model.addAttribute(board);
	}

3.Principal 객체 주입

KakaoTalk_20220907_093828774.jpg

@GetMapping("/register")
	public void registerForm(Model model, Principal principal) throws Exception {
		log.info("registerForm principal.getName() = " + principal.getName());
		
		UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = (UsernamePasswordAuthenticationToken)principal;
		
		CustomUser customUser = (CustomUser)usernamePasswordAuthenticationToken.getPrincipal();
		Member member = customUser.getMember();
		
		log.info("registerForm member.getUserId() = " + member.getUserId());
		
		Board board = new Board();
		board.setWriter(principal.getName());

		model.addAttribute(board);
	}

4.@AuthenticationPrincipal 애너테이션 지정

@GetMapping("/register")
	public void registerForm(Model model, @AuthenticationPrincipal CustomUser customUser) throws Exception {
		Member member = customUser.getMember();
		
		log.info("registerForm member.getUserId() = " + member.getUserId());
		
		Board board = new Board();
		
		board.setWriter(member.getUserId());

		model.addAttribute(board);
	}

4.SecurityContextHolder사용