Spring/Spring Security

    스프링 시큐리티 설정과 로그인 구현

    스프링 시큐리티 자동-구성 build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' // 스프링 부트 보안 스타터 의존성 implementation 'org.springframework.security:spring-security-test' // 보안 테스트 의존성 스프링 부트 보안 스타터 애플리케이션이 시작되면 스프링이 프로젝트의 classpath에 있는 라이브러리를 찾아 기본적인 보안 구성을 설정해 준다. 이 후, 웹 브라우저에서 홈페이지에 접속하면 스프링 시큐리티에서 제공하는 HTTP 기본 인증 대화상자가 나타난다. Username: user를 입력 Password: 무작위로 자동 생성되어 애플..

    OAuth2 로그인 인증

    OAuth2.0 인증 및 권한 획득을 위한 업계 표준 프로토콜 보안수준이 어느정도 검증된 플랫폼의 API를 이용하여 사용자 인증과 리소스에 대한 권한 획득(인가)을 할 수 있도록 해준다. 즉, 구글, 카카오, 네이버 등과 같은 사이트에서 로그인을 하면 직접 구현한 사이트에서도 로그인 인증을 받을 수 있도록 하는 구조 구성요소 Resource Owner: 개인 정보의 소유자 Client: 리소스 서버에서 제공해주는 자원을 사용하는 외부 플랫폼 Authorization Server: 외부 플랫폼이 리소스 서버의 사용자 자원을 사용하기 위한 인증 서버 Resource Server: 사용자의 개인 정보(자원)을 저장하고 제공해주는 서버 인증 종류 1. 권한 코드 승인 방식 일반적으로 서버 사이드에서 인증을 처리..

    JWT 인증 구현

    서블릿 필터 서블릿 필터란 서블릿 실행 전에 실행되는 클래스들로, 디스패처 서블릿이 실행되기 전에 항상 실행된다. 구현된 로직에 따라 원하지 않는 HTTP 요청을 걸러낼 수 있으며, 걸러낸 HTTP는 거절된다. 서블릿 필터에서 전부 살아남은 HTTP 요청은 디스패처 서블릿으로 넘어와 컨트롤러에서 실행된다. 서블릿 필터를 구현하려면 HttpFilter 또는 Filter를 상속해 doFilter() 라는 메서드를 원하는대로 오버라이딩 서블릿 필터들은 FilterChain을 이용해 연쇄적으로 순서대로 실행되며, 각 필터는 다음으로 부를 Filter를 FilterChain 안에 갖고 있어 FilterChain을 통해 다음 필터를 실행할 수 있다. 스프링 시큐리티 스프링 시큐리티는 스프링 기반 어플리케이션의 권한..