spring boot(6)
-
[Spring Boot] 자동 구성에 의한 H2 Default URL 변경
스프링 개발자라면 대부분 로컬 환경에서 인메모리 DB로 H2로 테스트를 많이 한다. H2는 따로 설정하지 않으면 기본 설정은 다음과 같다. driver: org.h2.Driver url - jdbc:h2:mem:testdb username: sa password: 라고 알고 있었는데 기본 url로 접속이 안 되는 현상을 발견했다. 왜 이런가 생각하면서 혹시 스프링부트가 기본적으로 설정을 따로 해주는가 하고 처음 서버 구동 시 나오는 로그를 살펴봤는데 여기서 해답을 찾을 수 있었다. 스프링부트 자동 설정 구성에서 H2의 기본 URL을 바꿔버렸다. 참고로 테스트하던 스프링 부트 버전은 2.7.9 이다. url을 변경하고 다시 연결 테스트를 해보면 성공한다. application.yml에서 별다른 설정을 하지..
2023.03.19 -
[Spring Security] 기본 동작 원리
1. 스프링 시큐리티란? 스프링 시큐리티는 스프링 생태계에서 지원하는 보안 관련 기능을 제공하는 프레임워크이다. 기본적으로 스프링을 백엔드로 활용한다면 보안과 관련된 부분은 서블릿 필터나 스프링 인터셉터에서 처리했다. 하지만 일일이 이런 식으로 실제 프로젝트에서 하는 것은 체계화되지 않은 부분에 불과했고 이를 스프링에서 공식적으로 제공하였다. 본격적으로 시작하기 전에 보안 용어들을 정리하고 가도록 하겠다. 인증(Authentication): 요청한 사람이 본인인지를 확인하는 절차 인가(Authorization): 인증된 사용자가 접근한 자원에 권한이 있는지를 확인하는 절차 2. 기본 동작 원리 및 흐름 스프링 시큐리티는 서블릿 필터 기반으로 동작하면서 스프링의 많은 지원을 함께 사용할 수 있도록 했다. ..
2023.03.06 -
[Spring Boot] @RequestParam vs @RequestPart
조사하게 된 원인 프로젝트를 하면서 Multipart 데이터로 JSON과 이미지 파일 데이터를 함께 받기 위해 스프링 기능을 찾던 도중 @RequestPart에 대해 새로 알게 되었다. @RequestParam이라는 어노테이션도 있는데 둘의 차이에 대해 조사해 보았다. 이는 공식 문서에 잘 나타나 있다. 먼저 각 어노테이션에 대한 공식 문서의 설명을 보자. @RequestParam Annotation which indicates that a method parameter should be bound to a web request parameter. Supported for annotated handler methods in Spring MVC as follows: In Spring MVC, "reques..
2022.03.08 -
[Spring Security] Spring Security 필터 순서 변경하기
최근 상경을 위해 알바를 시작해서 출퇴근시간까지 합해서 주5일 하루에 10시간씩 일하게 되어 공부나 포스팅하기가 힘들다.. ㅜㅜ 그래도 조금씩이나마 포스팅을 진행하고자 한다. 토이 프로젝트를 진행하던 중 커스텀 필터를 만들게 되었다. 그런데 분명 setOrder(1)로 지정했음에서 스프링 시큐리티에서 생성된 필터가 항상 앞서 적용되는 것을 확인했다. 이는 스프링 시큐리티에서 설정된 setOrder의 기본값이 -100으로 설정되어 있어서 생긴 현상이었다. application.yml(또는 properties)에서 이를 변경해주면 해결된다. 그런데 나머지 필터들은 스프링 부트에서 자동으로 등록한 필터같은데 그 역할이 궁금해져서 검색해보았다. OrderedCharacterEncodingFilter 스프링에서 ..
2022.01.24 -
[Spring Boot] Spring OAuth 없이 Spring Boot로 Github OAuth 사용하기[2/2]
이전 글에 이어서 본격적으로 OAuth 기능을 구현해보자. 먼저 Github OAuth Api를 확인하자. https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps Authorizing OAuth Apps - GitHub Docs GitHub's OAuth implementation supports the standard authorization code grant type and the OAuth 2.0 Device Authorization Grant for apps that don't have access to a web browser. If you want to skip authorizing your a..
2021.11.22 -
[Spring Boot] Spring OAuth 없이 Spring Boot로 Github OAuth 사용하기[1/2]
스프링 부트 기반으로 Oauth를 다루려고 검색해보면 거의 대부분 Spring OAuth 모듈을 사용해서 해결하는 것 같다. 이번 글에서는 OAuth 라이브러리 없이 직접 Github OAuth를 활용해 Github API에 접근하는 글을 작성하도록 하겠다. 사전 준비 사항 깃허브 아이디 스프링 부트 기반 컨트롤러 매핑 지식 HTTP Oauth 기초 지식 OAuth 간단 정리 OAuth가 뭔지 간단하게 정리하고 가자. OAuth는 서비스 제공자가 직접 사용자의 정보를 관리하지 않고 외부 사이트에 존재하는 사용자의 정보에 대해 서비스 제공자에게 권한을 부여하는 개방형 표준이다. 우리가 평소에 회원가입을 통해 이름, 아이디, 비밀번호 등을 직접 입력하는 방식은 서비스 제공자가 정보를 관리하게 된다. OAut..
2021.11.22