[Java]Spring Security(With TDD) JWT 라이브러리 활용해서 간편하게 구현하기

도입 지난 포스팅 [Java]Spring Security WebMVC 기본 구조 [Java]Spring Security 예외처리, 캐싱, 로깅 [Java]Spring Security 인증(Authentication)과 인가(Authorization) [Java]Spring Security(With TDD) 기본 인증 및 인가 구현하기 [Java]Spring Security(With TDD) JWT 직접 구현하기 저번 시간에는 JWT의 인증 필터를 직접 구현해서 인증 로직을 완성했습니다. 이번 시간에는 Spring에서 제공하는 oauth2-resource-server 라이브러리를 통해 동일한 인증 로직을 구현해보겠습니다. 설계 요구사항 분석 요구 사항은 지난 포스트와 동일합니다. 로그인 실패 시 jwt를 발행하지 않는다. 정상 로그인 시 jwt를 발행한다.(Happy Case) 잘못된 jwt로 인증할 수 없다. 권한이 부족한 jwt에 인가할 수 없다. 정상적인 jwt로 특정 권한의 api를 사용할 수 있다.(Happy Case) 통합 테스트 통합 테스트도 지난 시간에 사용한 것을 그대로 사용하겠습니다. ...

2024. 12. 14. · 6 분 · 1146 단어 · Leaf

[Java]Spring Security(With TDD) JWT 직접 구현하기

도입 지난 포스팅 [Java]Spring Security WebMVC 기본 구조 [Java]Spring Security 예외처리, 캐싱, 로깅 [Java]Spring Security 인증(Authentication)과 인가(Authorization) [Java]Spring Security(With TDD) 기본 인증 및 인가 구현하기 지금까지 Spring Security의 기본 개념을 학습하고, 기본 인증 및 인가를 구현했습니다. 이번 시간에는 JWT의 기본 개념을 익히고, 프로젝트의 인증 및 인가 로직에 활용해보겠습니다. JWT JWT는 JSON Web Token의 준말로 RFC 7519 명세에 정의된 토큰입니다. 위 명세에 따르면, JWT는 다음과 같이 정의할 수 있습니다. JSON Web Token (JWT)는 두 당사자 간에 전송되는 클레임(claims)을 표현하기 위한 간결하고 URL에 안전한 수단입니다. JWT의 클레임은 JSON 객체로 인코딩되며, 이는 JSON Web Signature (JWS) 구조의 페이로드(payload)로 사용되거나 JSON Web Encryption (JWE) 구조의 평문(plaintext)으로 사용됩니다. 이를 통해 클레임은 디지털 서명되거나 메시지 인증 코드(Message Authentication Code, MAC)를 사용하여 무결성이 보호되거나 암호화될 수 있습니다. ...

2024. 12. 9. · 13 분 · 2729 단어 · Leaf