카페인부족
close
프로필 배경
프로필 로고

카페인부족

  • 분류 전체보기
    • Front-End
      • React
      • HTML & CSS
      • Front-End 지식
    • Back-End
      • JAVA
      • Golang
      • HTTP
      • Nest.js
      • 기타
    • Errors
    • etc
JwtToken 심화과정

JwtToken 심화과정

암호화 방식에 대해서 Jwt Token 방식을 사용하고있었는데, (Spring으로 Jwt Token값 생성하는 방법은 여기)이 Jwt Token은 https://jwt.io/ 사이트에 들어가면 토큰의 값을 확인할 수 있다.처음에는 암호화되서 프론트에 준 값인데 왜 값조회가 가능하지.. 그러면 암호화의 의미가 없지않나? 하는 의문이 들었었다. JWT 구조 파악Jwt의 값은 Header, Payload, Signature로 나뉜다. 이중에서 Payload는 넣고자 하는 실제 데이터부분인데, Payload는 단순히 Base64 인코딩되어있기때문에 Base64 디코딩으로 간단하게 값을 확인할 수 있다. 그리고 서버에서 갖고있는 key값으로 이 값들의 안정성을 보증하는게 Signature라고 볼수 있다.그래서 P..

  • format_list_bulleted Back-End/JAVA
  • · 2024. 12. 12.
  • textsms
Spring 프로젝트 시작하기 - 로그편

Spring 프로젝트 시작하기 - 로그편

로그를 개조해보겠다.1. log4j2 라이브러리 추가dependencies { ... // log4j2 implementation 'org.springframework.boot:spring-boot-starter-log4j2' testImplementation 'org.springframework.boot:spring-boot-starter-log4j2'}  2. log4j2 로그 양식규정해당 xml 파일은 /src/main/resources/log4j2.xml 경로에 생성했다. stock %d{yyyy-MM-dd HH:mm:ss.SSSS} [%t] %highlight{%-6p}{FATAL=bg_red, ERROR=red, WARN=yellow, INFO=gr..

  • format_list_bulleted Back-End/JAVA
  • · 2024. 12. 11.
  • textsms

[JAVA] SXSSF 엑셀파일 전송 API

/** * 엑셀 다운로드 구현 */ private void createExcelDownloadResponse(HttpServletResponse response, List> ListData, String fileName) { try (SXSSFWorkbook workbook = new SXSSFWorkbook(100); OutputStream out = response.getOutputStream()) { SXSSFSheet sheet = workbook.createSheet("sheetName"); // 헤더 생성 SXSSFRow headerRow = sheet.createRow(0); // ..

  • format_list_bulleted Back-End/JAVA
  • · 2024. 11. 20.
  • textsms
Spring 프로젝트 시작하기 - 로그인편

Spring 프로젝트 시작하기 - 로그인편

로그인은 간단하게 ID, PW를 확인하고 OK 해주면 될것같지만 생각보다 처리해주어야할부분이 많다.큰산 하나인 토큰을 발급하는부분은 이전에 다루었으니 제외하고 설명해보겠다. AuthController@Slf4j@RequestMapping("/auth")@RestController@RequiredArgsConstructorpublic class AuthController { private final JwtProvider jwtProvider; private final AuthService authService; /** * 로그인 * * @return 멤버 리스트 * GET /auth/login */ @ExcludeAuth @PostMapping..

  • format_list_bulleted Back-End/JAVA
  • · 2024. 11. 19.
  • textsms
Spring 프로젝트 시작하기 - 보안 ) Access Token과 Refresh Token

Spring 프로젝트 시작하기 - 보안 ) Access Token과 Refresh Token

지난시간에 Jwt Token을 쿠키로 발급해주었다. 해당 로직으로 토큰을 발급해주고나면 유효시간 이후에는 만료되어 사용할 수 없다.그런데 이 토큰의 만료시간이 짧으면, 사용자가 로그인을 너무 자주 해야하는 문제가 있고,기간이 길면 Token을 갈취해서 악용될 여지가 있다. 이런 단점을 보완하기 위해서 Refresh Token이라는 개념이 사용된다. Access Token을 짧게, Refresh Token을 길게 기간을 지정하고,Access Token이 만료되었을때 Refresh Token이 유효하면 Token을 다시 발급한다.서비스에 따라서 노란부분(Refresh 유효, Access 만료)에서 로직을 선택할 수 있다.A. Access 토큰만 재발급한다 : 최초 로그인부터 Refresh 토큰의 유효기간이 ..

  • format_list_bulleted Back-End/JAVA
  • · 2024. 11. 18.
  • textsms
Spring 프로젝트 시작하기 - 보안 ) Jwt Token 쿠키 예외처리

Spring 프로젝트 시작하기 - 보안 ) Jwt Token 쿠키 예외처리

쿠키 검증로직까지 만들었다면 한가지 난감한 상황이 생긴다. 로그인을 할때도 토큰검증을 해버린다는것..Interceptor는 별다른 처리가 없을때는 전체 API를 대상으로 동작하기 때문에 이런경우는 제외시켜주어야 한다. 이를 Custom Annotation으로 해결해보겠다. ExcludeAuth/* 인증예외 어노테이션 생성 (AuthIntercepter에서 예외처리) */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface ExcludeAuth {}ExcludeAuth라는 이름의 annotation을 만들어줬다. TokenAuthInterceptor@Slf4j@Componentpublic class TokenAuthI..

  • format_list_bulleted Back-End/JAVA
  • · 2024. 11. 15.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
카테고리
  • 분류 전체보기
    • Front-End
      • React
      • HTML & CSS
      • Front-End 지식
    • Back-End
      • JAVA
      • Golang
      • HTTP
      • Nest.js
      • 기타
    • Errors
    • etc
방문자

Today :
Yesterday :
최근 글
인기 글
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바