세션(Session)
세션(Session)은 사용자가 웹 사이트에 로그인했을 때 사용자에 대한 정보를 일정 기간 동안에 서버에 기록하고 보관함으로써 사용자를 관리하기 위한 목적으로 사용되는 저장 공간이다.
세션 정보 확인
1. id 확인하기
String id = SecurityContextHolder.getContext().getAuthentication().getName();
SecurityContextHolder.getContext()
- Spring Security에서 현재 실행 중인 보안 컨텍스트를 제공하는 클래스이다. 이를 통해 현재 사용자의 인증 정보에 접근할 수 있다.
getAuthentication()
- 현재 인증된 사용자의 인증 정보를 반환한다. 이 정보는 Authentication 인터페이스를 구현한 객체로써, 현재 사용자의 자격 증명 및 권한 정보를 포함한다.
getName()
- Authentication 객체에서 사용자의 이름을 반환한다.
SecurityContextHolder.getContext().getAuthentication().getName();
- 사용자의 인증 정보에 접근하여 인증 정보를 반환 후 Authentication 객체에서 사용자의 이름을 반환하는 메서드이다.
2. 권한 확인하기
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
Iterator<? extends GrantedAuthority> iter = authorities.iterator();
GrantedAuthority auth = iter.next();
String role = auth.getAuthority();
Authentication authentication = SecurityContextHolder.getContext().getAuthentication()
- SecurityContextHolder를 사용하여 현재 스레드의 보안 컨텍스트를 가져온다. 그리고 getAuthentication을 호출하여 현재 사용자의 인증 정보를 가져온다.
Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities()
- getAuthorities()를 호출하여 현재 사용자의 권한 목록을 가져온다. 이 메서드는 사용자가 가진 모든 권한을 나타내는 GrantedAuthority 객체의 컬렉션을 반환한다.
Iterator<? extends GrantedAuthority> iter = authorities.iterator()
- authorities 컬렉션에 대한 반복자를 얻는다.
GrantedAuthority auth = iter.next()
- iter.next() 반복자를 사용하여 다음 권한(GrantedAuthority)을 가져온다. 보통 사용자는 여러 권한을 가질 수 있지만 이 코드에서는 첫 번째 권한만 가져온다.
String role = auth.getAuthority()
- getAuthority 메서드를 사용하여 현재 권한의 문자열 표현을 가져온다.
결과
1. test 아이디로 로그인
2. 결과
'🌠Development > SpringBoot' 카테고리의 다른 글
[Spring Security] 10 - csrf enable 설정 방법 (0) | 2024.02.26 |
---|---|
[Spring Security] 09 - 세션 설정 (0) | 2024.02.26 |
[Spring Security] 07 - 로그인 검증 로직 (0) | 2024.02.22 |
[Spring Security] 06 - 회원가입 로직 (0) | 2024.02.21 |
[Spring Security] 05 - BCrypt 암호화 메서드 (0) | 2024.02.21 |