전체 글
-
Spring Security & JWT 사용할 때 조회 쿼리 여러번 발생 처리SpringBoot/Spring Security & JWT 회원 조회 이슈 2021. 6. 18. 21:53
Spring Security & JWT 사용 시 회원 조회 쿼리가 여러 번 나가는 현상 문제점 Spring Security와 JWT를 사용해 인증을 처리하는 프로젝트를 개발하던 중 JWT 토큰을 통해 회원 정보를 조회하는 UserDetails userDetails = memberService.loadUserByUsername(claims.getSubject()); 해당 로직이 2번 이상씩 반복되는 현상이 발생했습니다. 원인 확인해본 결과 JwtFilter 클래스에 @Componenet 컴포넌트를 선언하면 필터가 두번 등록되어 필터가 두번 돌아 조회 쿼리가 두번 나가는 것을 Jwt 멤버 조회 쿼리가 두번 나가는 것으로 착각한 것이었습니다. 사실 조회 쿼리가 두번 나가는 것이 아닌 필터가 두번 등록되어 중첩..
-
Spring Boot - WebSocket & JWT & Spring Security 토큰 인증SpringBoot/WebSocket 2021. 6. 18. 19:16
개발 환경 : Spring Boot, Maven, Web Socket ( Sock JS ), Spring Secuirty , Json Web Token, Vue jwt 인증 헤더 : 'Authorization' JWT 인증 기반의 프로젝트에서의 인증 JWT를 기반으로 하는 제 프로젝트의 인증은 클라이언트에서 보내는 모든 요청에 JWT를 넣어 전송하고, 서버에서 이를 검증해 통신을 주고받게 사용합니다. 문제점 발생 위의 개발환경에서 채팅 기능을 개발하던 중 소켓을 연결할 때 JWT 토큰이 인식되지 않아 401 UNAUTHORIZED 로 정상적으로 동작하지 않는 이슈가 발생했습니다. 왜 발생했을까 ? 왜 그런가? 생각했을 때 떠오른 것은 401이 난다는 건 인증이 제대로 처리가 안됐나? 였습니다. 하지만 다..
-
Spring Boot - 유효성 검증 ( Validate )SpringBoot/유효성 검증 2021. 6. 18. 00:01
Maven Dependency 입니다. Pom.xml org.springframework.boot spring-boot-starter-validation Gradle implementation 'org.springframework.boot:spring-boot-starter-validation' BoardRequestDto.class 이런 간단한 예제를 사용해보겠습니다. import com.exam.demo.domain.board.Board; import lombok.Getter; import lombok.Setter; import javax.validation.constraints.AssertTrue; import javax.validation.constraints.NotBlank; import jav..
-
Spring Boot - SMTP 메일 전송 ( Naver )SpringBoot/SMTP 메일전송 ( Naver ) 2021. 6. 15. 15:42
SMTP Mail Service With Naver 네이버 메일 전송 방법! 1. 네이버 환경설정 1.1 아래 사진에 표시되어있는 메일 -> 환경설정으로 들어갑니다. 1.2 아래 사진에 표시된 POP/IMAP 설정으로 들어갑니다. 1.3 아래 사진과 같이 POP3/SMTP 사용에 '사용함' 을 체크하시고 원하시는 설정값을 고른 뒤 저장합니다. 2. SpringBoot에서의 사용을 위한 설정 2.1 Dependency 추가 Maven org.springframework.boot spring-boot-starter-mail Gradle implementation 'org.springframework.boot:spring-boot-starter-mail' 2.2 mail 전송을 위한 yml 파일 작성 appl..
-
Firebase Cloud Messaging (FCM) 3 - ForeGround 오류Firebase Cloud Messaging (FCM) 2021. 5. 30. 21:54
Firebase Cloud Messaging (이후 FCM)은 크게 2개의 알림 메시지로 사용됩니다. Back Ground Messaging Fore Ground Messaging 이들은 각 1.Back Ground 현재 브라우저를 바라보지 않을 때 즉 현재 클라이언트 브라우저를 보고있지 않을 때 동작합니다. 백그라운드 환경에서는 위 사진과 같은 푸시 메시지를 디바이스( 컴퓨터, 터미널로 연 새 클라이언트 등 클라이언트 )에 보내게 됩니다. 2.Fore Ground 현재 브라우저를 바라보고 있을 때 즉 현재 클라이언트 브라우저를 보고있을 때 동작합니다. 설명 그대로 현재 브라우저를 사용자가 확인 ( 켜놓거나, 보고있거나 등 )중일 때 동작하게 됩니다. 보통 Fore Ground는 onMessage( FC..
-
Firebase Cloud Messaging (FCM) 2 - FCM 프로젝트 생성 및 테스트Firebase Cloud Messaging (FCM) 2021. 5. 25. 16:50
이 글은 개인적인 견해로부터 작성된 글이니, 공식 문서를 함께 찾아보시는 것을 추천드립니다. 본 카테고리 FCM의 목표는 Spring Boot와의 연동을 통해 Web Push 테스트를 하는 것이 목적입니다. Back - Sprinb Boot, Front - Thymeleaf하나, Vue 하나 나눠서 진행합니다. 현재 Spring Boot , Thymeleaf 환경에서만 진행되었고, Vue는 추후 업데이트 예정입니다. 프로젝트 생성 FCM 서비스를 이용하기 위해서는 FCM 콘솔에 프로젝트를 등록해야 합니다. ( Web Push 기준 ) 이 과정은 생각보다 쉽기 때문에 따라하시면 금방 할 수 있습니다. https://console.firebase.google.com/ 콘솔로 이동합니다. 아래 사진에서 보이는..
-
Firebase Cloud Messaging (FCM)1 - FCM이란Firebase Cloud Messaging (FCM) 2021. 5. 25. 15:44
이 글은 개인적인 견해로부터 작성된 글이니, 공식 문서를 함께 찾아보시는 것을 추천드립니다. 본 카테고리 FCM의 목표는 Spring Boot와의 연동을 통해 Web Push 테스트를 하는 것이 목적입니다. FCM Firebase Cloud Messaging의 약자로 무료로 메시지를 안정적으로 전송할 수 있는 교차 플랫폼 메시징 솔루션입니다. 보통 Push 알람을 위해서 사용하는데 저는 Web Push 기능을 사용해보고자 FCM을 도입하게 되었습니다. 특정 개인에게 메시지를 보낼 수 있고, 특정 Topic을 구독하는 사용자에게 전체 메시지를 보낼 수 있습니다. 참고 : https://firebase.google.com/docs/cloud-messaging?hl=ko FCM 장점 교차 플랫폼이기 때문에 특..
-
Redis 5 - Spring Boot와 Redis의 연결Redis 2021. 4. 6. 20:12
본 포스팅은 Redis에 대해 알아보고, Spring Boot 프로젝트에 적용해 활용해보는 목적으로 작성되었습니다. 환경 Spring Boot, Maven, Redis Spring Boot pom.xml 의존성 주입 ( Maven ) org.springframework.boot spring-boot-starter-data-redis Application.yml or Applcation.properties 설정 **yml** spring: cache: type: redis profiles: active: local redis: host: localhost port: 6379 **properties** spring.cache.type=redis spring.redis.host=localhost spring...