-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Gradle 멀티 모듈 구조 적용
- Loading branch information
Showing
99 changed files
with
602 additions
and
2,047 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
HELP.md | ||
.gradle | ||
build/ | ||
.gradle | ||
!gradle/wrapper/gradle-wrapper.jar | ||
!**/src/main/**/build/ | ||
!**/src/test/**/build/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[submodule "api/src/main/resources/secrets"] | ||
path = api/src/main/resources/secrets | ||
url = https://github.com/BinarySstar/BinarySstar-shared-parking-service-kongju-private-repo.git |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
dependencies { | ||
implementation(project(":core:core-global")) | ||
implementation(project(":core:core-security")) | ||
|
||
implementation(project(":app")) | ||
} | ||
|
||
bootJar.enabled = true | ||
jar.enabled = false |
File renamed without changes.
56 changes: 56 additions & 0 deletions
56
api/src/main/java/univ/goormthon/kongju/auth/AuthController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package univ.goormthon.kongju.auth; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.http.HttpStatus; | ||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.*; | ||
import univ.goormthon.kongju.auth.dto.TokenRequest; | ||
import univ.goormthon.kongju.auth.dto.TokenResponse; | ||
import univ.goormthon.kongju.client.provider.OAuth2UserInfoProvider; | ||
import univ.goormthon.kongju.client.provider.OAuth2UserInfoProviderFactory; | ||
import univ.goormthon.kongju.jwt.JwtProvider; | ||
import univ.goormthon.kongju.member.domain.Member; | ||
import univ.goormthon.kongju.member.service.MemberService; | ||
|
||
import java.util.Map; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
@RequestMapping("/api/v1/auth") | ||
public class AuthController { | ||
|
||
private final JwtProvider jwtProvider; | ||
private final OAuth2UserInfoProviderFactory oAuth2UserInfoProviderFactory; | ||
private final MemberService memberService; | ||
|
||
@PostMapping | ||
public ResponseEntity<TokenResponse> issueToken(@RequestParam String provider, | ||
@RequestBody TokenRequest tokenRequest) { | ||
OAuth2UserInfoProvider providerInstance = oAuth2UserInfoProviderFactory.getProvider(provider); | ||
Map<String, Object> userInfo = providerInstance.getUserInfo(tokenRequest.accessToken()); | ||
Member member = memberService.getMember(userInfo); | ||
|
||
return ResponseEntity.ok(TokenResponse.builder() | ||
.accessToken(jwtProvider.issueAccessToken(member.getEmail())) | ||
.refreshToken(jwtProvider.issueRefreshToken(member.getEmail())) | ||
.build()); | ||
} | ||
|
||
@PostMapping("/refresh") | ||
public ResponseEntity<TokenResponse> refresh(@RequestBody TokenRequest tokenRequest) { | ||
String refreshToken = tokenRequest.refreshToken(); | ||
if (!jwtProvider.isRefreshTokenValid(refreshToken)) { | ||
return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build(); | ||
} | ||
|
||
String email = jwtProvider.getEmailFromToken(refreshToken); | ||
|
||
// 기존 refresh token 만료 | ||
jwtProvider.invalidateRefreshToken(email); | ||
|
||
return ResponseEntity.ok(TokenResponse.builder() | ||
.accessToken(jwtProvider.issueAccessToken(email)) | ||
.refreshToken(jwtProvider.issueRefreshToken(email)) | ||
.build()); | ||
} | ||
} |
2 changes: 1 addition & 1 deletion
2
.../global/jwt/dto/request/TokenRequest.java → ...ormthon/kongju/auth/dto/TokenRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 29 additions & 0 deletions
29
api/src/main/java/univ/goormthon/kongju/profile/ProfileController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package univ.goormthon.kongju.profile; | ||
|
||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
import univ.goormthon.kongju.jwt.MemberContext; | ||
import univ.goormthon.kongju.member.domain.Member; | ||
import univ.goormthon.kongju.member.utils.MemberFinder; | ||
import univ.goormthon.kongju.profile.dto.ProfileResponse; | ||
|
||
@RestController | ||
@RequestMapping("/api/v1/profiles") | ||
public class ProfileController { | ||
|
||
private final MemberFinder memberFinder; | ||
|
||
public ProfileController(MemberFinder memberFinder) { | ||
this.memberFinder = memberFinder; | ||
} | ||
|
||
@GetMapping | ||
public ResponseEntity<ProfileResponse> getProfile() { | ||
String email = MemberContext.getCurrentMemberEmail(); | ||
Member member = memberFinder.findByEmail(email); | ||
return ResponseEntity.ok(ProfileResponse.of(member)); | ||
} | ||
|
||
} |
18 changes: 18 additions & 0 deletions
18
api/src/main/java/univ/goormthon/kongju/profile/dto/ProfileResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package univ.goormthon.kongju.profile.dto; | ||
|
||
import lombok.Builder; | ||
import univ.goormthon.kongju.member.domain.Member; | ||
|
||
@Builder | ||
public record ProfileResponse( | ||
String nickname, String email, String profileImage | ||
) { | ||
|
||
public static ProfileResponse of(Member member) { | ||
return ProfileResponse.builder() | ||
.nickname(member.getNickname()) | ||
.email(member.getEmail()) | ||
.profileImage(member.getProfileImage()) | ||
.build(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
spring: | ||
config: | ||
activate: | ||
on-profile: local | ||
import: | ||
- classpath:secrets/application-common.yml | ||
- classpath:secrets/application-local.yml | ||
--- | ||
spring: | ||
config: | ||
activate: | ||
on-profile: prod | ||
import: | ||
- classpath:secrets/application-common.yml | ||
- classpath:secrets/application-prod.yml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
dependencies { | ||
implementation(project(":core:core-global")) | ||
implementation(project(":infra")) | ||
} |
33 changes: 33 additions & 0 deletions
33
app/src/main/java/univ/goormthon/kongju/member/domain/Member.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package univ.goormthon.kongju.member.domain; | ||
|
||
import lombok.Builder; | ||
import lombok.Getter; | ||
import univ.goormthon.kongju.entity.MemberEntity; | ||
|
||
@Getter | ||
public class Member { | ||
|
||
private Long id; | ||
private Long kakaoId; | ||
private String nickname; | ||
private String email; | ||
private String profileImage; | ||
|
||
@Builder | ||
public Member(Long id, Long kakaoId, String nickname, String email, String profileImage) { | ||
this.id = id; | ||
this.kakaoId = kakaoId; | ||
this.nickname = nickname; | ||
this.email = email; | ||
this.profileImage = profileImage; | ||
} | ||
|
||
public static Member of(MemberEntity memberEntity) { | ||
return Member.builder() | ||
.id(memberEntity.getId()) | ||
.nickname(memberEntity.getNickname()) | ||
.email(memberEntity.getEmail()) | ||
.profileImage(memberEntity.getProfileImage()) | ||
.build(); | ||
} | ||
} |
10 changes: 10 additions & 0 deletions
10
app/src/main/java/univ/goormthon/kongju/member/exception/MemberNotFoundException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package univ.goormthon.kongju.member.exception; | ||
|
||
import univ.goormthon.kongju.exception.KongjuException; | ||
import univ.goormthon.kongju.exception.dto.ErrorCode; | ||
|
||
public class MemberNotFoundException extends KongjuException { | ||
public MemberNotFoundException(ErrorCode errorCode) { | ||
super(errorCode); | ||
} | ||
} |
33 changes: 33 additions & 0 deletions
33
app/src/main/java/univ/goormthon/kongju/member/service/MemberService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package univ.goormthon.kongju.member.service; | ||
|
||
import org.springframework.stereotype.Service; | ||
import univ.goormthon.kongju.member.domain.Member; | ||
import univ.goormthon.kongju.member.utils.MemberFinder; | ||
import univ.goormthon.kongju.member.utils.MemberRegistrant; | ||
|
||
import java.util.Map; | ||
|
||
|
||
@Service | ||
public class MemberService { | ||
|
||
private final MemberFinder memberFinder; | ||
private final MemberRegistrant memberRegistrant; | ||
|
||
public MemberService(MemberFinder memberFinder, MemberRegistrant memberRegistrant) { | ||
this.memberFinder = memberFinder; | ||
this.memberRegistrant = memberRegistrant; | ||
} | ||
|
||
public Member getMember(Map<String, Object> userInfo) { | ||
String email = (String) userInfo.get("email"); | ||
if(!memberFinder.isExistByEmail(email)){ | ||
registerMember(userInfo); | ||
} | ||
return memberFinder.findByEmail(email); | ||
} | ||
|
||
private void registerMember(Map<String, Object> userInfo) { | ||
memberRegistrant.register(userInfo); | ||
} | ||
} |
31 changes: 31 additions & 0 deletions
31
app/src/main/java/univ/goormthon/kongju/member/utils/MemberFinder.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package univ.goormthon.kongju.member.utils; | ||
|
||
import org.springframework.stereotype.Component; | ||
import org.springframework.transaction.annotation.Transactional; | ||
import univ.goormthon.kongju.entity.MemberEntity; | ||
import univ.goormthon.kongju.exception.dto.ErrorCode; | ||
import univ.goormthon.kongju.member.domain.Member; | ||
import univ.goormthon.kongju.member.exception.MemberNotFoundException; | ||
import univ.goormthon.kongju.repository.MemberRepository; | ||
|
||
@Component | ||
public class MemberFinder { | ||
|
||
private final MemberRepository memberRepository; | ||
|
||
public MemberFinder(MemberRepository memberRepository) { | ||
this.memberRepository = memberRepository; | ||
} | ||
|
||
@Transactional(readOnly = true) | ||
public Member findByEmail(String email) { | ||
MemberEntity member = memberRepository.findByEmail(email) | ||
.orElseThrow(() -> new MemberNotFoundException(ErrorCode.MEMBER_NOT_FOUND)); | ||
return Member.of(member); | ||
} | ||
|
||
@Transactional(readOnly = true) | ||
public boolean isExistByEmail(String email) { | ||
return memberRepository.existsByEmail(email); | ||
} | ||
} |
30 changes: 30 additions & 0 deletions
30
app/src/main/java/univ/goormthon/kongju/member/utils/MemberRegistrant.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package univ.goormthon.kongju.member.utils; | ||
|
||
import org.springframework.stereotype.Component; | ||
import org.springframework.transaction.annotation.Transactional; | ||
import univ.goormthon.kongju.entity.MemberEntity; | ||
import univ.goormthon.kongju.member.domain.Member; | ||
import univ.goormthon.kongju.repository.MemberRepository; | ||
|
||
import java.util.Map; | ||
|
||
@Component | ||
public class MemberRegistrant { | ||
|
||
private final MemberRepository memberRepository; | ||
|
||
public MemberRegistrant(MemberRepository memberRepository) { | ||
this.memberRepository = memberRepository; | ||
} | ||
|
||
@Transactional | ||
public Member register(Map<String, Object> userInfo) { | ||
MemberEntity memberEntity = MemberEntity.builder() | ||
.email((String) userInfo.get("email")) | ||
.nickname((String) userInfo.get("nickname")) | ||
.profileImage((String) userInfo.get("profile_image")) | ||
.build(); | ||
|
||
return Member.of(memberRepository.save(memberEntity)); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Oops, something went wrong.