JWT 테스트

tokkaiiii·2025년 6월 23일

스프링테스트

목록 보기
8/9

JWT(JSON Web Token) 구조

  • 점(.)으로 구분된 다음 순차적인 세 개의 Base64URL 인코딩된 문자열로 구성
  1. 헤더
  2. 페이로드
  3. 서명
String jwt = "ey...";
// 문자열 분해해서 요소 3개인지 검사
assertThat(actual).satisfies(s->{
	String[] parts = s.split("\\.");
    assertThat(parts).hasSize(3);
    // 헤더가 base64인코딩된 json문서인지 확인
    assertThat(parts[0]).matches(s1 ->{
    	new ObjectMapper().readTree(Base64.getUrlDecoder().decode(s1));
    })
    // 페이로드
   assertThat(parts[1]).matches(s1 ->{
    	new ObjectMapper().readTree(Base64.getUrlDecoder().decode(s1));
    }) 
    // 서명은 base64인코딩 여부만
    assertThat(parts[2]).matches(s1 ->{
    	Base64.getUrlDecoder().decode(s1);
    })
  })

jwt만들기

Jwts
	.builder()
    // 서명, 인코딩 알고리즘도 함께
    .signWith(new SecretKeySpec(jwtSecret.getBytes(),"HmacSHA256"))
    .compact()
profile
풀스택 자바 개발자입니다

0개의 댓글