Security

· Spring
Spring Boot Admin은 Spring Boot 애플리케이션을 관리하고 모니터링하기 위한 커뮤니티 프로젝트이다. 현재 업무에는 ELK를 구축해 실시간 로깅, 서버 매트릭 정보 모니터링 등등을 사용하고 있지만, 서버 이전 시 한정적인 환경에서 Spring Boot Admin을 사용할 가능성도 있어 정리하며 구축하려 한다. 아래 예제는 Spring Boot 2.6.7 버전 기준이다. 1. Spring Boot Admin Server 구축 build.gradle Spring Boot 프로젝트 생성 후 사용할 라이브러리를 추가한다. dependencies { .... // 접속 시 보안 처리 implementation 'org.springframework.boot:spring-boot-starter-se..
· Spring
사이드 프로젝트를 만들며 소셜 로그인의 OAuth2.0 인증방식을 개발해보려고 한다. 인터넷에 소개되어있는 블로그 글들은 서칭 후 코딩해보고 정리하였다. 카카오, 네이버, 구글만 구현할것인데 나머지 소셜들도 대부분 비슷하다고 보면 된다. OAuth2.0란? 아래글 참조 OAuth2(Open Authentication2) OAuth2란? 다양한 플랫폼 환경에서 인증 및 권한 부여를 위한 표준 프로토콜 OAuth 방식이 등장하기 전에는 다른 서비스의 리소스를 가져오기 위해서는 다른 사이트의 ID와 PW를 직접 입력받아 저장 devbksheen.tistory.com 1. Build Setting build.gradle Spring Boot는 2.3.1.RELEASE 버전을 사용했다. plugins { id '..
· ETC
JWT(Json Web Token)란? Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 된다. static 변수에 저장되는 이유는 HTTP 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 보내야 하는데, 이를 로컬 스토리지에서 계속 불러오면 오버헤드가 발생하기 때문이다. 클라이언트에서 JWT를 포함해 요청을 보내면 서버는 허가된 JWT인지를 검사한다. 또한 로그아웃을 할 경우 로컬 스토리지에 저장된 JWT 데이터를 제거한다. 실제 서비스의 경우에는 로그아웃 시, 사용했던 토큰을..
· Spring
Spring Security란? Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. 인증(Authorizatoin)과 인가(Authentication) Spring ..
beekei
'Security' 태그의 글 목록