카테고리 없음

JWT Authentication 객체

Ark B 2024. 11. 12. 10:58

1. principal

의미 : 현재 인증된 사용자의 주요 정보입니다.

일반적으로 포함되는 값 : 사용자 이름, 사용자 ID, 또는 사용자에 대한 식별 정보입니다.

UserDetails 인터페이스를 구현한 객체나 간단한 String으로 나타낼 수 있다. 

예시 : CustomUserDetails를 통해 사용자의 ID, 이메일 , 닉네임 등 구체적인 정보가 담길 수 있다.

 

2. credentials

의미 : 인증에 사용되는 자격 증명이다.

일반적으로 포함되는 값 : 비밀번호, JWT 토큰 등으로 표현된다. 하지만 인증이 완료되면 보안을 위해 보통 null로 설정된다. 로그인 시 비밀번호가 설정되거나 , JWT 토큰을 통해 인증할 때 JWT가 저장될 수 있다.

 

3. authorities

의미 : 사용자가 가진 권한 목록이다.

일반적으로 포함되는 값 : GrantedAuthority 타입의 리스트로 , 사용자가 가진 역할(Role)이나 권한(Permission)정보가 들어간다.

예시 : ROLE_USER, ROLE_ADMIN 같은 역할이 포함될 수 있다. Spring Security는 이를 통해 접근 제어를 처리함.

 

4. details

의미 : 추가적인 인증 세부 정보이다. 인증 과정에서 제공될 수 있는 부가적인 정보로, 클라이언트 IP 주소나 세션 ID 같은 정보가 담길 수 있다.

일반적으로 포함되는 값 : WebAuthenticaitonDetails 같은 객체로 요청한 사용자의 IP 주소, 세션 정보등이 포함될 수 있다.

로그인 시 사용자의 IP 주소와 세션 ID가 포함되어 보안 로그나 감사를 위한 정보를 제공한다.

 

5. authenticated

 

  • 의미: 인증 여부를 나타내는 boolean 값입니다.
  • 일반적으로 포함되는 값: true 또는 false로 설정되며, Spring Security는 이 값이 true일 때만 인증된 사용자로 간주하여 보호된 자원에 접근을 허용합니다.
  • 예시: 인증이 성공적으로 완료되면 true로 설정되며, 인증되지 않은 상태에서는 false로 남아 있습니다.