부트캠프 기록 71

[Spring Security] OAuth2 란

✅ 학습 목표 OAuth 2가 무엇인지 이해할 수 있다. OAuth 2의 인증 방식에 대해 설명할 수 있다. Authorization 서버와 Resource 서버의 차이에 대해 이해할 수 있다 OAuth 2란? 사용자 정보를 보유하고 있는 신뢰할 만한 써드 파티 애플리케이션(GitHub, Google, Facebook 등)에서 사용자의 인증을 대신 처리해 주고 접근 권한에 대한 토큰을 발급한 뒤 해당 토큰을 이용해 써드 파티 애플리케이션의 서비스를 사용하게 해주는 방식 OAuth 2를 사용하는 애플리케이션 유형 써드 파티 애플리케이션에서 제공하는 API를 직접적으로 사용 추가적인 인증 서비스를 제공하기 위한 용도 OAuth 2의 인증 방식 +--------+ +---------------+ | |--(A..

[Spring Security] JWT 개요

✅학습 목표 인증된 사용자인지를 증명하는 토큰 방식과 세션 방식의 차이점을 설명할 수 있다. JWT(JSON Web Token)가 무엇인지 설명할 수 있다. JWT의 구성 요소를 설명할 수 있다. JWT의 동작 방식을 이해할 수 있다. 토큰 방식과 세션 방식 자격 증명 방식 토큰 기반 자격 증명 세션 기반 자격 증명 토큰에 포함된 인증된 사용자 정보는 서버 측에서 별도의 관리를 하지 않음 세션을 서버 측 세션 저장소에서 관리 세션에 비해 상대적으로 많은 네트워크 트래픽 사용 세션 아이디만 클라이언트 쪽에서 사용하므로 상대적으로 적은 네트워크 트래픽 서버 측에서 토큰을 관리하지 않으므로 보안성 측면에서 조금 더 불리 서버 측에서 세션 정보를 관리하므로 보안성 측면에서 조금 더 유리 인증된 사용자 리퀘스트의..

[Spring Security] 권한 부여(Authorization, 인가) 처리 흐름

✅ 학습 목표 Spring Security의 권한 부여(Authorization, 인가) 흐름을 이해할 수 있다. Spring Security에서 권한 부여와 관련된 컴포넌트의 역할을 이해할 수 있다. AuthorizationFilter > Spring Security Filter Chain에서 URL을 통해 사용자의 액세스를 제한하는 권한 부여 Filter > SecurityContextHolder로 부터 Authentication을 획득 > SecurityContextHolder로 부터 획득한Authentication과 HttpServletRequest를 AuthorizationManager 에게 전달 AuthorizationManager > 권한 부여 처리를 총괄하는 매니저 인터페이스 Request..

[Spring Security] Spring Security 인증 구성요소 이해

✅ 학습 목표 Spring Security의 인증 처리 흐름을 이해할 수 있다. Spring Security의 핵심 컴포넌트인 인증 컴포넌트의 역할을 이해할 수 있다. Spring Security 인증 처리 흐름 더보기 > 사용자가 로그인 폼 등을 이용해 Username(로그인 ID)과 Password를 포함한 request를 Spring Security가 적용된 애플리케이션에 전송 여러 Filter들 중에서 UsernamePasswordAuthenticationFilter가 해당 요청을 받음 > UsernamePasswordAuthenticationFilter는 Username과 Password를 이용해 (2)와 같이 UsernamePasswordAuthenticationToken 을 생성 Userna..

[Spring Security] Spring Security 개요1

Spring Security란 Spring MVC 기반 애플리케이션의 인증(Authentication)과 인가기능(Authorization)을 지원하는 보안 프레임워크 Spring 에서 지원하는 Interceptor나 Servlet Filter를 이용해 직접 보안 기능을 구현할 수 있지만 웹 애플리케이션 보안 대부분의 기능을 Spring Security에서 안정적으로 지원하고 있기 때문에 Spring Security를 이용하는 것이 안전한 선택 다양한 유형의 사용자 인증 기능 적용 폼 로그인 인증 토큰 기반 인증 OAuth 2 기반 인증 LDAP 인증 애플리케이션 사용자의 역할에 따른 권한 레벨 적용 애플리케이션에서 제공하는 리소스에 대한 접근 제어 민감한 정보에 대한 데이터 암호화 SSL 적용 일반적으..

[인증/보안] mkcert를 이용한 인증서 발급 및 HTTPS 서버 구현과 그 과정에서 마주쳤던 에러들

실습 내용: mkcert를 이용한 인증서 발급 및 HTTPS 서버 구현 실습 목적: HTTPS의 개념 이해 실습 os: window10 1. Spring 웹 서버 프로젝트 생성 2. WSL 터미널에서 mkcert 설치 $ sudo apt install libnss3-tools $ wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 $ chmod +x mkcert $ sudo cp mkcert /usr/local/bin/ 설치 안되는 경우 $ sudo apt update 후에 다시 설치 3. 인증서 생성 $ mkcert -pkcs12 localhost 4. 생성된 local..

Schema is not dropped on hbmddl.auto = create.drop

https://stackoverflow.com/questions/6751090/schema-is-not-dropped-on-hbmddl-auto-create-drop Schema is not dropped on hbmddl.auto = create.drop I am using hbmddl.auto set to create in the hibernate configuration file and using it to connect to the derby database in network mode (not embedded, don't know if that is relevant). Here is my stackoverflow.com 저와 같은 문제를 겪은 분의 질문입니다. ddl-auto옵션 값이 creat..

부트캠프 3달차 KPT 회고🖌

지치는게 뭐죠 커피 쌓아두고 마시지만 절.대. 지친거 아닙니다. 저의 지치지 않는 힘의 원천. 스타벅스 카라멜 마끼야또랑 베란다 블렌드 추천합니다 스벅 연락 기다릴게요 ;) (요즘 커피 두세 잔 필수입니다. 그래봤자 톨 사이즈 좀 넘기는 거긴 한데.. 항상 커피 마시니까 친한 친구들도 제가 커피 좋아하는 줄 알더라고요. 안좋아했는데 계속 마시니까 좋아지는 것 같기도 합니다. 점점 늘다가 직장인되면 몇 샷을 마실거지 싶기도 하고...ㅎㅎ 그래도 직장인 시켜주세요) 이번 세션에선 대망의 SpringMVC 를 배웠습니다. 목차를 나열하자면 API 계층과 서비스 계층 작성, 예외 처리, JDBC, JPA , 트랜잭션, 테스팅 등이 있습니다. 역시나 어렵더라고요. 승부욕을 자극하는 스프링.. 🔥 한편으론 인강으로..

java.lang.UnsupportedClassVersionError 해결방법

인텔리제이로 생성한 jar파일을 실행하려다가 이와 같은 오류가 발생했습니다. 실행파일의 자바 버전과 실행 환경의 자바 버전이 맞지않아서 그런다고 합니다. 해결방법 그래들 설정 파일에서 로컬 환경과 맞는 자바 버전으로 다운그레이드 해줬습니다. 자바 11로 업그레이드를 무슨 문제인지 못하고 있는데 프로젝트 시작하기 전에 빨리 해결해야 겠습니다. 참고 블로그 [JAVA] java.lang.UnsupportedClassVersionError 해결방법 카산드라(Cassandra) 최신 버전 CLI프로그램을 실행하려니 아래와 같은 오류가 나옴을 확인할 수 있습니다.현재 이 맥에서는 JDK 1.6이 설치된 상태입니다. Exception in thread "main" java.lang.UnsupportedClassVe..

[Spring MVC] Mockito

mockito란 테스트 세계에서의 Mock은 가짜 객체를 의미 Mocking: 단위 테스트나 슬라이스 테스트 등에 Mock 객체를 사용하는 것 Mockito: Mock 객체로 Mocking 할 수 있게 해주는 Mocking Framework Mockito에서 가짜 객체를 만들기 위해 Dynamic Proxy 기술을 이용 Dynamic Proxy는 핵심 기능을 수행하기 전에 부가 기능을 적용하기 위해 주로 사용 Mockito는 부가 기능을 적용하기 위함이 아니라 가짜 객체가 진짜인 척 동작을 수행하기 위함 필요성 슬라이스 테스트의 목적인 해당 계층 영역에 대한 테스트에 집중하기를 달성하기 위해서 만약 mocking을 하지 않는다면 슬라이스 테스트라기 보단 통합 테스트에 가까움 Controller에 적용 @..