취업 준비/Spring security

1. 동일 출처 정책과 CORS https://velog.io/@hoo00nn/CORSCross-Origin-Resource-Sharing-%EB%9E%80 CORS(Cross-Origin-Resource Sharing) 란? CORS 란? CORS는 Cross-Origin Resource Sharing의 약자이다. 브라우저에서 다른 출처의 리소스를 공유하는 방법이다. 아래의 CORS policy 오류 메시지는 CORS 정책을 위반할 때 발생한다. URL 구조 출처를 알기 velog.io 우린 CORS를 써먹어야 하기 때문에 제한을 다 풀어준다.(라고 이해했음... 맞나?) CorsConfig 작성 package com.pure.jwt.config; import org.springframework.con..
1. MySQL에서 jwt database 만들기 2. mvnrepository에서 java jwt 가져오기 com.auth0 java-jwt 3.18.2 3. application.yml 작성 server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/jwt?serverTimezone=Asia/Seoul username: pure password: pure1234 jpa: hibernate: ddl-auto: create ..
https://youtu.be/tosLBcAX1vk 1. 쿠키 먼저 쿠키를 알아야 함. 최초 요청시 쿠키를 브라우저에 저장하게 함. 쿠키에는 인증 정보랑 설정 정보가 같이 들어있음. 이제 같은 서버에 다시 요청할 때는 쿠키를 함께 보냄. 그러면 서버가 너 지난번에 왔던 애구나 알아보고 쿠키에 맞게 응답해줌. 2. Stateless? Stateless 서버는 메모리가 없음. 요청 간의 연결이 없음. 서버는 요청을 한 번 처리해주면 끝임. 요청한 클라이언트를 잊어버림. 3. Session Stateless 서버에게 요청할 때 내가 지난 번에 왔던 애라는 걸 알려주기 위한 것이 Session임. 예를 들어 pure라는 계정으로 가입을 해서 서버 session db에 pure가 등록이 되었다면 응답할 때 이걸 ..
RSA 방식에선 암호화 방식이 공개키와 개인키라는 한 쌍으로 존재하고 공개키로 암호화한 것은 개인키로 풀어서 봐야 하고 개인키로 암호화한 것은 공개키로 열어볼 수 있다. A --> B 로 데이터를 전달한다고 해보자. A는 보낼 데이터를 1차로 B의 공개키로 암호화하고 B의 공개키로 암호화된 데이터를 A의 개인키로 2차로 암호화한 다음 보낸다. B는 A의 공개키로 받은 데이터를 열어본다. 이 때 열리면 A가 보낸 것이 인증되는 것이고 열리지 않으면 A가 보낸 게 아니라는 뜻이 된다. A가 보낸 것이 맞으면 B는 자신의 개인키로 해독해서 데이터를 받을 수 있다. 이렇게 하면 A가 보냈다는 것도 인증이 되고(전자서명) 중간에 데이터를 타인이 낚아챌수도 없다.(암호화) 이렇듯 RSA는 두 가지 보안 문제를 해결..
OSI 7계층 - 응용 계층 - 프리젠테이션 - 세션 - 트랜스포트 TCP/UDP - 네트워크 IP - 데이터링크 - 물리 보낼 때는 위에서 아래로 / 받을 때는 아래에서 위로 TCP는 상대가 데이터를 받았는지 확인을 받고 다음 데이터를 보냄. --> 신뢰성 있는 통신 UDP는 확인 안받고 그냥 쭉 보냄. --> 신뢰성 부족.
1. 네이버는 OAuth2 Client에서 지원하지 않기 때문에 수동으로 설정해 주어야 한다. application.yml 수정 들여쓰기를 맞춰주어야 한다. # 네이버는 OAuth2.0 공식 지원대상이 아니라서 provider 설정이 필요하다. # 요청주소도 다르고, 응답 데이터도 다르기 때문이다. naver: client-id: 머시기 client-secret: 머시기 scope: - name - email - profile_image client-name: Naver # 클라이언트 네임은 구글 페이스북도 대문자로 시작하더라. authorization-grant-type: authorization_code redirect-uri: http://localhost:8080/login/oauth2/code/..
1. Meta(구 Facebook) developers에 들어가서 새 앱을 만들어준다. 없음 누르고 앱 ID 아무렇게나 입력하도 만들면 된다. 2. 페이스북 로그인 제품 추가 웹을 누르고 넘어간다. 자바스크립트가 아니라 OAuth2 클라이언트로 구현할 것이기 때문에 URL만 입력하고 나머지는 넘어간다. 3. 설정 -> 기본 설정에 들어가서 앱 ID와 시크릿 코드를 확인한다. 4. application.yml 수정 들여쓰기를 맞춰서 id와 코드를 넣어준다. https://developers.facebook.com/docs/facebook-login/web/permissions 권한 - Facebook 로그인 - 문서 - Facebook for Developers 거부된 권한 다시 요청 Facebook 로그..
1. 일반 로그인과 구글 로그인 테스트 페이지 작성 //세션정보 확인을 위한 테스트 페이지 @GetMapping("/test/login") public @ResponseBody String testLogin(Authentication authentication, // 이 방법으로는 authentication이 오브젝트 이기 때문에 캐스팅 필요 @AuthenticationPrincipal PrincipalDetails userDetails) { // DI 방식은 다형성에 의해 바로 User를 받아올 수 있음. System.out.println("==========================/test/login ==========================="); PrincipalDetails princ..
Purewater
'취업 준비/Spring security' 카테고리의 글 목록