2023.06.27.화.TIL

heeh·2023년 6월 27일

TIL

목록 보기
30/82
post-thumbnail

Spring 숙련

3-5 후반, 3-6

  • build.gradle
    dependencies {
    	// JWT
    	compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'
    	runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'
    	runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.5'
  • 서버에서 해당 쿠키를 Request 객체에서 찾으면 됨
  • JSON Web Tokens-jnt.io → 토큰을 분석해 볼 수 있는 JWT 사이트(알고리즘 선택)
  • Util Class는, Util은 특정한 매개변수 혹은 parameter에 대한 어떠한 작업을 수행하는 메서드들이 존재하는 Class를 뜻함 = 다른 객체에 의존하지 않고 하나의 모듈로써 동작하는 Class
  • JwtUtil = JwtProvider (명명, 크게 상관없음)
  • JWT 데이터(Secret Key 만들기) → JWT 생성 → 생성된 JWT를 Cookie에 저장 → Cookie에 들어있던 JWT Token을 Substring → JWT 검증 → JWT에서 사용자 정보 가져오기
    Substring : 자르다!
  • 생성 완료되면 반환!
    • JWT Token을 Response Header에 보낼 수 있고, Cookie 객체를 만들어서 Token을 담은 다음에 그 Cookie를 Response 객체에 담는 방법도 있음
      → Header에 바로 보내면 Cookie에 담지 않기 때문에 코드가 조금 더 짧아짐
  • Authorization : 키, Value : JWT, Value 값 앞에 ”Bearer “(Bearer 하고 구분하기 위해 한 칸 띄기) 규칙
  • TOJEN_TIME : 토큰의 만료 기한
  • @Value을 사용하여 application.properties의 값을 가져옴
    jwt.secret.key=7Iqk7YyM66W07YOA7L2U65Sp7YG065+9U3ByaW5n6rCV7J2Y7Yqc7YSw7LWc7JuQ67mI7J6F64uI64ukLg==
  • 알고리즘 사용
    private final SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
    • SignatureAlgorithm에 있는 HS256를 사용하겠다는 뜻(ctrl+클릭으로 enum 확인 가능)
  • 로그 설정(로깅) : 애플리케이션이 동작하는 동안 프로젝트의 상태나 어떠한 동작 정보를 시간순으로 기록
    → 기본적으로 적용 가능
  • @PostConstruct : 딱 한 번만 받아 오면 되는 값을 사용할 때 마다 요청을 새로 호출하는 실수를 방지하기 위해서 사용
  • 오류 : URLEncoder - Java.net 선택해주기
  • 토큰 검증
    Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(token);
                return true;
    • 위변조, 만료 등 추가 검증
  • @Component : 필요한 곳에 사용할 수 있게끔 Been으로 등록
  • Been 가져오는 방법 : private final 클래스 클래스명
  • @RequiredArgsConstructor : 생성자 관련
  • error updating changes detected …
profile
공부하자개발하자으쌰으쌰

0개의 댓글