legacy
-
[Spring-Security] 스프링 시큐리티 내부 플로우legacy/Spring Security 2024. 4. 24. 19:08
Spring Security Filters사용자의 요청이 들어왔을 때, Spring Security Filter가 요청을 가로챕니다. 이때, 요청을 한 사용자가 인증이 필요한지 여부를 식별합니다. 인증이 필요한 사용자인 경우, 로그인 페이지로 이동합니다.Authentication로그인 페이지에서 입력된 인증 정보(username, password)를 사용하여 Authentication 객체를 생성합니다. 이 객체를 가지고 유효한 인증인지 확인하는 과정이 이루어집니다.Authentication Manager넘겨받은 Authentication 객체가 유효한 인증인지 확인합니다. Authentication 객체를 Authentication Providers로 넘겨 유효성 검사를 위임합니다. 이때,..
-
[Spring-Security] 서블릿과 필터legacy/Spring Security 2024. 4. 24. 17:42
Spring Security스프링 시큐리티란 Authentication(인증), Authorization(인가) 부여 및 보호 기능을 제공하는 프레임워크이다. 개발자가 커스텀 기능을 만들어서 웹 애플리케이션의 보안을 적용하는 것엔 한계가 존재한다. 왜냐하면 해커들은 계속하여 공격을 시도할 것이기 때문... 따라서 스프링의 보안만을 담당하는 팀이 제공하는 Spring Security 프레임워크를 사용한다. 개발자는 비즈니스 로직에만 몰두하고, 보안은 프레임워크의 도움을 받는 것이다.서블릿 필터(Servlet Filter)이름에서도 알 수 있듯이 사용자의 요청이 들어왔을 때 필터 기능이 작동한다고 생각하면 된다.사용자의 요청이 서버로 도착하기 전에 Servlet을 거쳐서 필터링되는 것을 Se..
-
[Spring] 스프링에서 생성된 LocalDateTime과 DB 시간이 다르다legacy/Spring 2024. 4. 24. 15:13
생성된 QR 코드의 만료 시간을 설정하고 DB에 저장하고자 하였다. 그러나.... 둘 간의 시간 오차가 발생했다. 분명 스프링에서는 2024-04-24T16:05:24.911197 로 생성이 되는데, DB에서는 2024-04-24 07:05:24.911197 로 저장되는 문제가 있었다. 그 이유는 간단했다. DB의 serverTimezone=UTC 로 설정되어 있었기 때문이다. 스프링은 당연히 KST 기준으로 시간을 설정하기 때문에 UTC와 오차가 발생한다. 따라서 기존의 serverTimezone을 수정한다.수정 전spring: datasource: url: jdbc:mysql://localhost:3306/qr_code?serverTimezone=UTC&characterEn..
-
[Spring] AWS 자격증명 정보를 사용하는 2가지 방법legacy/Spring 2024. 4. 19. 16:19
EC2 IAM에 등록된 자격 증명 사용하기패키지 정보 확인하기import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import software.amazon.awssdk.auth.crede..
-
[Spring] AWS SES를 사용하여 메일을 보내기legacy/Spring 2024. 4. 13. 16:32
진행 중인 프로젝트에서 사용자가 관리자에게 문의 메시지를 보낼 수 있는 기능이 있습니다. 문의를 전송하게 되면 서버에 등록된 관리자 메일로 사용자의 문의 사항이 전송됩니다. 단순하게 사용자 -> 관리자로 메일 전송 기능이 필요로 했고, AWS SES를 사용하여 관리할 수 있도록 하였습니다.AWS SESAWS SES(Simple Email Service)를 사용하면 SMTP(Simple Mail Transfer Protocol) 이메일 서버를 온프레미스에 유지하지 않고도 고객과 메일을 전달받을 수 있습니다. 즉, 사용자의 이메일 주소와 도메인을 사용하여 이메일을 주고 받기 위해 사용됩니다. 스프링 부트에서 AWS SES를 사용하는 방법에 대해서 알아보겠습니다.1. 자격 증명 생성이메일을 관리..
-
[Spring] Profile 적용 방법 및 우선 순위legacy/Spring 2024. 4. 11. 14:24
환경변수 분리애플리케이션을 배포하게 되면 환경변수를 분리하게 됩니다. 왜 분리를 해야 할까요? 다양한 이유가 있겠지만 가장 와닿는 이유로는 DB 연결정보가 다르기 때문입니다. 로컬에서 작업을 하는 것과 서버로 배포된 application이 사용하는 DB 정보가 다르기 때문입니다. 예를 들어, local에서는 docker로 띄운 DB를 사용하지만, prod 환경에서는 AWS RDS에 띄운 DB를 사용해야하므로 연결 정보를 다르게 해야 합니다. 현재 진행하고 있는 프로젝트의 경우 2개의 profile을 사용하고 있습니다.local(로컬)prod(운영)기존에는 application.yml 1개에 설정 정보를 모두 넣고 사용하였습니다. 그러나 개발이 완료된 서버를 배포하게 되면서 작업 환경을 분리..