Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
8d96c3e
chore: ``application-test.yml`` 정리
snowykte0426 Mar 26, 2025
cd966d1
chore: JWT,Email 등 추가 프로퍼티 정의
snowykte0426 Mar 27, 2025
813b611
docs: 환경변수 목록 갱신
snowykte0426 Mar 27, 2025
5cbba7c
delete: ``EmailRequest`` 삭제
snowykte0426 Mar 27, 2025
ed9afda
delete: 불필요 클래스,파일 제거
snowykte0426 Mar 27, 2025
9ae9e51
update: ``@UseCase`` 어노테이션 적용 대상 추가
snowykte0426 Mar 27, 2025
f502aa2
docs: 환경변수 리스트 갱신
snowykte0426 Mar 27, 2025
a01e734
chore: Email 인증 최대치 환경변수화
snowykte0426 Mar 27, 2025
f104055
add: 비동기 처리 활성화
snowykte0426 Mar 27, 2025
b47ff5e
add: ``AuthWebAdapter`` 선언 및 구현
snowykte0426 Mar 27, 2025
af6ea75
add: Auth 모델 Application 계층 Port/Adapter 구현
snowykte0426 Mar 27, 2025
6134700
update: 패키지 구조 조정
snowykte0426 Mar 27, 2025
febe3bb
update: Recode로 마이그레이션
snowykte0426 Mar 27, 2025
b76b4c2
add: ``TokenDto`` 정의
snowykte0426 Mar 27, 2025
0017386
add: 인증/인가 처리 Use Case 클래스 구현
snowykte0426 Mar 27, 2025
f149943
add: JWT 처리 서비스 클래스 추가
snowykte0426 Mar 27, 2025
36da88d
add: ``Email`` 필드를 이용한 사용자 존재여부 판단 메서드 구현
snowykte0426 Mar 27, 2025
9bbd27a
update: ``SecurityConfig`` 리팩터링
snowykte0426 Mar 27, 2025
56a2ca1
update: JWT 인증/인가 필터 재조직
snowykte0426 Mar 27, 2025
d64f5f1
add: ``BcryptPasswordEncoder`` 주입 Bean 클래스 생성
snowykte0426 Mar 27, 2025
22afe3a
add: 리프레시 토큰 관리 Entity/Repository 선언
snowykte0426 Mar 27, 2025
0a3acbf
add: 랜덤 코드 생성 유틸리티 클래스 생성
snowykte0426 Mar 27, 2025
8b7d77e
chore: 불필요 주석 제거
snowykte0426 Mar 27, 2025
c0ef009
add: ``Thymeleaf`` 종속성 추가
snowykte0426 Mar 27, 2025
77a501b
add: 이메일 Sender 클래스 구현
snowykte0426 Mar 27, 2025
ddb8873
update: ``MessagingException`` 시그니처 추가
snowykte0426 Mar 27, 2025
a54a2b9
update: HTML 렌더링 추가
snowykte0426 Mar 27, 2025
22f8e37
add: 이메일용 로고 이미지 추가
snowykte0426 Mar 27, 2025
8ce49b5
fix: 만료시간 설정 문제 수정
snowykte0426 Mar 28, 2025
a316dd4
update: API 명세 반영
snowykte0426 Mar 28, 2025
7c1bacb
add: ``MessagingException`` 예외 핸들링 메서드 추가
snowykte0426 Mar 28, 2025
0d3312e
update: JWT 필터 구조 변경
snowykte0426 Mar 28, 2025
1511a9c
update: ``ResponseEntity<Void>`` 반환 추가
snowykte0426 Mar 28, 2025
34d8af7
update: 기타 엔드포인트 요청 전부 허용
snowykte0426 Mar 28, 2025
733d0f1
update: 이메일 길이 검증 조건 추가
snowykte0426 Mar 28, 2025
67d6ecc
test: 테스트 표시명 변경
snowykte0426 Mar 28, 2025
1b044e6
test: 변경된 ``Auth`` Use Case 테스트 추가
snowykte0426 Mar 28, 2025
be8ee17
update: ``SecureRandom`` 사용
snowykte0426 Mar 28, 2025
11b0795
merge: 인증/인가 관련 로직 리팩터링
snowykte0426 Mar 28, 2025
eef1ade
update: ``participants`` 필드 정렬 기능 추가
snowykte0426 Mar 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ REDIS_PASSWORD=string
EMAIL_HOST=string
EMAIL_PORT=number
EMAIL_USERNAME=string
EMAIL_PASSWORD=string
EMAIL_PASSWORD=string
EMAIL_AUTHENTICATION_OBJECT_TTL=number
EMAIL_AUTHENTICATION_OBJECT_ATTEMPT_COUNT_LIMIT=number
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-cache")
implementation("org.springframework.boot:spring-boot-starter-thymeleaf")

/** AOP */
implementation("org.aspectj:aspectjweaver:1.9.19")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.ampersand.groom.domain.auth.application;

import com.ampersand.groom.domain.auth.application.port.AuthApplicationPort;
import com.ampersand.groom.domain.auth.application.usecase.*;
import com.ampersand.groom.domain.auth.presentation.data.response.AuthTokenResponse;
import com.ampersand.groom.global.annotation.adapter.Adapter;
import com.ampersand.groom.global.annotation.adapter.constant.AdapterType;
import jakarta.mail.MessagingException;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@Adapter(AdapterType.INBOUND)
public class AuthApplicationAdapter implements AuthApplicationPort {

private final SignUpUseCase signUpUseCase;
private final SignInUseCase signInUseCase;
private final RefreshUseCase refreshUseCase;
private final VerifyEmailUseCase verifyEmailUseCase;
private final SendAuthenticationEmailUseCase sendAuthenticationEmailUseCase;

@Override
public void signUp(String email, String password, String name) {
signUpUseCase.execute(email, password, name);
}

@Override
public AuthTokenResponse signIn(String username, String password) {
return signInUseCase.execute(username, password);
}

@Override
public AuthTokenResponse refresh(String refreshToken) {
return refreshUseCase.execute(refreshToken);
}

@Override
public void verifyEmail(String code) {
verifyEmailUseCase.execute(code);
}

@Override
public void sendAuthenticationEmail(String email) throws MessagingException {
sendAuthenticationEmailUseCase.execute(email);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.ampersand.groom.domain.auth.application.port;

import com.ampersand.groom.domain.auth.presentation.data.response.AuthTokenResponse;
import jakarta.mail.MessagingException;

public interface AuthApplicationPort {

void signUp(String email, String password, String name);

AuthTokenResponse signIn(String username, String password);

AuthTokenResponse refresh(String refreshToken);

void verifyEmail(String code);

void sendAuthenticationEmail(String email) throws MessagingException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,12 @@

import com.ampersand.groom.domain.auth.domain.AuthCode;

public interface EmailVerificationPort {

// 코드로 인증 코드 존재 여부 조회
public interface AuthCodePersistencePort {
Boolean existsAuthCodeByCode(String code);

// 코드로 인증 코드 조회
AuthCode findAuthCodeByCode(String code);

// 인증 코드 저장
void saveAuthCode(AuthCode authCode);

// 인증 코드 삭제
void deleteAuthCodeByCode(String code);
}

This file was deleted.

This file was deleted.

This file was deleted.

Loading