springboot
[SpringBoot] 다른 서브 도메인간 쿠키를 교환할 때 에러 (An invalid domain [.xxx.xxx] was specified for this cookie)
들어가며 프론트 도메인인 www.ticket-auctoin.kro.kr 과 서버 도메인인 api.ticket-auction.kro.kr 간 쿠키를 교환하는데 쿠키를 받지못하는 문제가 발생했다. 해당 이유는 서버에서 cookie를 set할 때, 도메인을 따로 설정해주지 않아 서버 도메인경로로 setting이 되서 그렇다. 문제 그래서 cookie를 세팅할 때, 모든 서브도메인끼리 쿠키를 공유할 수 있도록 .ticket-auction.kro.kr 로 세팅하여 보냈다. 도메인을 세팅하고 테스트를 해보니 쿠키에서 다음과 같은 에러가 발생했다. ava.lang.IllegalArgumentException: An invalid domain [.ticket-auction.kro.kr] was specified for..
2023.12.10 TIL - oauth2-client 인증 실패 핸들러
Srping oauth2-client 모듈을 활용하여 소셜로그인을 구현하였다. 그 중 인증처리가 실패할 경우 에러 응답을 주기 위해 oauth2 failureHandler를 구현하였다. 인증 실패 커스텀 핸들러 구현 OAuth2 인증실패 시 기본적으로 SimpleUrlAuthenticationFailureHandler가 실패처리를 하게된다. SimpleUrlAuthenticationFailureHandler은 설정 때 받은 url로 (기본값: /login?error) 리다이렉트 시켜 응답을 반환한다. 하지만 구현하는 프로젝트는 REST API 서버이므로 리다이렉트를 시키지 않고 Json 포맷으로 적절한 에러응답을 보내야한다. 그래서 커스텀 핸들러를 구현하고 주입해주어야한다. OAuth2Authentica..
[프로젝트] ipv4 조 - 'X보다 더 나은 Y' ( threads, 참고하여 sns + 백오피스 만들기 프로젝트)
프로젝트 소개 SNS + 백 오피스 구현을 경험하기 위한 프로젝트 입니다. Threads, X를 벤치마킹하여 필요한 필수 요구사항 및 추가 요구사항을 구현합니다. 프로젝트 설계 더보기 기술 스택 - SpringBoot 3.1.5 - Java 17 - Gradle - Jpa - MySQL 8.4 - H2 ERD 와이어프레임 API 명세 & S.A 노션 https://teamsparta.notion.site/IPv4-218de468d40644bab98a9c20760ea6b6 IPv4 A new tool for teams & individuals that blends everyday work apps into one. teamsparta.notion.site 구현 기능 더보기 필수 요구사항 사용자 인증 기능 ..
2023.12.04 TIL - JaCoCo 플러그인 적용 (feat. 테스트 커버리지확인 플러그인)
내일배움 캠프 심화과제 추가 요건으로 테스트 커버리지 확인을 위한 JaCoCo 플러그인을 적용하기로 했습니다. https://mocha-coding.tistory.com/50 [JaCoCo] Springboot3.x.x 설정 및 커버리지 확인하기 심화과제 추가 요건 사항으로 Jacoco 를 적용하고 테스트 커버리지를 높이는 것이 있어 설정하고, 확인하는 방법을 쓰려고합니다. 우선 적용한 환경입니다. - SpringBoot 3.1.5 - Gradle: 8.4 JaCoCo 플러그 mocha-coding.tistory.com 테스트 코드를 작성하고 테스트 커버리지를 작성하면서 필요한 테스트에 대해 확인할 수 있었고 프로덕션 코드에서 추가해야될 방어로직이라던가 추가 기능들에 대해 다시 생각할 수 있는 기회가 생..
[Spring] spring-data-jpa Auditing 사용하기
Auditing 테이블을 설계할 때, 공통적으로 들어가는 컬럼이있는데, 바로 생성일자,수정일자,생성자,수정자 이다. 거의 모든 테이블에 들어가있고 정렬, 필터, 또는 검증? 도 할 수 있는 꽤나 중요한 정보들이다. 하지만 서비스를 요청을 하거나 응답을 줄 때, 필요한 정보가 아니기도하다. 서비스에는 영향이없지만 필요하고 중요한? 데이터를 spring-data-jpa 모듈에서 자동으로 넣을 수 있도록 제공을해준다. 해당 기능이 바로 Auditing이다. 사용하기 1. Main App 클래스에 @EnableJpaAuditing 추가하기 @EnableJpaAuditing @SpringBootApplication public class Application { 2. 엔티티 클래스 위에 @EntityListene..