Spring Security 컨텍스트에서 현재 인증된 사용자의 사용자 이름(사용자 ID)을 얻는 데 사용되다. 사용자가 인증되었고 연관된 UserDetails 개체가 있다고 가정하면. 이 코드는 UserDetails 개체에서 사용자 이름을 추출하여 userId 변수에 할당하는 것이다.
✔ 예제코드
@GetMapping("")
public ResponseVO getUserInfo() {
String userId = ((UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
System.out.println("getUserInfo");
log.debug("getUserInfo[" + userId + "]");
return userService.getUserInfo(userId);
SecurityContextHolder.getContext()
: SecurityContextHolder는 스프링 시큐리티에서 현재 실행 중인 스레드의 보안 정보를 제공하는 정적 클래스, getContext() 메서드를 호출하여 현재 스레드의 보안 컨텍스트를 얻는다.
getAuthentication()
: SecurityContextHolder.getContext()를 통해 가져온 보안 컨텍스트에서 현재 사용자의 인증 정보(Authentication)를 얻기 위해 getAuthentication() 메서드를 호출한다. Authentication 객체는 현재 사용자의 인증 및 권한 정보를 포함한다.
getPrincipal()
: getAuthentication() 메서드가 반환한 Authentication 객체에서 현재 사용자의 주체(principal)를 가져오기 위해 getPrincipal() 메서드를 호출한다. getPrincipal() 메서드는 Authentication 객체에 포함된 주체를 나타내는 객체를 반환하고 주로 UserDetails 객체를 반환한다.
(UserDetails)
: getPrincipal() 메서드가 반환한 주체 객체를 UserDetails 타입으로 캐스팅. UserDetails 인터페이스는 스프링 시큐리티에서 사용자의 세부 정보를 나타내는 인터페이스이다. 사용자의 이름, 암호화된 비밀번호, 권한 등을 포함하는 객체이다.
getUsername()
: UserDetails 객체에서 사용자의 이름(사용자 아이디)을 가져오기 위해 getUsername() 메서드를 호출하며. getUsername() 메서드는 사용자의 이름(사용자 아이디)을 반환.
'업무 기록 > WEB' 카테고리의 다른 글
자바스크립트 마크다운 검색창 만들기 (0) | 2023.09.08 |
---|---|
자바스크립트 이용한 마크다운 자동 목차 만들기 (0) | 2023.09.07 |
JSP 모달창 버튼 출력 조건 (0) | 2023.08.30 |
Node js, Express js - res.render 렌더링 (0) | 2023.08.01 |
JSP hidden 값 실시간 변화 감지(MutationObserver) 적용 및 조건문 (0) | 2023.07.14 |