Skip to content

Commit

Permalink
build : Multimodule 설정
Browse files Browse the repository at this point in the history
  • Loading branch information
BlackBean99 committed Aug 22, 2023
1 parent e8e2c57 commit d86a21f
Show file tree
Hide file tree
Showing 52 changed files with 416 additions and 555 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/develop-branch-test-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ jobs:
- name: test
run: ./gradlew test --info --stacktrace --no-daemon

- name: analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: ./gradlew sonar --info --stacktrace --no-daemon
# - name: analyze
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# run: ./gradlew sonar --info --stacktrace --no-daemon
5 changes: 1 addition & 4 deletions IDP-Api/build.gradle
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
//jwt
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'commons-io:commons-io:2.8.0'
implementation 'org.springdoc:springdoc-openapi-ui:1.6.12'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springdoc:springdoc-openapi-ui:1.5.7'
implementation project(':IDP-Domain')
implementation project(':IDP-Common')
implementation project(':IDP-Infrastructure')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import org.springframework.web.filter.ForwardedHeaderFilter;

@RequiredArgsConstructor
@SpringBootApplication
@SpringBootApplication(scanBasePackages = "com.econovation")
@Slf4j
public class IdpApiApplication implements ApplicationListener<ApplicationReadyEvent> {
private final Environment environment;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@

import com.econovation.idpapi.application.port.in.AccountSignUpUseCase;
import com.econovation.idpapi.application.port.in.AccountUseCase;
import com.econovation.idpapi.application.port.in.JwtProviderUseCase;
import com.econovation.idpapi.application.service.AccountJwtService;
import com.econovation.idpapi.common.BasicResponse;
import com.econovation.idpcommon.exception.GetExpiredTimeException;
import com.econovation.idpcommon.jwt.JwtProvider;
import com.econovation.idpdomain.domains.dto.LoginRequestDto;
import com.econovation.idpdomain.domains.dto.LoginResponseDto;
import com.econovation.idpdomain.domains.dto.LoginResponseDtoWithExpiredTime;
import com.econovation.idpdomain.domains.dto.LoginResponseDtoWithRedirectUrl;
import com.econovation.idpdomain.domains.dto.SignUpRequestDto;
import com.econovation.idpdomain.domains.dto.UserResponseMatchedTokenDto;
import com.econovation.idpdomain.domains.users.domain.Account;
import io.reactivex.rxjava3.annotations.Nullable;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
Expand Down Expand Up @@ -47,7 +47,8 @@
public class AccountController {
private final AccountUseCase accountUseCase;
private final AccountSignUpUseCase accountSignUpUseCase;
private final JwtProviderUseCase jwtProviderUseCase;
private final JwtProvider jwtProvider;
private final AccountJwtService accountJwtService;

@Value("${login.page.url}")
private String loginPageUrl;
Expand Down Expand Up @@ -78,7 +79,7 @@ public ResponseEntity<BasicResponse> duplicateCheck(
@GetMapping("/accounts/re-issue")
public ResponseEntity<LoginResponseDto> reIssue(
String refreshToken, HttpServletRequest request) {
if (!jwtProviderUseCase.validateToken(request, refreshToken).isAuthenticated()) {
if (!accountJwtService.validateToken(request, refreshToken).isAuthenticated()) {
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
}
LoginResponseDto responseDto = accountUseCase.reIssueAccessToken(request, refreshToken);
Expand Down Expand Up @@ -108,7 +109,7 @@ public ResponseEntity<?> login(

if (refreshToken != null) {
// 토큰 검증
Authentication authentication = jwtProviderUseCase.validateToken(request, refreshToken);
Authentication authentication = accountJwtService.validateToken(request, refreshToken);
if (!authentication.isAuthenticated()) {
// 검증 실패
BasicResponse result = new BasicResponse("유효하지 않은 토큰입니다.", HttpStatus.OK);
Expand Down Expand Up @@ -173,7 +174,7 @@ private Cookie createRefreshTokenCookie(String refreshToken) {
@GetMapping("/accounts/re-check")
public ResponseEntity<BasicResponse> checkValideToken(
HttpServletRequest request, String refreshToken) {
Authentication authentication = jwtProviderUseCase.validateToken(request, refreshToken);
Authentication authentication = accountJwtService.validateToken(request, refreshToken);
if (!authentication.isAuthenticated()) {
BasicResponse result = new BasicResponse("유효하지 않은 토큰입니다.", HttpStatus.OK);
return new ResponseEntity<>(result, HttpStatus.UNAUTHORIZED);
Expand All @@ -193,7 +194,7 @@ public ResponseEntity<LoginResponseDtoWithExpiredTime> loginWithExpiredTime(
throws URISyntaxException, GetExpiredTimeException {
LoginResponseDto responseDto =
accountUseCase.login(loginDto.getUserEmail(), loginDto.getPassword());
Date expiredTime = jwtProviderUseCase.getExpiredTime(responseDto.getRefreshToken());
Date expiredTime = jwtProvider.getExpiredTime(responseDto.getRefreshToken());
URI redirectUri = new URI(redirectUrl);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setLocation(redirectUri);
Expand All @@ -211,10 +212,4 @@ public ResponseEntity<UserResponseMatchedTokenDto> simpleRequest(HttpServletRequ
UserResponseMatchedTokenDto byAccessToken = accountUseCase.findByAccessToken(accessToken);
return new ResponseEntity<>(byAccessToken, HttpStatus.OK);
}

@GetMapping("/users/me")
public ResponseEntity<Account> findByMe() {
Account account = accountUseCase.findByMe().get();
return ResponseEntity.ok(account);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


import com.econovation.idpapi.application.port.in.AccountUseCase;
import com.econovation.idpapi.application.port.in.JwtProviderUseCase;
import com.econovation.idpapi.application.service.AccountJwtService;
import com.econovation.idpdomain.domains.dto.LoginRequestDto;
import com.econovation.idpdomain.domains.dto.LoginResponseDto;
import io.swagger.v3.oas.annotations.Operation;
Expand Down Expand Up @@ -33,7 +33,8 @@
public class AccountCookieController {
private final AccountUseCase accountUseCase;
private Cookie[] cookies = null;
private final JwtProviderUseCase jwtProviderUseCase;
// private final JwtProviderUseCase jwtProviderUseCase;
private final AccountJwtService accountJwtService;

final long tokenInvalidTime = 1000L * 60 * 60; // 1h

Expand Down Expand Up @@ -96,7 +97,7 @@ public ResponseEntity<LoginResponseDto> reIssue(HttpServletRequest request) {
cookies = request.getCookies();
String refreshToken = getCookieValue(request, "refreshToken");
log.info(refreshToken);
if (!jwtProviderUseCase.validateToken(request, refreshToken).isAuthenticated()) {
if (!accountJwtService.validateToken(request, refreshToken).isAuthenticated()) {
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
}
LoginResponseDto responseDto = accountUseCase.reIssueAccessToken(request, refreshToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import com.econovation.idpapi.application.port.in.UserUseCase;
import com.econovation.idpdomain.domains.dto.NonAccountResponseDto;
import com.econovation.idpdomain.domains.users.domain.Account;
import com.econovation.idpdomain.domains.users.domain.Accounts;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
Expand All @@ -30,7 +30,7 @@ public class NonUserController {
public ResponseEntity<NonAccountResponseDto> findUserById(
@PathVariable(value = "user-id") Long userId) {
HttpHeaders headers = new HttpHeaders();
Account account = userService.findUserById(userId);
Accounts account = userService.findUserById(userId);
NonAccountResponseDto nonAccountResponseDto = account.toNonLoginUser(account);
return new ResponseEntity<>(nonAccountResponseDto, headers, HttpStatus.OK);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.econovation.idpapi.adapter.in.controller;


import com.econovation.idpapi.application.port.in.JwtProviderUseCase;
import com.econovation.idpapi.application.port.in.UserUseCase;
import com.econovation.idpapi.application.service.AccountJwtService;
import com.econovation.idpapi.common.BasicResponse;
import com.econovation.idpdomain.domains.dto.UserFindDto;
import com.econovation.idpdomain.domains.dto.UserPasswordUpdateDto;
import com.econovation.idpdomain.domains.dto.UserUpdateRequestDto;
import com.econovation.idpdomain.domains.users.domain.Account;
import com.econovation.idpdomain.domains.users.domain.Accounts;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
Expand All @@ -34,14 +34,15 @@
@AllArgsConstructor
@CrossOrigin(origins = "*")
@SecurityRequirement(name = "access-token")
@Tag(name = "WebApplication User 제공 서비스", description = "유저 정보 조회")
@Tag(name = "[1.0] User 제공 서비스", description = "유저 정보 조회")
public class UserController {
private final UserUseCase userService;
private final JwtProviderUseCase jwtProviderUseCase;

private final AccountJwtService accountJwtService;

@GetMapping("/api/users/page/{page}")
public ResponseEntity<List<Account>> findUserAll(@PathVariable int page) {
List<Account> listAccount = userService.findAll(page);
public ResponseEntity<List<Accounts>> findUserAll(@PathVariable int page) {
List<Accounts> listAccount = userService.findAll(page);
return new ResponseEntity<>(listAccount, HttpStatus.OK);
}

Expand All @@ -60,9 +61,9 @@ public ResponseEntity<Map> findUserAll(

@Operation(summary = "findUserById", description = "Id로 회원조회")
@GetMapping("/api/users/{user-id}")
public ResponseEntity<Account> findUserById(@PathVariable(value = "user-id") Long userId) {
public ResponseEntity<Accounts> findUserById(@PathVariable(value = "user-id") Long userId) {
HttpHeaders headers = new HttpHeaders();
Account account = userService.findUserById(userId);
Accounts account = userService.findUserById(userId);
return new ResponseEntity<>(account, headers, HttpStatus.OK);
}

Expand All @@ -82,43 +83,43 @@ public ResponseEntity<Long> countAllUser() {

@Operation(summary = "이름으로 회원 조회", description = "동명이인 포함 회원 정보 조회")
@GetMapping("/api/users")
public ResponseEntity<List<Account>> findUserByUserName(String userName) {
List<Account> userListByUserName = userService.findUserByUserName(userName);
public ResponseEntity<List<Accounts>> findUserByUserName(String userName) {
List<Accounts> userListByUserName = userService.findUserByUserName(userName);
return new ResponseEntity<>(userListByUserName, HttpStatus.OK);
}

@Operation(summary = "Role으로 회원 조회", description = "Role(USER,GUEST,ADMIN)로 회원정보 조회 with Page")
@ApiResponses({@ApiResponse(description = "Role에 따른 회원 조횐 return")})
@GetMapping("/api/users/role/{page}/{role}")
public ResponseEntity<List<Account>> findUserByRole(
public ResponseEntity<List<Accounts>> findUserByRole(
@PathVariable int page, @PathVariable String role) {
List<Account> userByRole = userService.findUserByRole(page, role);
List<Accounts> userByRole = userService.findUserByRole(page, role);
return new ResponseEntity<>(userByRole, HttpStatus.OK);
}

@Operation(summary = "Email 찾기 기능", description = "Email 찾기 ( 기수, 이름 ) 으로 조회")
@GetMapping("/api/users/find-email/")
public ResponseEntity<String> findEmail(@Valid UserFindDto userFindDto) {
Account userByYearAndUserName =
Accounts userByYearAndUserName =
userService.findUserByYearAndUserName(
userFindDto.getUserName(), userFindDto.getYear());
return new ResponseEntity<>(userByYearAndUserName.getProfile().getEmail(), HttpStatus.OK);
}

@Operation(summary = "Email로 회원 조회", description = "이메일로 회원 조회")
@GetMapping("/api/users/{userEmail}")
public ResponseEntity<Account> findUserByEmail(@PathVariable String userEmail) {
Account userByUserEmail = userService.findUserByUserEmail(userEmail);
public ResponseEntity<Accounts> findUserByEmail(@PathVariable String userEmail) {
Accounts userByUserEmail = userService.findUserByUserEmail(userEmail);
return new ResponseEntity<>(userByUserEmail, HttpStatus.OK);
}

@Operation(summary = "회원정보 수정", description = "로그인된 상태에서, 회원정보 수정")
@PostMapping("/api/users/")
public ResponseEntity<Account> updateUser(
public ResponseEntity<Accounts> updateUser(
HttpServletRequest request, UserUpdateRequestDto userUpdateRequestDto) {
String accessToken = request.getHeader("Authorization").substring(7);

if (!jwtProviderUseCase.validateToken(request, accessToken).isAuthenticated()) {
if (!accountJwtService.validateToken(request, accessToken).isAuthenticated()) {
return new ResponseEntity<>(HttpStatus.UNAUTHORIZED);
}
return new ResponseEntity<>(userService.updateUser(userUpdateRequestDto), HttpStatus.OK);
Expand All @@ -134,8 +135,8 @@ public ResponseEntity<BasicResponse> deleteUser(@PathVariable Long userId) {

@Operation(summary = "비밀번호 수정", description = "비밀번호 수정")
@PostMapping("/api/users/update/password")
public ResponseEntity<Account> setPassword(@Valid UserPasswordUpdateDto userPasswordUpdateDto) {
Account account = userService.setPassword(userPasswordUpdateDto);
public ResponseEntity<Accounts> setPassword(@Valid UserPasswordUpdateDto userPasswordUpdateDto) {
Accounts account = userService.setPassword(userPasswordUpdateDto);
return new ResponseEntity<>(account, HttpStatus.OK);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
import com.econovation.idpcommon.exception.GetExpiredTimeException;
import com.econovation.idpdomain.domains.dto.LoginResponseDto;
import com.econovation.idpdomain.domains.dto.UserResponseMatchedTokenDto;
import com.econovation.idpdomain.domains.users.domain.Account;
import java.util.Optional;
import javax.servlet.http.HttpServletRequest;

public interface AccountUseCase {
Expand All @@ -16,6 +14,4 @@ public interface AccountUseCase {
public LoginResponseDto login(String email, String password);

public void logout(String refreshToken) throws GetExpiredTimeException;

Optional<Account> findByMe();
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
/*
package com.econovation.idpapi.application.port.in;
import com.econovation.idpcommon.exception.GetExpiredTimeException;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.security.core.Authentication;
public interface JwtProviderUseCase {
public void logout(String refreshToken) throws GetExpiredTimeException;
Expand All @@ -16,6 +13,6 @@ public interface JwtProviderUseCase {
public Date getExpiredTime(String token) throws GetExpiredTimeException;
public Authentication validateToken(HttpServletRequest request, String token);

public Long getIdpId(String token);
}
*/
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,32 @@

import com.econovation.idpdomain.domains.dto.UserPasswordUpdateDto;
import com.econovation.idpdomain.domains.dto.UserUpdateRequestDto;
import com.econovation.idpdomain.domains.users.domain.Account;
import com.econovation.idpdomain.domains.users.domain.Accounts;
import java.util.List;
import java.util.Map;

public interface UserUseCase {
List<Account> findAll(Integer page);
List<Accounts> findAll(Integer page);

Account findUserById(Long userId);
Accounts findUserById(Long userId);

Long countUserByRole(String role);

Long countAllUser();

List<Account> findUserByUserName(String userName);
List<Accounts> findUserByUserName(String userName);

List<Account> findUserByRole(int page, String role);
List<Accounts> findUserByRole(int page, String role);

Account findUserByYearAndUserName(String userName, Integer year);
Accounts findUserByYearAndUserName(String userName, Integer year);

Account findUserByUserEmail(String userEmail);
Accounts findUserByUserEmail(String userEmail);

Account updateUser(UserUpdateRequestDto userUpdateRequestDto);
Accounts updateUser(UserUpdateRequestDto userUpdateRequestDto);

void deleteUserById(Long userId);

Account setPassword(UserPasswordUpdateDto userPasswordUpdateDto);
Accounts setPassword(UserPasswordUpdateDto userPasswordUpdateDto);

Map findAllWithLastPageInPage(Integer page);
}

This file was deleted.

This file was deleted.

Loading

0 comments on commit d86a21f

Please sign in to comment.