카테고리 없음
JWT 인증 인가를 공부하다가 생긴 궁금증들 해결하기
Mon Groy
2024. 9. 4. 13:16
JWT 를 공부하면서
HttpServletResponse 로 반환하는 것과 Dto로 반환하는 것의 차이에 대해 궁금증이 생겼다
여태 API를 작성할 때는 Entity로 응답했는데
쿠키를 반환할때는 HttpServletresponse 를 이용하여 응답하니까 정확한 차이가 궁금해 졌던 것
그러다가
Dto 로 반환하도록 설계하기도 한다는 사실을 처음 알게되었다
대신 어노테이션을 사용하며, 200 OK 인 경우에는 생략한다는 사실도.
만약 컨트롤러에서 뷰 생성까지 맡은 경우에는 모델에 데이터를 담아서 뷰를 생성한다
프론트에서(클라이언트) 뷰를 생성하는 경우에는 컨트롤러에서 HttpServletResponse에 데이터를 담아 보낸다
<참고>
https://yeonyeon.tistory.com/257
Authentication 인터페이스를 구현한 클래스는
UsernamePasswordAuthenticationToken 말고 또 다른게 있는 걸까?
1. PreAuthenticatedAuthenticationToken
- 사용 예: 이미 인증된 사용자를 나타낼 때 사용합니다. 예를 들어, 인증된 요청의 헤더에서 사용자 정보를 가져오는 경우.
- 설명: 이 클래스는 자격 증명 없이도 사용자 정보를 포함할 수 있으며, 주로 이미 신뢰된 시스템에서 인증된 사용자를 처리할 때 사용됩니다.
2. RememberMeAuthenticationToken
- 사용 예: "Remember Me" 기능을 사용할 때 사용됩니다.
- 설명: 사용자가 로그인할 때 "Remember Me" 옵션을 선택하면, 세션이 종료된 후에도 다시 로그인할 필요 없이 인증이 유지됩니다. 이 클래스는 그와 관련된 인증을 나타냅니다.
3. AnonymousAuthenticationToken
- 사용 예: 익명 사용자(인증되지 않은 사용자)에 대한 인증을 나타낼 때 사용됩니다.
- 설명: 인증되지 않은 사용자가 애플리케이션에 접근할 때 사용됩니다. 이 클래스는 기본적으로 "익명 사용자"의 권한을 설정하고 처리합니다.
4. OAuth2AuthenticationToken
- 사용 예: OAuth 2.0 인증을 사용할 때 사용됩니다.
- 설명: OAuth 2.0 프로토콜을 사용해 인증된 사용자 정보를 담고 있습니다. 소셜 로그인이나 외부 인증 제공자(Google, Facebook 등)를 통해 인증된 사용자에 대해 사용됩니다.
5. JwtAuthenticationToken (사용자가 정의할 수 있음)
- 사용 예: JWT (JSON Web Token)를 사용한 인증에서 사용됩니다.
- 설명: Spring Security 자체에서 제공되는 클래스는 아니지만, JWT 기반 인증을 구현할 때 커스텀 클래스로 만들어 사용할 수 있습니다. JWT를 파싱한 후 인증된 사용자 정보를 담는 데 사용됩니다.
6. X509AuthenticationToken
- 사용 예: X.509 인증서를 통한 인증에서 사용됩니다.
- 설명: 주로 HTTPS 클라이언트 인증에서 사용되는 X.509 인증서를 기반으로 사용자 인증을 처리합니다.
7. TestingAuthenticationToken
- 사용 예: 테스트 환경에서 사용되는 인증 객체입니다.
- 설명: 실제로 사용되지 않지만, 테스트 시 인증 관련 로직을 테스트할 때 유용하게 사용할 수 있는 임시 인증 객체입니다.
확실히 프로젝트를 하고난 이후라서 그런지
같은 강의를 보는 건데도 이해가 조금 더 되는 듯한 기분이라
다행이라고 생각했다