분류 전체보기
-
스택 구현자료구조 2022. 3. 29. 14:31
public class Stack { private int ptr; private int max; private int[] stk; public class EmptyStackException extends RuntimeException { } public class OverflowStackException extends RuntimeException { } public Stack(int capacity) { ptr = 0; max = capacity; try { stk = new int[max]; }catch (OutOfMemoryError e) { max = 0; } } public int push(int x) throws OverflowStackException { if (ptr >= max) thr..
-
Access token으로 사용자 정보 가져오기SOLUX-완숙이 2022. 1. 28. 17:49
댓글과 멤버 클래스를 N:1 연관관계로 설정하면서 댓글을 작성했을 때 따로 프론트에서 로그인 정보를 받지 않아도 헤더에 있는 access token으로 로그인 된 사용자의 정보를 가져와 자동으로 댓글의 작성자를 설정해주는 코드를 구현해봤다. 또, 댓글을 저장하면서 어떤 게시글의 댓글인지 정보를 받아 연관 관계를 맺는 코드도 구현했다. 1. Comment 클래스 import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import solux.wansuki.OurNeighbor_BE.domain.Gathering.Gathering; i..
-
spring boot 파일, 이미지 조회(multipartfile)SOLUX-완숙이 2022. 1. 25. 14:57
2022.01.25 - [SOLUX-완숙이] - spring boot 파일, 이미지 업로드(multipartfile) spring boot 파일, 이미지 업로드(multipartfile) 게시판을 만들 때 필수적인 사진 저장 코드를 구현해봤다. 1. application.properties #Multipart file spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=200MB spring.servlet.mul.. leeeehhjj.tistory.com 1. build.gradle implementation 'commons-io:commons-io:2.6' 2. PhotoController @CrossOrigin @R..
-
spring boot 파일, 이미지 업로드(multipartfile)SOLUX-완숙이 2022. 1. 25. 13:23
게시판을 만들 때 필수적인 사진 저장 코드를 구현해봤다. 1. application.properties #Multipart file spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-request-size=215MB 2. Photo 클래스 import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import solux.wansuki.OurNeighbor_BE.domain.UsedGoo..
-
spring security+jwt 회원가입, 로그인 #4SOLUX-완숙이 2022. 1. 23. 15:10
2022.01.17 - [SOLUX-완숙이] - spring security+jwt 회원가입, 로그인 #3 spring security+jwt 회원가입, 로그인 #3 2022.01.12 - [SOLUX-완숙이] - spring security+jwt 회원가입, 로그인 #2 spring security+jwt 회원가입, 로그인 #2 2022.01.12 - [SOLUX-완숙이] - spring security+jwt 회원가입, 로그인 #1 spring security+jw.. leeeehhjj.tistory.com Access token에는 사용자의 정보가 들어있기 때문에 보안에 취약하다. 따라서 access token의 유효 기간은 짧게 하고, 사용자의 정보가 들어있지 않은 refresh token이라는 ..
-
spring security+jwt 회원가입, 로그인 #3SOLUX-완숙이 2022. 1. 17. 15:07
2022.01.12 - [SOLUX-완숙이] - spring security+jwt 회원가입, 로그인 #2 spring security+jwt 회원가입, 로그인 #2 2022.01.12 - [SOLUX-완숙이] - spring security+jwt 회원가입, 로그인 #1 spring security+jwt 회원가입, 로그인 #1 security 적용 전 회원가입 코드 1. Member 클래스 package solux.wansuki.OurNeighbor_BE.dom.. leeeehhjj.tistory.com JWT 를 활용해서 AccessToken과 RefreshToken을 발급하고, 프론트에서 헤더에 access token을 붙여 보내면 이를 검증하여 권한에 따라 접근을 허용해주는 코드이다. 1. Me..
-
JWT(Json Web Token)SOLUX-완숙이 2022. 1. 17. 14:44
JWT 구조 JSON 형태인 각 부분을 Base64로 인코딩하고 . 을 사용해 구분하여 표현한다. 1) 헤더 typ, alg 두 가지 정보로 구성됨. typ: 토큰의 타입을 지정 ex) JWT alg: 알고리즘 방식을 지정하며, 서명(Signature) 및 토큰 검증에 사용 ex) HS256(SHA256) 또는 RSA { "alg": "HS256", "typ": JWT } 2) PayLoad 토큰에 담을 정보를 Claim이라는 Json 형태의 조각들로 payLoad에 넣어준다. 클레임의 종류에는 3가지가 있다. registered 클레임 public 클레임 private 클레임 1. registered 클레임 iss: 토큰 발급자(issuer) sub: 토큰 제목(subject) aud: 토큰 대상자(a..
-
jwt signWith deprecated 오류SOLUX-완숙이 2022. 1. 13. 14:48
String key; public JwtTokenProvider(@Value("${jwt.secret}") String secretKey) { key = Base64.getEncoder().encodeToString(secretKey.getBytes()); } public TokenInfoResponseDto generateToken(Authentication authentication) { ... //AccessToken 생성 Date accessTokenExpiresIn = new Date(now + ACCESS_TOKEN_EXPIRE_TIME); String accessToken = Jwts.builder() .setSubject(authentication.getName()) .claim(AUTHO..