본문 바로가기

Spring boot49

Spring boot (test호출시 sequence diagram) [2] http://localhost:8080/test/를 호출하였을 때 sequence diagram 그리기 유효기간이 지난 Token을 입력할때 유효기간을 빨리 over시키기 위해 기존의 5시간의 유효기간을 JwtTokenUtil에서 5초로 수정. 알맞은 Token은 넣었지만 유효기간이 지남. 알맞은 Token값이 들어오고 if문이 실행된다. getClaimFromToken에서 running이 되고, 마지막으로 "JWT Token has expired" JWT Token이 만료되었다는 예외처리 발생. 마지막 세번째가 유효기간이 지난 Token값을 넣었을 경우이고 sequence diagram으로 나타내면 다음과 같다. 2021. 10. 19.
Spring boot (test호출시 sequence diagram) [1] http://localhost:8080/test/를 호출하였을 때 sequence diagram 그리기 권한은 로그인이 된 상태에서 받아 올 수 있고 적절한 e-mail,password 입력시 token을 받아 온다. 로그인 성공하면 주막위의 긴 문자열이 주어진다. 저장상태에서 test호출, comment호출 member호출을 할 수 있다. 호출(request)할 때 일어날 수 있는 케이스를 4가지로 선정 Token 없이 요청 할때 틀린 Token입력할때 유효기간이 지난 Token을 입력할때 유효한 Token을 입력할때 공통적으로 가장 먼저 타게 되는 요청 : dofilterinternal 네가지 흐름에 따라서 어떻게 들어가는지 알아보았다. 1. 토큰 없이 요청 401 un : 잘못되었닥 리턴 testg.. 2021. 10. 19.
Spring boot (디버깅) Spring bootAPI에서 http://localhost:8080/test/ 호출했을 때 sequence diagram을 그리기 전 분석하기 위하여 디버깅을 하였다. 1. jwtRequestFilter.java에 break point 설정 2. TestController에 break point 설정 3. 서버 구동 3. 로그인 4. 테스트 호출 다음 과정들을 거치며 디버깅을 통한 구조를 파악 후 sequence diagram을 그려볼 예정이다. 2021. 10. 15.
Spring boot (로그인 예제 처리 과정분석) /authenticate 분석 로그인 처리 과정인 /authenticate의 Sequence Diagram 및 분석 Controller, Service, Repository, TokenUtil = 자바 클래스 파일. 녹색박스 : 각각의 클래스 안에 메소드들. 1. 먼저 url에서 /authenticate를 실어서 authenticate을 요청한다. jwtrequest의 body로 e-mail, password가 들어간다. 2. createAuthenticationToken(JwtRequest request)부터 시작 토큰안 코드가 들어있고 실행내용은 이메일,패스워드 메소드를 호출한다. 호출할때 메소드로 이메일, 패스워드가 들어옴 3. jwtuserDtailService 다음으로 Service과정에서의 S.. 2021. 10. 14.
Why Rest API? (왜 rest api를 사용할까) 왜 RestAPI를 사용할까? 결론부터 말하자면 다양한 종류의 client에게 효율적으로 접근하기 위하여 rest API를 사용한다. 현대의 웹 어플리케이션 시스템 (client의 종류가 가지각색이다.) 왼쪽이 FRONT END 오른쪽이 BACK END client는 웹 브라우저 뿐만아니라 모바일 어플리케이션, native앱, mobile web browser (반응형 웹) 등이 될 수 있다. 백앤드(server로부터) 프론트앤드(여러 종류의 클라이언트)에게 보내는 공통적인 데이터 포맷을 만들어야한다. data format의 역할을 하는것이 JSON형태이다. (규격화가 되어 있음) 2021. 10. 13.
Spring boot (회원가입, 로그인 예제 불러와 실행) 분석을 하기전 Spring boot든 다른 웹 어플리케이션이 기본적으로 갖춰야 하는 대표 기능들은 무엇인가? - CRUD (create read update delete) : db와 동기화 (sync=연결=연동) 하기위해 필요한 도구, 시스템, 지식들 (os,was,db,네트워크,브라우저,프로토콜, 등...) 우선 로그인, 회원가입을 분석 하기전 이미 만들어져 있는 예제의 Token 방식의 로그인 예제를 찾아서 돌려보았다. https://sup2is.github.io/2020/03/05/spring-security-login-with-jwt.html Sup2's blog-Spring Security + JWT로 Token기반 Security Login 구현하기 sup2is.github.io 실행을 시켜 .. 2021. 10. 13.
Spring boot (security – login 하기) token 방식으로 로그인을 해 보았다. 우선 설정해야 할것이 몇가지가 있다. 1. 우선 캐시 무효화를 실행한다. 2. 다음의 파일들을 postman에 임포트. SpringbootApi.postman_collection.json SpringbootApi[local].postman_environment.json SpringbootApi.postman_collection.json를 임포트 하면 컬렉션의 request가 추가가 되고, SpringbootApi[local].postman_environment.json를 임포트 하면 Springboot Api 로컬 환경이 추가가 된다. 3. member 테이블 만들고 환경설정 회원테이블인 member테이블을 생성하고 Id에 Auto Increment에 체크 표시를.. 2021. 10. 12.
Spring boot (글 전체 보기 수정) 앞서 글 삭제 기능에 있어서 isDel값이 Y이면 삭제된 글로 지정을 하였다. 글 전체 보기를 할때 삭제가 된 것을 제외한 글만 보기 위하여 글 전체 보기를 수정하였다. 방법은 매우 간단하다. Mapper에서 쿼리만 바꿔 주면 끝. Where을 이용하여 isDel값이N인 값을 찾으면 된다! DBeaver에 가서 Board테이블의 지워진 글을 보면 1,3번째 글이 지워져있다. 그리고 Postman에서 글 전체보기를 해 보니 1,3번째 글이 사라져 있다는것을 볼 수 있다! 2021. 10. 12.
Spring boot ( 글 삭제 기능 비즈니스 로직 추가) 글에 맞는 비밀번호를 일치하게 입력하면 삭제가 되는 기능을 만들어 보았다. 기존의 글 삭제 BoardController.java 기능 추가 후 BoardController.java 우선 53번째줄의 PathVariable외에 다른것도 받아와야 하기 때문에 (Body부분을 사용하기 위하여) RequestBody를 추가 값이 잘 들어오나 log.debug로 체크 해본다. DTO 객체에 password가 있으니, 그대로 쓰는거로 요청값을 들어보내 본다. password가 없을 경우 기능 추가. boardPassword 값이 null이면 password key name을 확인하라는 예외문이 나오도록 반환. 기존의 BoardService.java 기능 추가 후 BoardService.java BoardServic.. 2021. 10. 12.