-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bp 12 implement user login #5
Conversation
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
src/main/java/gdsc/konkuk/platformcore/global/configs/SecurityConfig.java
Dismissed
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다!!!
몇가지 질문 남겨뒀어요~
@Bean | ||
public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception { | ||
httpSecurity | ||
.csrf(AbstractHttpConfigurer::disable) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CSRF 보안 기능을 비활성화한 이유가 있나요?
사용자 인증에 Bearer Token이 아닌 Session을 사용한다면 CSRF 보안이 필요하지 않을까 궁금하네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jwt로 처음에 만들었을때 추가한것 같은데 수정하겠습니다! 🫣🫣
.csrf(AbstractHttpConfigurer::disable) | ||
|
||
.sessionManagement(sessionManagement -> sessionManagement | ||
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
우리 사용자 인증에 Session을 사용하기로 했었죠...?
SecurityContextPersistenceFilter
를 사용하면 Session 정보가 이곳에서 관리되나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
요것도 세션사용하기로해서 삭제해야할 것 같습니다.
@DisplayName("사용자 로그인 실패") | ||
@WithMockUser | ||
void loginFail() throws Exception { | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
조금 더 가시적인 테스트 시나리오를 위해서 아래의 코드를 추가하는건 어떻게 생각하시나요?
when(memberRepository.findByMemberId(any())).thenReturn(Optional.empty());
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 좋아요. 그리고 테스트코드 네이밍 관련해서 수정하는것을 제안하고 싶어요!
- 테스트코드 컨벤션
을 확인해보시면 여러개 있는데 저는
Should_ExpectedBehavior_When_StateUnderTest
이게 제일 직관적이라고 생각이 들었어요 이산님 생각은 어떠신가요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
좋습니다!!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
유저 엔티티에 저희 ERD 합친거랑 이야기한거로 반영했는데 어떤 것은 Enum으로 관리했어요. DeleteStatus의 경우 0, 1, 2, 3등의 정수값으로 정의할까 하다가. Enum을 통해 관리하는 것이 코드적으로나, 데이터베이스에서도 (명확하게 표현 가능) 좋을 것 같다고 생각해서 Enum을 활용해요. Ordinal이 아닌 String으로 저장하는 것에 의견있으신가요?
@Column(name = "is_activated") | ||
private boolean isActivated; | ||
|
||
@Column(name = "is_deleted") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리뷰 주시면 반영하겠습니다
@Column(name = "is_deleted") | |
@Enumerated(EnumType.STRING) | |
@Column(name = "is_deleted") |
@Column(name = "is_deleted") | |
@Enumerated(EnumType.ORDINAL) | |
@Column(name = "is_deleted") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저는 Enum이나 참조 테이블 둘 중 하나면 괜찮다고 생각해요. Delete Policy라 Enum의 field가 추가될 일이 있을 것 같지도 않고요. 이부분은 선호하시는 방향대로 진행해주시면 감사합니다 :)
EnumType
은 ORDINAL
보다는 STRING
이 훨씬 직관적이라고 생각합니다. 약간의 byte 공간 아끼는게 크게 의미가 있지도 않을것 같고요 :)
그런데 한가지 궁금한건, is_deleted
는 soft delete가 수행된 후, hard-deleted 상태를 의미하는것으로 보이는데, 이 경우 marking이 아닌 row(tuple) 삭제로 처리하지 않은 이유가 있나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
실제로 데이터를 테이블에서 지우는지 좀 찾아보다가 넣어놨는데 빼도 상관없을것같아요
@Override | ||
public Collection<? extends GrantedAuthority> getAuthorities() { | ||
Collection<GrantedAuthority> authorities = new ArrayList<>(); | ||
authorities.add(new SimpleGrantedAuthority(member.getRole().toString())); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"ROLE_" + "실제Role" 로 권한을 부여하는데 저는 그냥 Enum 클래스의 toString 메소드를 오버라이딩하여 Enum의 String 필드를 리턴 해주고 있습니다. 혹시 어떻게 생각하시나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
제가 느끼기엔 크게 문제가 될 여지는 없어 보입니다. 일반적으로는 어떻게 구현하는지 궁금하네요.
Quality Gate failedFailed conditions |
* chore : 스프링 시큐리티, 테스트 모듈 추가 * Feat : 스프링 시큐리티를 위한 UserDetail기능 재작성, 핸들러 작성 * feat : 전역 에러 핸들러에 비즈니스 에러 핸들러 추가 * feat : 비즈니스 로직에서 발생하는 예외를 정의하는 클래스 정의 * feat : 사용자 인증관련 에러코드 추가, 응답클래스에 메소드 추가 * refactor : 사용하지 않는 클래스 의존 삭제 * test : 로그인 기능 테스트 코드 작성 * remove : 필요없는 파일 삭제 * feat : 유저 권한 Enum클래스와 로그인 시 권한을 부여하는 기능 추가 * feat : 멤버 엔티티, 레포지토리 생성 * test : 로그인 통합 테스트 작성 * hotfix : 불필요한 파라매터설정 제거 * fix : 코드리뷰 적용 csrf 적용 및 스프링시큐리티로 세션저장 활성화 * refactor : 불필요한 상태값 제거에 따른 타입 변경
* Test/test ci (#2) * Gitactions Test (#1) * feat : 소나큐브 플러그인 의존성추가 * fix: 그래들 파일 수정 * feat: CI용 워크플로우생성 * feat : 테스트용 커밋 * fix: 잘못된 디렉토리명 수정 * feat : CI실패 시 디스코드 알림 추가 * test : CI 테스트를 위한 커밋 * feat: 그래들 캐시 추가, 불필요한 스크립트 제거 * Bp 3 spring project (#3) * chore : h2, p6spy의존성 추가 * feat : 응답을 위한 클래스 생성 * feat : 에러코드 공통 관리를 위한 Enum생성 * feat : 전역 에러 핸들러 추가 * remove : 불필요한 파일 삭제 * feat : 워크플로우 수정 * feat : 생성자 파라매터 수정, Of 메소드 수정 * Bp 4 swagger configuration (#4) * chore : RestDocs, Swagger 의존성추가 * feat : 테스트용 컨트롤러 작성 * feat : RestDocsTest 어노테이션 생성 * test : 스웨거 컨트롤러를 위한 테스트 코드 작성 * Bp 12 implement user login (#5) * chore : 스프링 시큐리티, 테스트 모듈 추가 * Feat : 스프링 시큐리티를 위한 UserDetail기능 재작성, 핸들러 작성 * feat : 전역 에러 핸들러에 비즈니스 에러 핸들러 추가 * feat : 비즈니스 로직에서 발생하는 예외를 정의하는 클래스 정의 * feat : 사용자 인증관련 에러코드 추가, 응답클래스에 메소드 추가 * refactor : 사용하지 않는 클래스 의존 삭제 * test : 로그인 기능 테스트 코드 작성 * remove : 필요없는 파일 삭제 * feat : 유저 권한 Enum클래스와 로그인 시 권한을 부여하는 기능 추가 * feat : 멤버 엔티티, 레포지토리 생성 * test : 로그인 통합 테스트 작성 * hotfix : 불필요한 파라매터설정 제거 * fix : 코드리뷰 적용 csrf 적용 및 스프링시큐리티로 세션저장 활성화 * refactor : 불필요한 상태값 제거에 따른 타입 변경 * Bp 24 implement user crud (#9) * Bp 25 implement user registration (#6) * feat : 회원가입 api 권한 수정, 엔드포인트 prefix 메소드 추가 * feat : 에러코드, 커스텀 에러 추가, 전역 핸들러에 로직구현 * feat : 회원가입 DTO추가, 멤버 컨트롤러 추가 * feat : 멤버 서비스 추가, 회원가입 기능 추가 * test : 컨트롤러 테스트, 유닛테스트 작성 * feat : 유저 비밀번호 암호화 추가 * rename : 파일 위치 수정 * test : 암호화 로직 추가 * rename : DTO 컨트롤러 패키지로 이동 * refactor : 매직넘버 삭제, HttpStatus사용 * refactor : 기존 ErrorCode를 인터페이스화, 도메인마다 에러코드 정의 * refactor : 에러코드 구조 변경에 따른 코드 수정 * chore : spring-validation 추가 * Bp 26 implement user withdraw (#8) * feat : 객체 생성 시 필드 체크를 위한 Validator생성 * feat : 멤버 엔티티객체 필드 기본값 수정, 탈퇴로직 구현 * feat : 회원 탈퇴 로직 구현 * feat : 시큐리티 회원가입, 로그인 csrf해제 * feat : 시큐리티 유틸성 클래스 추가 * feat : 멤버 서비스 예외 추가와 에러코드 추가 * style : 코드 포맷 수정 * test: 테스트코드 수정, 삭제 테스트코드 작성 * feat : Spring Validation에서 발생하는 에러 핸들링 * test : mock user 어노테이션추가 * refactor : 코드리뷰 적용 * fix ; csrf 비활성화 * feat : 식별자 전략 명시 IDENTITY * Bp 14 attendance api (#7) * feat: Event 엔티티 생성 * feat: 특정 달의 이벤트 목록 조회 * feat: Participants 엔티티 * feat: 출석 기능 (Google Oauth 부분은 뼈대만) * feat: Event Controller 작성 및 테스트, 문서 생성 * chore: validator와 Oauth Client 추가 * feat: Google OIDC를 이용한 사용자 출석 (draft) * feat: 이벤트 출석 등록 -> 출석 URL (for QR Code) 생성 * comment: TODO, 출석 만료 기능 필요 * fix: 출석 API를 GET으로 변경, security matcher 수정 및 request 유지 * feat: security config conflict 정리 * feat: validation 책임을 Entity가 아닌 Factory로 전가 * feat: dto를 service layer가 아닌 presentational layer에서 정의 * feat: Event 도메인의 Custom ErrorCode와 Exception 정의 * style: `@RequiredArgsConstructor` 활용 * style: gwt 다듬기 * chore: 실 credential 반영 * fix: presentational layer test에 `@SpringbootTest`를 사용하도록 일괄 변경 * fix: HTTP METHOD 정정 (post -> get) * feat: QR Login 구현 * chore: build 실패시 artifact로 report 보관 * fix: spring build directory 정정 * fix: CI, application.yml profile 맞춤 * fix: CI, yml 문법 * chore: jacoco 추가 * fix: jacocoTestReport * Bp 35 implement email sending (#10) * chore : Spring-mail 의존성 추가 * feat : 이메일, 수신자 엔티티, 레포지토리 생성 * feat : Email전송 컨트롤러 작성 * feat : 이메일서비스 작성 * feat : 이메일 전송 클라이언트 설정, 전송 로직작성 * test : 컨트롤러 테스트 작성 * format : reformat codes indentation 2space로 수정 * feat : 클래스 이름 수정, 연관관계 매핑 * feat : toEntity생성, 적용 * rename : 네이밍 수정 * refactor : 컨벤션에 맞게 의존성 변경 * feat : 기본 트랜잭션 설정 read only로 명시 * refactor : 불필요한 import 제거 * feat : 에러 처리 분기 수정 * test : 이메일 기능 테스트코드 작성 * Bp 27 출석현황조회 api (#11) * feat: 학과 필드 추가 * feat: `AttendanceInfo` DTO, query 구현 * feat: 출석 현황 조회 Controller & Test * feat: 출석 현황 조회 Service * feat: `AttendanceInfo`에 participantId field 추가 * fix: 출석 현황 조회에 멤버 외의 인원이 출석한 경우 error가 발생하지 않도록 수정 * feat: 멤버 출석 현황 수정 기능 * feat: 멤버 출석 현황 수정 controller 작성 및 test * fix: DTO 전환 과정에서 immutable list로 초기화되어 이후 수정이 불가능했던 문제 해결 * fix: 유효하지 않은 `participantId`의 출석 수정 요청 exception handling * fix: Event에 이미 출석이 존재할 경우, 중복 생성을 막음 * chore: gradle task `openapi3`, type casting * style: `MemberToParticipantMapper`에서 `ParticipantMapper`로 이름 변경 * feat: 출석 현황 수정 request payload 형식 변경 * refactor: `Member` To` Participant` Mapping 과정에서 `Member`에 존재하지 않던 `attendance` field를 기본으로 false로 설정 * Bp 36 implement email cancellation (#14) * feature : EmailTask로 네이밍 변경, VO 생성 * remove : 엔티티이름 변경에 따른 클래스 삭제 * feat : 이메일작업 레포지토리생성 * feature : 이메일 작업등록 관련 에러, 에러코드 추가 * feature : 이메일 작업 수정, 조회, 삭제 로직 추가 * feature : DTO와 Mapper 작성 * test : 컨트롤러 테스트 작성 * feat : 이메일 서비스 작성, 헬퍼 클래스 추가 * test : 이메일 서비스 코드 추가 * refactor : 팀 컨벤션 적용 * refactor : 생성자 접근 범위 조정 * refactor : 엔티티 이름 변경에 따른 수정 * test : 테스트코드 수정 * rename : 이메일 클라이언트에서 발생하는 에러코드로 이름 수정 * test : EmailTask 테스트코드 작성 * Bp 38 retrospect crud api implementation (#12) * feat: 이벤트 및 회고 등록 기능 * feat: 이벤트 등록 controller 작성 및 테스트 * feat: 이벤트 회고 조회 기능 * feat: 이벤트 회고 조회 controller & 테스트 * feat: 이벤트 회고 수정 기능 * feat: 이벤트 회고 수정 controller 및 test * refactor: `Retrospect`를 `Event`의 Embedding으로 변경 * fix: `@Valid`를 통한 dto 검증 추가 * Bp 39 implement email scheduler (#15) * feat : 미전송 작업 조회, 작업완료 메소드 추가 * feat : 미전송 작업 쿼리 추가 * feat : 스케줄러 설정파일 작성 * feat : 작업 정보 메모리 저장소 작성 * feat : 작업 조회 관련 에러 및 코드 추가 * feat : 작업 스케줄러 추가 * feat : DTO에서 entity로 파라매터 수정 * feat : 스케줄 관련 업데이트 적용 * feat : 이메일 전송 로그 추가 * test : 이메일 스케줄 서비스 테스트코드 작성 * refactor : unused import 삭제 * test : 이메일 스케줄링 통합테스트 작성 * feat : 작업 스케줄 서비스 추가 * test : 로직 수정 테스트코드에 반영 * style : 카멜케이스 적용 * feat : 에러코드 정의 변경 * feat : cancel중 다른 스레드 접근 불가능하게 락 적용 * refactor : 함수 네이밍 변경 * refactor : remove save() method * rename : EmailScheduleServiceTest 이름 수정 * feat : 디스코드 알림 웹 훅을 위한 클라이언트 작성 * feat : RestTemplate 설정파일 작성 * feat : 디스코드 문자열 상수 정의 * feat : 이메일 전송 에러처리 추가 * rename : 위치 수정 * test : 이메일 전송 실패시 디스코드 알림 테스트 추가 * refactor : 에러를 받아서 디스코드 메세지를 만드는 로직을 디스코드 메세지에서 작성 * test : 디스코드 메세지 테스트 작성 * refactor : 반드시 발생하는 상황 finally로 실행부분 변경 * fix : 이메일 저장후 바로 조회 시 조회가 안되는 이슈 수정 (#16) * fix : 이메일 저장후 바로 조회 시 조회가 안되는 이슈 수정 * fix : 사용하는 메소드 수정에 따른 test코드 모킹 변경 * Bp 37 event crud api implementation (#13) * chore: aws-s3 모듈 추가 * feat: s3 presigned url 기능 * feat: 당장 불필요한 Member Profile Image 주석처리 * change: 이달의 출석 조회를 `EventController`에서 `AttendanceController`로 이동 * feat: S3 Storage Client * feat: `EventImages` * feat: 불필요한 파일 삭제 (`ImageController/Service`) * feat: `Event` CRUD 기능 * feat: `Event` CRUD Controller * fix: 일대다 Mapping에서 변경이 전파되도록 수정 * fix: 이미지 URL을 반환하도록 변경 * fix: 이벤트 상세 조회에 Image key를 반환하도록 수정 * fix: 사진 추가를 Optional하게 변경 * fix: 잘못된 에러 메시지 수정 + object key에 확장자 포함 * fix: Spring Security Matcher가 정상 동작하도록 변경 (출석 Entry 수정) * fix: Spring Security Matcher가 정상 동작하도록 변경 (출석 Entry 수정) * test: 회원 출석 url 변경 반영 * test: 누락되었던 인증 정보 추가 * test: 이벤트 CRU 테스트 * style: redundant 삭제 * refactor: 혼동을 줄이기 위해 `equals` override * refactor: 혼동을 줄이기 위해 `equals`를 `isKeyEqual`로 변경 * feat: S3 object URL에 object key가 포함되어 있음!! * refactor: DTO에 생성 위임 * style: rename(`S3Config` -> `S3Properties`) * refactor: String format으로 + 연산 줄이기 * fix: S3 property를 제대로 읽어오도록 수정 * fix: 모든 Event 조회에 N+1 문제 해결 * Fix redefine email receivers (#17) * fix : 이메일 개수가 증가할 시 제한에 걸리는 이슈로 컬렉션 테이블 분리 * feat : 트랜잭션 템플릿으로 새로운 트랜잭션 생성 및 롤백 * fix : Resttemplate Post요청시 URI타입 캐스팅 * Fix: 로그인 성공 후 스태틱 페이지가 없어 발생하는 에러 수정 (#18) * fix: 로그인 성공 후 스태틱 페이지가 없어 발생하는 에러 수정 * fix: test가 3xx가 아닌 200을 기다리도록 수정 * fix: test가 redirection url을 기대하지 않음 * Fix: error response (#21) * fix: `BusinessException`을 response 할 때, name 대신 `logMessage`를 반환하던 문제 해결 * fix: 4xx 대신 5xx를 반환하던 문제 해결 * fix: fallback handler의 인자를 `RuntimeException`에서 `Exception`으로 변경 * Fix jpa element collection type (#20) * fix : List에서 Set으로 자료구조 변경 * feat : EmailReceviers 자료구조 변경 적용 * feat : Set 삭제, 추가 메소드 * feat : 변경전 수신자들과 비교하는 함수 추가 * feat : 시그니처 변경 및 타입수정 * feat : 업데이트된 수신자와 기존 값 비교후 병합메소드 추가 * refactor : optimize imports * test: 이메일 작업 전송대상 업데이트 필터링 테스트 * Fix: `not found` and `login failure` response (#22) * fix: 404 응답이 500으로 가던 문제 해결 * fix: 로그인 Content-Type이 `x-www-urlencoded`가 아니어서 회원 정보가 제대로 전달되지 않는 경우의 에러 코드 변경 * fix: 로그인 실패 테스트 입력이 의도와 달랐던 문제 해결 * fix: [dev] CORS 비활성화 (#23) * feat: 사용자가 로그인 된 상태인지 확인하는 API (#24) * fix: API에 인증받지 않은 사용자가 요청 시 302 대신 401로 반환하도록 수정 (#25) * fix: 이벤트 이미지가 없을 경우 이벤트를 조회할 수 없던 문제 해결 (#26) * fix: 이벤트에 누락된 속성(`장소`) 추가 (#27) * Refactor attendance api (#28) * Change: include retrospect into event detail (#29) * change: 이벤트 조회에 이벤트 회고가 함께 조회되도록 변경 * style: DTO 파일 위치 컨벤션 통일 * feat: Event 삭제 API (#30) * Fix: cors without nginx (#32) * feat: cors custom filter * feat: cors custom filter 적용 * fix: cors allowed origin을 `localhost:*`에서 `localhost:5173`으로 변경 (#33) * fix: preflight시에 security filter chain을 거치기 전에 성공하도록 수정 (#34) * Change: attendance registration response (#35) * style: image upload/delete method 분리 * change: 출석 및 출석 URL 생성 응답에 body 추가 * change: 출석 QR 만료 요청에 QR UUID가 불필요하게끔 수정 * test: 수정 사항 반영 * fix: 출석 URI이 제대로 생성되도록 수정 * Feat: include receiver name into mail registration (#31) * fix: 확률적으로 실패하던 Test Case 보완 * feat: `EmailReceiver`에 이름 정보가 누락되어 있던 문제 해결 * feat: `{이름}`을 통해 대상 이름을 이메일 양식에 포함할 수 있도록 기능 추가 * test: 수정 사항 반영 (이메일 수신자에 이름 속성 추가) * refactor: 이름 토큰(`{이름}`)을 상수로 정의, 메서드 분리 * test: 이름 토큰(`{이름}`) 치환 동작 확인 테스트 작성 * Feat: request attendance state (#37) * feat: Attendance Status 조회 API * test: Attendance Status 조회 API Test * fix: CORS 재수정 (`List.of` 대신 `Arrays.asList` 사용) + origin에 개발/배포 서버 추가 (#36) * change: EmailTask 전체 조회시, 응답 양식을 EmailTaskDetail 양식처럼 `ReceiverInfos`를 묶음으로 표시 (#39) * Test: use fixture (#38) * test: Fixture 작성 (`Member`, `Event`) * change: 멤버 등록 필요 속성 수정 * change: `WithCustomUser` Annotation을 사용하도록 통일, 관리자 권한이 필요한 API일 경우 해당 권한 테스트에 미리 반영 * test: `MemberFixture` 적용 * test: GWT 다듬기 * style: `EmailDetails`가 Entity가 아닐 경우 단일 Data인 점을 반영하여 `EmailDetail`로 이름 변경 * test: Email Fixture 작성 * test: Email Fixture 적용 * style: `given`절의 메서드가 when보다는 given을 사용하도록 변경 * test: `Attendance` Fixture 작성 * test: `Attendance` Fixture 적용 * test: `Event` Fixture 작성 * test: `Event` Fixture 적용 * test: `Controller` Test를 단위 테스트로 전환 * test: EmailFixture 적용 * fix: 이미 인증된 사용자를 통해 로그인 테스트를 하던 문제 해결 * change: 멤버 출석 성공 시 보여주는 정보 축소 * change: 멤버 출석 등록 시 `Role`을 받도록 수정 * feat: feedback 반영, Test Fixture를 좀 더 Verbose 하게 * test: 변경한 Fixture 반영 * chore: test build에 lombok 사용 * Docs: readme (#19) * docs: readme 초본 * docs: Readme에 다이어그램 추가 * [Draft] Release: `v0.0.0` (#40) * chore: Dockerfile이 app version에 의존적이지 않도록 수정 * chore: spring actuator 추가 * style: `build.gradle` re-format * chore: 기본 타임존을 한국으로 설정 * chore: API 접속 권한 조정 * fix: OAuth redirect URL scheme을 https로 변경 * fix: 로그인 요청은 로그아웃 상태에서도 허용하도록 변경 * fix: csrf 비활성화 (Client Side 추가 설정 필요) * chore: CI를 위해, github action이 h2를 사용하도록 --------- Co-authored-by: ekgns33 <[email protected]>
작업 목표
목표가 아닌 것
확인할 내용