몬그로이

JWT 인증 인가를 공부하다가 생긴 궁금증들 해결하기 본문

카테고리 없음

JWT 인증 인가를 공부하다가 생긴 궁금증들 해결하기

Mon Groy 2024. 9. 4. 13:16

 

JWT 를 공부하면서

HttpServletResponse 로 반환하는 것과 Dto로 반환하는 것의 차이에 대해 궁금증이 생겼다

여태 API를 작성할 때는 Entity로 응답했는데

쿠키를 반환할때는 HttpServletresponse 를 이용하여 응답하니까 정확한 차이가 궁금해 졌던 것

 

그러다가

Dto 로 반환하도록 설계하기도 한다는 사실을 처음 알게되었다

대신 어노테이션을 사용하며, 200 OK 인 경우에는 생략한다는 사실도.

 

만약 컨트롤러에서 뷰 생성까지 맡은 경우에는 모델에 데이터를 담아서 뷰를 생성한다

프론트에서(클라이언트) 뷰를 생성하는 경우에는 컨트롤러에서 HttpServletResponse에 데이터를 담아 보낸다

 

 

<참고>

 

https://yeonyeon.tistory.com/257

 

[Spring] ResponseEntity vs DTO

🤔 서론 🤔 `줍줍` 프로젝트를 진행하며 반환값을 ResponseEntity로 반환하느냐, DTO를 반환하느냐 무엇이 더 좋을까? 에 대한 이야기가 나왔습니다. 이에 대해 다양한 사람들에게 조언을 구했고 많

yeonyeon.tistory.com

https://www.inflearn.com/community/questions/1105992/httpservletresponse%EC%99%80-model%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%B4-%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4

 

HttpServletResponse와 Model의 차이점이 궁금합... - 인프런 | 커뮤니티 질문&답변

누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.

www.inflearn.com

 

 


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

  • 사용 예: 테스트 환경에서 사용되는 인증 객체입니다.
  • 설명: 실제로 사용되지 않지만, 테스트 시 인증 관련 로직을 테스트할 때 유용하게 사용할 수 있는 임시 인증 객체입니다.

확실히 프로젝트를 하고난 이후라서 그런지

같은 강의를 보는 건데도 이해가 조금 더 되는 듯한 기분이라

다행이라고 생각했다