on
[Spring security] 로그인 정보 확인 방법 5가지
[Spring security] 로그인 정보 확인 방법 5가지
*그냥 확인 하기 쉽게 home.jsp에 링크 걸어주기
home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> 메인페이지 메인페이지 ">로그인 ">로그인 정보 확인 방법5 가지(상속관계만 잘 이해하면 됨) [">회원가입] [">유저 홈] [">관리자 홈] <%-- [">게시판] --%>
HomeController.java
폴리몰피즘 상속관계 이해하기
@GetMapping("/loginInfo") public String loginInfo(Principal principal) { log.info("loginInfo().."); //1.Controller를 통하여 Principal 객체로 가져오는 방법 String userId = principal.getName(); System.out.println("유저 아이디 : " + principal.getName()); //2.SpringContextHolder를 통하여 가져오는 방법(일시적인 Bean에서 사용할 수 있음) Authentication auth = SecurityContextHolder.getContext().getAuthentication(); userId = auth.getName(); System.out.println("유저 아이디 : " + userId); //3.UserDetails 갖고 오기 UserDetails userDetails = (UserDetails)auth.getPrincipal(); System.out.println("유저 아이디 : " + userDetails.getUsername()); //4.MemberUser 꺼내오기 MemberUser memberUser = (MemberUser)auth.getPrincipal(); System.out.println(memberUser.getUsername()); memberUser = (MemberUser)userDetails; System.out.println(memberUser.getUsername()); //5.User 클래스로 변환하여 가져오는 방법 User user = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); userId = user.getUsername(); System.out.println("유저 아이디 : " + userId); return "home"; }
결과
로그인 하고 클릭하면
콘솔창에
SecurityContext → Authentication을 가져온다. UserDetails가 Principal에 있다.
4번을 보면
//4.MemberUser 꺼내오기
MemberUser memberUser = (MemberUser)auth.getPrincipal();
System.out.println(memberUser.getUsername());
memberUser = (MemberUser)userDetails;
System.out.println(memberUser.getUsername());
userDetails는 우리가 만든 memberVO를 가지고 있다. 이게 핵심!
getPrincipal()안에 userDetails를 가지고 있고, 그 안에 memberVO를 가지고 있기 때문에 가지고 올 수 있다.
User도 Principal안에 가지고 있다.
ㅎㅎ 사실 이것도 아직 뭔소린지 모르겠다. 더 공부해야지..
from http://nxxrxx.tistory.com/20 by ccl(A) rewrite - 2021-10-09 17:27:25