본문 바로가기

Spring공부

(29)
OAuth2 로 로그인/로그아웃 구현하기 OAuth란?OAuth는 제3의 서비스에 계정 관리를 맡기는 방식이다. 네이버로 로그인하기, 구글로 로그인하기 같은 방법이다.  리소스 오너: 자신의 정보를 사용하도록 인증 서버에 허가하는 주체이다.리소스 서버 : 리소스 오너의 정보를 가지며, 리소스 오너의 정보를 보호하는 주체를 의미한다. 네이버, 구글, 페이스북이 리소스 서버에 해당한다.인증 서버 : 클라이언트에게 리소스 오너의 정보에 접근할 수 있는 토큰을 발급하는 역할을 하는 애플리케이션을 의미한다.클라이언트 애플리케이션 : 인증서버에게 인증을 받고 리소스 오너의 리소스를 사용하는 주체를 의미한다. 지금 만들고 있는 서비스가 이에 해당한다. OAuth를 사용하면 인증 서버에서 발급받은 토큰을 사용해서 리소스 서버에 리소스 오너의 정보를 요청하고 ..
240524_TIL 오늘한일스프링부트 복습로그인/로그아웃 구현하기 JWThttps://charche.tistory.com/302
로그인/로그아웃 구현하기 JWT 토큰기반 인증이란?사용자가 서버에 접근할 때 이상요자가 인증된 상요자인지 확인하는 방법은 대표적으로 사용자 인증 확인 방법으로 서버 기반 인증과 토큰 기반 인증이 있다. 스프링 시큐리티에서는 기본적으로 세셔 기반 인증을 제공해준다. 사용자마다 사용자의 정보를 담은 세션을 생성하고 저장해서 인증을 했다. 이를 세션 기반 인증이라고 한다. 토큰 기반 인증은 토큰을 사용하는 방법이다. 토큰은 서버에서 클라인터를 구분하기 위한 유일한 값인데 서버가 토큰을 생성해서 클라이언트에게 제공하면, 클라이언트는 이토큰을 갖고 있다가 여러 요청을 이 토큰과 함께 신청한다. 그럼 서버는 토큰만 보고 유효한 사용자인지 검증한다. 토큰을 전달하고 인증받는 과정인증 요청클라이언트: 아이디와 비밀번호를 서버에 전달하여 인증을 요청합..
블로그의 인증, 인가 쿠키&세션 스프링시큐리티스프링시큐리티는 스프링기반의 애플리케이션 보안을 담당하는 스프링 하위 프레임워크이다. 보안 관련 옵션을 많이 제공한다. 그리고 애너테이션으로 설정도 매우 쉽다. CSRF 공격, 세션 고정 공격을 방어해주고, 요청 헤더도 보안 처리를 해주므로 개발자가 보안 관련 개발을 해야 하는 부담을 크게 줄여준다.필터기반으로 동작하는 스프링 시큐리티 인증과 인가인증은 사용자의 신원을 입증하는 과정이다.인가는 인증과 다르다. 인가는 사이트의 특정 부분에 접근할 수 있는지 권한을 확인하는 작업이다. 스프링 시큐리티를 사용하여 구현하면 쉽게 처리 할수 있다.인증 절차: 사용자가 로그인 요청을 하면 UsernamePasswordAuthenticationFilter 또는 BasicAuthenticationFilte..
240520_TIL 오늘한일spring boot 복습블로그 만들어 보기https://charche.tistory.com/299
스프링 부트3로 블로그 만들기 REST APIREST API는 웹의 장점을 최대한 활용하는 API이다. 쉽게 말해 명확하고 이해하기 쉬운 API를 말한다. RESR API는 URL의 설계 방식을 말한다.  REST API의 특징REST API는 서버/클라이언트 구조, 무상태, 캐시 처리기능, 계층화, 인터페이스 일관성과 같은 특징이 있다. REST API의 장점과 단점REST API의 장점은 URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있다는 것이다. 그리고 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리된다. HTTP 표준을 사용하는 모든 플랫폼에서 사용 할 수 있다. 단점으로는 HTTP 메서드, 즉 GET, POST와 같은 방식의 개수에 제한이 있고, 설계를 하기 위해 공식적으로 제공되는 표준..
데이터베이스 데이터베이스란?데이터베이스는 데이터를 매우 효율적으로 보관하고 꺼내 볼수 있는 곳이다.데이터베이스를 사용하면 가장 큰 이점은 굉장히 많은 사람이 안전하게 데이터를 사용하고, 관리할 수 있다는 것이다. 데이터베이스 관리자,DBMS데이터베이스를 관리하기 위한 소프트웨어를 DBMS라고 한다. 데이터베이스는 많은 사람이 공유할 수 있어야 하므로 동시 접근을 할수 있어야 한다. MySQL, 오라클은 DBMS이다.DBMS는 관리 특징에 따라서 관계형, 객체- 관계형, 도큐먼트형, 비관계형 등으로 분류한다.가장 많이 사용하는 DBMS는 관계형이다. 관계형 RDBMS(RDBMS)RDBMS가 관계형이리고 쓰는 이유는 이 DBMS가 관계형 모델을 기반으로 하기 때문이다.RDBMS는 어렵게 생각할 필요 없이 테이블 형태로 ..
테스트 코드 테스트 코드란?테스트 코드는 test 디렉터리에서 작업한다.테스트 코드에도 다양한 패턴이 있다. 그중 given-when-then 패턴인데. given-when-then 패턴은 테스트 코드를 세 단계로 구분해 작성하는 방식을 말합니다.given은 테스트 실행을 준비하는 단계, when 은 테스트를 진행하는 단계, then은 테스트 결과를 검증하는 단계 이다. Junit이란?Junit은 자바 언어를 위한 단위 테스트 프레임워크이다. 단위 테스트라는 말은 작성한 코드가 의도대로 작동하는지 작은 단위로 검증하는 것을 의미한다. 단위는 보통 메서드가 된다.Junit을 사용한다면 단위 테스트를 작성하고 테스트 하는 데 도움을 준다.사용법도 간단하여 쉽고 테스트 결과가 직관적이라 좋다.   import org.ju..