728x90

jwt 5

[JWT] Illegal base64url character: ' ' 오류

Postman의 Authorization 탭에서 Type을 Bearer Token으로 설정한 뒤 Token을 입력하고 정상적으로 동작했던 API를 테스트 해보았는데 오류가 발생하였다. 인텔리제이 로그에서는 Illegal base64url character: ' ' 에러로그 메시지가 출력되었다. 에러 로그의 이유는 토큰값을 분해할 때 Base64 형식으로 decode 된 secret key를 사용하여 토큰을 분해하게 되는데, 그 과정에서 오류가 발생하는 것 같다(Base64 형식은 ' '(공백) 을 인식할 수 없다는 것이 이유). 해결 - Postman에서 API 요청할 때, Authorization 탭 대신 Headers 탭에서 Key 컬럼에 Authorization을 입력하고 Value 컬럼에 로그인에..

JWT 인증 2023.08.21

7) JWT(JSON Web Token) 설정

아래 내용은 https://github.com/beaver84/setting-test 에서 실제 소스를 확인할 수 있습니다. JWT(JSON Web Token)는 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방법을 정의하는 개방형 표준( RFC 7519 )입니다. JWT는 비밀( HMAC 알고리즘 포함) 또는 RSA 또는 ECDSA를 사용하는 공개/개인 키 쌍을 사용하여 서명할 수 있습니다. 공개/개인 키 쌍을 사용하여 토큰에 서명할 때 서명은 개인 키를 보유한 당사자만이 서명한 당사자임을 인증합니다.(세션, 쿠키 기반 인증과 차이) 권한 부여 : JWT를 사용하는 가장 일반적인 시나리오입니다. Single Sign On은 오버헤드가 적고 다양한 도메인에서 쉽게 사용할 수..

Spring/Security 2023.04.18

JWT 초기 설정

프로젝트 생성 자바 버전은 11로 하였고 아래의 Dependencies를 추가해줍니다. Spring Web Spring Security Spring Data JPA H2 Database Lombok Validation 테스트 컨트롤러 생성 해당 프로젝트가 잘 작동하는지 테스트 하는 컨트롤러를 만들어줍니다. @RestController @RequestMapping("/api") public class HelloController { @GetMapping("/hello") public ResponseEntity hello(){ return ResponseEntity.ok("hello"); } } Postman으로 GET요청을 했을때 401인증오류가 뜨는 것을 볼수 있습니다. SecurityConfig를 생성..

JWT 인증 2022.09.16

GSON 라이브러리에 대해(편리한 JSON 변환에 관해)

GSON 라이브러리란? Gson은 Java에서 Json을 파싱하고, 생성하기 위해 사용되는 구글에서 개발한 오픈소스입니다. Java Object를 Json 문자열로 변환할 수 있고, Json 문자열을 Java Object로 변환할 수 있습니다. Gson 라이브러리 추가하기 Maven 에 설정 추가 JSON 파싱에 사용할 json-simple 라이브러리를 추가하기 위해 pom.xml 파일에 아래와 같이 dependency를 추가합니다. com.google.code.gson gson 2.8.7 Object -> Json 변환하기 Student 클래스 public class Student { private int id; private String name; public Student(int id, String..

JAVA 2022.09.15

access token과 refresh token 의 차이(feat. JWT 인증)

access token과 refresh token을 설명하기 전에 token이란 무엇인지 왜 사용하는지에 대해서 먼저 알아보자. JWT(Json Web Token) jwt는 header와 payload, signature 세 파트로 구성되어 있으며 각파트는 점으로 구분되어 1111111111.2222222222.3333333333 header(적색).payload(청색).signature(녹색) 의 형태로 표현됩니다. header header에는 토큰의 타입과 암호화 알고리즘이 포함되어 있다. 타입은 jwt를 나타내고 있으며, 암호화 알고리즘은 SHA256, RSA와 같은 해시 알고리즘을 나타낸다. payload 토큰에 담을 claim 정보를 담고 있습니다. 저의 생각대로 쉽게 말하면 정보를 포함한 ke..

JWT 인증 2022.07.16
728x90