springboot 82

YML파일 이해하기

YML파일 이해하기 음료 공장을 만드는 기술자 1. 두 번째 공장 2. 공장 입구는 서쪽 3. 음료 요청은 전부 한글 문서로 변경해서 받는다. 4. 음료는 전부 콜라로 만들어서 출시된다. 5. 음료 총고는 컨테이너 박스를 사용한다. 6. 음료는 요청에 따라 페트병, 캔, 병으로 출시된다. 7. 공장이 재가동 될때 기존에 만들어졌던 음료는 버리지 않는다. 8. 음료 요청 시 A4용지 2장 이상의 문서는 받지 않는다. 9. 음료 요청은 아무나 할 수 없다. 암호를 아는 사람만 요청한다. 이런 문서와 규칙에따라서 기술자는 음료공장을 만들듯이 스프링 프레임워크에서 YML파일이란? 스프링 프레임워크로 공장을 만들 것인데 이 공장을 만들기 위한 문서다. 스프링 프레임워크 서버가 만들어질 때 스프링에서 이 YML파일..

Springboot 2021.12.09

SpringbootSecurity/JWT 사용한 로그인(1)

이번 포스팅은 저번 포스팅과 연결돼 있습니다. 저번에는 가장의 토큰을 JWT라고 가정을 하고 테스트를 해보았고 이제는 진짜 JWT를 구현해서 회원가입과 로그인을 진행하는 포스팅이 될 것 같습니다. 기본적으로 SpringbootSecurity서버는 Security를 통한 로그인과 회원가입이 이루어져야하기때문에 설정들을 다뤄줍니다. 왜 이렇게 하는지에 대한 내용은 자세한 내용은 이전 OAuth로그인포스팅에 자세히 나와있습니다. 왜 이렇게 하는지에 대한 설명은 이전 Seucurity포스팅에 다 담겨있습니다!. 그럼 위와같은 Service가 언제 동작을 하냐면 /login으로 요청이 들어오면 Service가 동작을 한다. 왜냐하면 SpringSecurity가 기본적인 login주소가 /login이기 때문이다. ..

SpringbootSecurity 2021.10.01

SpringbootSecurity/JWT Filter 등록 테스트

이번 포스팅은 저번 포스팅과 연결된 포스팅입니다. 이번 포스팅에서는 저번에 작업하던 JWT서버 만드는 프로젝트에서 필터를 하나 만들어 보겠습니다. MyFilter1이라는 클래스를 만들어서 아래와 같이 필터의 역할을 하는 파일을 만들었다. 그리고 SecurityConfig에서 Security설정을 위와 같이 해주는 방법도 있지만 굳이 그렇게 하는 것보다 좀 더 효율적인 방법이 있다. 필터 설정을 해주는 클래스를 하나 더 만드는 것이다. 위와 같이 등록돼있으면 필터가 잘 작동한다. setOrder는 필터가 실행되는 순서를 설정하는 것이다. 위와 같이 하나의 필터를 더 만들어서 실행을 해보면 setOrder의 설정 순서대로 작동하는 것을 알 수 있다. 그럼 위와 같은 방식의 filter와 SecurityCon..

SpringbootSecurity 2021.09.28

SpringbootSecurity/JWT Bearer 인증방식

JWT Bearer인증방식에 대해서 포스팅을 하겠습니다. 본 포스팅은 저번 포스팅과 연결돼있습니다. http.csrf.disable설정의 의미는 기본적으로 웹서버에서는 자바스크립트의 공격을 방어하기 위해서 크로스 오리진정첵을 운영하고 있는데 그 설정을 없앤다는 것이다. 바로 밑에 http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) 는 Stateless를 사용한다는 것은 session을 사용하지 않겠다는 것이다. 기본적인 웹은 stateless를 사용하는데 statfull처럼 느껴지도록 session과 cookie를 사용하는데 jwt서버는 session을 사용하지 않기 때문에 사용하지 않도록 설정해 준 것이다. fo..

SpringbootSecurity 2021.09.23

SpringbootSecurity/JWT를 위한 Security설정

지금 현제 하고 있는 프로젝트는 Security를 기반으로 만들어졌기 때문에 JWT를 위한 Security설정을 해보겠다. 모델을 하나 만든다. 이제 yml설정에서 create로 바꿔주고 db에 테이블을 하나 만들면 된다. Security설정 기본적으로 Seicurity설정은 다음과 같이 해준다. 그리고 몇가지 설정을 추가적으로 더 해줘야 한다. 서버 설정 추가 corsFilter는 SpringFramwork가 들고 있는 함수를 사용한다. /api/로 들어오는 모든 주소는 이 config설정을 따라라고 설정을 해주고 return 해준다. 그리고 위와 같이 걸기만 하면 의미가 없고 filter에 등록을 해줘야 한다. 다시 SecurityConfig클래스로 가서 Security설정을 만져 준다. 이렇게 시큐..

SpringbootSecurity 2021.09.07

SpringbootSecurity/JWT 프로젝트 세팅 (yml설정포함)

이제 드디어 JWT서버를 만들어보는 프로젝트를 만들어 본다. https://mvnrepository.com/ mvnrepository에서 JWT를 사용하기 편리하게 해주는 라이브러리를 다운로드한다. 이 라이브러리를 쓰면 base64로 인코딩 디코딩 작업과 HS256으로 암호화는 작업을 직접 해야 하는데 아주 간편하게 해 준다. 이 라이브러리까지 porm.xml에 추가해주면 기본적인 프로젝트 수정은 끝났다. yml설정 server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: ..

SpringbootSecurity 2021.09.07

SpringbootSecurity/JWT구조에 대한 이해

https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 저번 포스팅에선 RFC문서가 뭔지에 대해서 이해를 했으니 이제 JWT가 뭔지 자세히 알아보자. JSON웹 토큰이란?(JWT) JSON웹 토큰은 JSON객체로 안전하게 정보를 전송하기 위한 방식이다. 이 정보는 디지털 서명이 되어 있으므로 신뢰할 수 있다. JWT는 HMAC알고리즘 또는 RSA를 사용한다. JWT를 암호화하여 당사자간에 비밀을 제공 할 수도 있지만 이 JWT의 핵심은 서명된 토큰에 중점을 둔 것이다. 즉 서명의 용도로 사용을 하는 ..

SpringbootSecurity 2021.09.04

SpringbootSecurity/Springboot로 네이버 로그인 해보기 (yml에서 provider 설정하기)

저번 포스팅에서 이어갑니다. provider OAuth2-Client라는 라이브러리를 사용하고 있는데 OAuthClient를 재공해 주는 provider 있는데 Spring은 구글, 페이스북, 트위터 등등을 제공해준다. 그럼 당연히 네이버나 카카오같은 각 나라마다의 포털사이트를 Spring을 다 제공해주기엔 너무 많기 때문에 대표적인 것만 있는 것이다. 그럼 이런 각 나라마다 포털사이트의 api를 사용하려면 그 포털사이트의 문서를 봐야 사용할 수 있다. 그럼 naverAPI를 받아오기 전에 yml설정부터 하면서 이해해야할 개념이 있다. 기본적으로 스프링 시큐리티가 OAuth2로그인을 사용할 때 OAuth2를 사용하기 위한 여러 가지 방식이 있다. Code방식 Client CredentialGrantTyp..

SpringbootSecurity 2021.09.01

SpringbootSecurity/Springboot로 페이스북 로그인 해보기

https://developers.facebook.com/?locale=ko_KR Facebook for Developers iOS 14에 대비한 파트너 준비 사항: Facebook 광고에 영향을 미칠 Apple iOS 14 요구 사항에 대해 자세히 알아보세요. FACEBOOK으로 빌드하기 Facebook의 추천 플랫폼으로 고객과 소통하고 효율을 높여보세요 developers.facebook.com 위 사이트에 들어가서 로그인을 한다. 로그인하면 상단 해더에 '내 앱'이라는 카테고리가 있는데 거기로 들어가서 앱을 아래와 같이 만든다. 시작하기 전에 기본적인 oauth로그인에 대한 코드나 내용은 이전 포스팅인 구글로그인편을 해 보고 오셔야 해당 포스팅을 이해하실 수 있습니다. 앱을 만들고 로그인 기능을 추..

SpringbootSecurity 2021.08.31