diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/domain/converter/OauthMemberEntityConverter.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/domain/converter/OauthMemberEntityConverter.java index e4fcc234..4239dda1 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/domain/converter/OauthMemberEntityConverter.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/domain/converter/OauthMemberEntityConverter.java @@ -1,7 +1,7 @@ package com.blackcompany.eeos.auth.application.domain.converter; import com.blackcompany.eeos.auth.application.domain.OauthMemberModel; -import com.blackcompany.eeos.auth.persistence.OAuthMemberEntity; +import com.blackcompany.eeos.auth.persistence.oauth.OAuthMemberEntity; import com.blackcompany.eeos.common.support.converter.AbstractEntityConverter; import org.springframework.stereotype.Component; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AccountEntityConverter.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AccountEntityConverter.java index 7810a4b9..3b7212b4 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AccountEntityConverter.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AccountEntityConverter.java @@ -1,6 +1,6 @@ package com.blackcompany.eeos.auth.application.model; -import com.blackcompany.eeos.auth.persistence.AccountEntity; +import com.blackcompany.eeos.auth.persistence.account.AccountEntity; import com.blackcompany.eeos.common.support.converter.AbstractEntityConverter; import org.springframework.stereotype.Component; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AuthorityModel.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AuthorityModel.java index d628e984..625184ce 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AuthorityModel.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/AuthorityModel.java @@ -12,5 +12,9 @@ public class AuthorityModel implements AbstractModel { private final Long id; private final Long memberId; - private final String name; // TODO: ROLE enum 으로 변경 + private final Role role; + + public static AuthorityModel create(Long memberId, Role role) { + return AuthorityModel.builder().role(role).memberId(memberId).build(); + } } diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/Role.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/Role.java index 270bfde8..f051200e 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/Role.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/model/Role.java @@ -4,8 +4,8 @@ @Getter public enum Role { - ADMIN("ADMIN"), - USER("USER"); + ROLE_ADMIN("ADMIN"), + ROLE_USER("USER"); private String role; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OAuthMemberRepository.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OAuthMemberRepository.java index e29c82de..43a6ddb8 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OAuthMemberRepository.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OAuthMemberRepository.java @@ -1,7 +1,7 @@ package com.blackcompany.eeos.auth.application.repository; import com.blackcompany.eeos.auth.application.domain.OauthMemberModel; -import com.blackcompany.eeos.auth.persistence.OAuthMemberEntity; +import com.blackcompany.eeos.auth.persistence.oauth.OAuthMemberEntity; import java.util.Optional; public interface OAuthMemberRepository { diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OauthVerificationStorage.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OauthVerificationStorage.java index 941438d0..df137565 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OauthVerificationStorage.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/repository/OauthVerificationStorage.java @@ -1,7 +1,7 @@ package com.blackcompany.eeos.auth.application.repository; import com.blackcompany.eeos.auth.application.domain.OauthMemberModel; -import com.blackcompany.eeos.auth.persistence.OAuthInfo; +import com.blackcompany.eeos.auth.persistence.oauth.OAuthInfo; import java.util.UUID; public interface OauthVerificationStorage { diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthFacadeService.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthFacadeService.java index 40a20530..b30813d3 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthFacadeService.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthFacadeService.java @@ -4,6 +4,7 @@ import com.blackcompany.eeos.auth.application.domain.TokenModel; import com.blackcompany.eeos.auth.application.dto.request.OAuthLoginRequestCommand; import com.blackcompany.eeos.auth.application.model.AuthorityModel; +import com.blackcompany.eeos.auth.application.model.Role; import com.blackcompany.eeos.auth.application.repository.AuthorityRepository; import com.blackcompany.eeos.auth.application.support.AuthenticationTokenGenerator; import com.blackcompany.eeos.auth.application.usecase.LoginUsecase; @@ -27,10 +28,7 @@ public TokenModel login(OAuthLoginRequestCommand command) { oauthClientService.getOauthMember(command.oauthServerType(), command.code(), command.uri()); Long memberId = authService.authenticate(model); - Set authorities = - authorityRepository.findByMemberId(memberId).stream() - .map(AuthorityModel::getName) - .collect(Collectors.toSet()); + Set authorities = getRoles(memberId); return authenticationTokenGenerator.execute(memberId, authorities); } @@ -40,11 +38,15 @@ public TokenModel login(String loginId, String password) { MemberModel model = authService.authenticate(loginId, password); Long memberId = model.getMemberId(); - Set authorities = - authorityRepository.findByMemberId(memberId).stream() - .map(AuthorityModel::getName) - .collect(Collectors.toSet()); + Set authorities = getRoles(memberId); return authenticationTokenGenerator.execute(memberId, authorities); } + + private Set getRoles(Long memberId) { + return authorityRepository.findByMemberId(memberId).stream() + .map(AuthorityModel::getRole) + .map(Role::name) + .collect(Collectors.toSet()); + } } diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthService.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthService.java index 0440550f..dbc0e5f2 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthService.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/AuthService.java @@ -59,10 +59,7 @@ private OauthMemberModel signUpMember(final OauthMemberModel model) { .build(); MemberModel savedMember = memberRepository.save(member); - AuthorityModel authorityModel = - AuthorityModel.builder().memberId(savedMember.getMemberId()).name(Role.USER.name()).build(); - - authorityRepository.save(authorityModel); + authorityRepository.save(AuthorityModel.create(savedMember.getMemberId(), Role.ROLE_USER)); OauthMemberModel updatedModel = model.toBuilder().memberId(savedMember.getId()).build(); return oAuthMemberRepository.save(updatedModel); diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/DeactivateMemberService.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/DeactivateMemberService.java index abed894d..b258ecf9 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/DeactivateMemberService.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/DeactivateMemberService.java @@ -5,8 +5,8 @@ import com.blackcompany.eeos.auth.application.repository.OAuthMemberRepository; import com.blackcompany.eeos.auth.application.usecase.LogOutUsecase; import com.blackcompany.eeos.auth.application.usecase.WithDrawUsecase; -import com.blackcompany.eeos.auth.persistence.AccountJpaRepository; import com.blackcompany.eeos.auth.persistence.InvalidTokenRepository; +import com.blackcompany.eeos.auth.persistence.account.AccountJpaRepository; import com.blackcompany.eeos.member.application.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.context.ApplicationEventPublisher; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/SignUpService.java b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/SignUpService.java index a1679852..b7ed80e4 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/SignUpService.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/application/service/SignUpService.java @@ -10,7 +10,7 @@ import com.blackcompany.eeos.auth.application.repository.OauthVerificationStorage; import com.blackcompany.eeos.auth.application.support.AuthenticationTokenGenerator; import com.blackcompany.eeos.auth.application.usecase.OAuthSignUpUseCase; -import com.blackcompany.eeos.auth.persistence.OAuthInfo; +import com.blackcompany.eeos.auth.persistence.oauth.OAuthInfo; import com.blackcompany.eeos.member.application.model.ActiveStatus; import com.blackcompany.eeos.member.application.model.MemberModel; import com.blackcompany.eeos.member.application.repository.MemberRepository; @@ -42,7 +42,7 @@ public TokenModel signUp(AdditionalInfoApplicationCommand command) { MemberModel savedMember = memberRepository.save(memberModel); saveOAuth(oAuthInfo.getOauthId(), savedMember.getMemberId()); - saveAuthority(savedMember.getMemberId(), "ROLE_" + Role.USER.getRole()); + saveAuthority(savedMember.getMemberId(), Role.ROLE_USER); // TODO: 일반 USER 권한인지 아닌지 계산해주는 도구 추가 @@ -56,8 +56,8 @@ private void saveOAuth(String oAuthId, Long memberId) { oAuthMemberRepository.save(oauthMemberModel); } - private void saveAuthority(Long memberId, String role) { - AuthorityModel authorityModel = AuthorityModel.builder().memberId(memberId).name(role).build(); + private void saveAuthority(Long memberId, Role role) { + AuthorityModel authorityModel = AuthorityModel.builder().memberId(memberId).role(role).build(); authorityRepository.save(authorityModel); } diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountEntity.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountEntity.java similarity index 95% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountEntity.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountEntity.java index 6b3d9fa1..6fb0b753 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountEntity.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountEntity.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.account; import com.blackcompany.eeos.common.persistence.BaseEntity; import jakarta.persistence.Column; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountJpaRepository.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountJpaRepository.java similarity index 91% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountJpaRepository.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountJpaRepository.java index 3bda3278..1212f421 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountJpaRepository.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountJpaRepository.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.account; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountRepositoryImpl.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountRepositoryImpl.java similarity index 94% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountRepositoryImpl.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountRepositoryImpl.java index c74a6eff..a1476661 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AccountRepositoryImpl.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/account/AccountRepositoryImpl.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.account; import com.blackcompany.eeos.auth.application.exception.NotFoundAccountException; import com.blackcompany.eeos.auth.application.model.AccountModel; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityEntity.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityEntity.java similarity index 81% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityEntity.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityEntity.java index 9100af63..3e0ddaee 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityEntity.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityEntity.java @@ -1,8 +1,11 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.authority; +import com.blackcompany.eeos.auth.application.model.Role; import com.blackcompany.eeos.common.persistence.BaseEntity; import jakarta.persistence.Column; import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; @@ -35,6 +38,7 @@ public class AuthorityEntity extends BaseEntity { @Column(nullable = false, name = NAME + "_member_id") private Long memberId; + @Enumerated(EnumType.STRING) @Column(nullable = false, name = NAME + "_role") - private String role; + private Role role; } diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityJpaRepository.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityJpaRepository.java similarity index 88% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityJpaRepository.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityJpaRepository.java index e26ed179..4a287859 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityJpaRepository.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityJpaRepository.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.authority; import java.util.Set; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityRepositoryImpl.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityRepositoryImpl.java similarity index 90% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityRepositoryImpl.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityRepositoryImpl.java index 36574d31..83a1d326 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/AuthorityRepositoryImpl.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/authority/AuthorityRepositoryImpl.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.authority; import com.blackcompany.eeos.auth.application.model.AuthorityModel; import com.blackcompany.eeos.auth.application.repository.AuthorityRepository; @@ -26,14 +26,14 @@ public Long save(AuthorityModel authorityModel) { } private AuthorityEntity toEntity(AuthorityModel model) { - return AuthorityEntity.builder().memberId(model.getMemberId()).role(model.getName()).build(); + return AuthorityEntity.builder().memberId(model.getMemberId()).role(model.getRole()).build(); } private AuthorityModel toModel(AuthorityEntity entity) { return AuthorityModel.builder() .id(entity.getId()) .memberId(entity.getMemberId()) - .name(entity.getRole()) + .role(entity.getRole()) .build(); } } diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/JpaOAuthMemberRepository.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/JpaOAuthMemberRepository.java similarity index 93% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/JpaOAuthMemberRepository.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/JpaOAuthMemberRepository.java index cdb19ef9..2d7e3093 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/JpaOAuthMemberRepository.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/JpaOAuthMemberRepository.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.oauth; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthInfo.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthInfo.java similarity index 87% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthInfo.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthInfo.java index 92447abd..5d947337 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthInfo.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthInfo.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.oauth; import com.blackcompany.eeos.auth.application.domain.OauthServerType; import lombok.AllArgsConstructor; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthMemberEntity.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthMemberEntity.java similarity index 95% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthMemberEntity.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthMemberEntity.java index 9a5ac42a..73a7fdc5 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthMemberEntity.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthMemberEntity.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.oauth; import com.blackcompany.eeos.common.persistence.BaseEntity; import jakarta.persistence.Column; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthMemberRepositoryImpl.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthMemberRepositoryImpl.java similarity index 96% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthMemberRepositoryImpl.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthMemberRepositoryImpl.java index 60425d40..d50dee0b 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OAuthMemberRepositoryImpl.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OAuthMemberRepositoryImpl.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.oauth; import com.blackcompany.eeos.auth.application.domain.OauthMemberModel; import com.blackcompany.eeos.auth.application.domain.converter.OauthMemberEntityConverter; diff --git a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OauthVerificationStorageImpl.java b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OauthVerificationStorageImpl.java similarity index 96% rename from eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OauthVerificationStorageImpl.java rename to eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OauthVerificationStorageImpl.java index ad7fc906..db8fbf30 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/OauthVerificationStorageImpl.java +++ b/eeos/src/main/java/com/blackcompany/eeos/auth/persistence/oauth/OauthVerificationStorageImpl.java @@ -1,4 +1,4 @@ -package com.blackcompany.eeos.auth.persistence; +package com.blackcompany.eeos.auth.persistence.oauth; import com.blackcompany.eeos.auth.application.domain.OauthMemberModel; import com.blackcompany.eeos.auth.application.repository.OauthVerificationStorage; diff --git a/eeos/src/main/java/com/blackcompany/eeos/config/security/SecurityFilterChainConfig.java b/eeos/src/main/java/com/blackcompany/eeos/config/security/SecurityFilterChainConfig.java index 171eee77..3f0f16a7 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/config/security/SecurityFilterChainConfig.java +++ b/eeos/src/main/java/com/blackcompany/eeos/config/security/SecurityFilterChainConfig.java @@ -17,7 +17,7 @@ @RequiredArgsConstructor public class SecurityFilterChainConfig { - private static final String ADMIN = Role.ADMIN.name(); + private static final String ADMIN = Role.ROLE_ADMIN.getRole(); private final AccessTokenFilter authFilter; private final OptionsFilter optionsFilter; private final DynamicCorsConfigurationSource corsConfigurationSource; @@ -48,6 +48,7 @@ SecurityFilterChain nonAuthenticated(HttpSecurity httpSecurity) throws Exception httpSecurity.securityMatchers( (matcher) -> { matcher + .requestMatchers(HttpMethod.OPTIONS, "/**") // CORS Preflight 매칭 .requestMatchers("/api/auth/logout") .requestMatchers("/api/auth/login/additional-info") .requestMatchers(HttpMethod.POST, "/api/auth/login/**") diff --git a/eeos/src/main/java/com/blackcompany/eeos/member/application/service/CreateAdminMemberService.java b/eeos/src/main/java/com/blackcompany/eeos/member/application/service/CreateAdminMemberService.java index 113ee0a1..d937902b 100644 --- a/eeos/src/main/java/com/blackcompany/eeos/member/application/service/CreateAdminMemberService.java +++ b/eeos/src/main/java/com/blackcompany/eeos/member/application/service/CreateAdminMemberService.java @@ -6,8 +6,8 @@ import com.blackcompany.eeos.auth.application.model.Role; import com.blackcompany.eeos.auth.application.repository.AuthorityRepository; import com.blackcompany.eeos.auth.application.repository.OAuthMemberRepository; -import com.blackcompany.eeos.auth.persistence.AccountEntity; -import com.blackcompany.eeos.auth.persistence.AccountJpaRepository; +import com.blackcompany.eeos.auth.persistence.account.AccountEntity; +import com.blackcompany.eeos.auth.persistence.account.AccountJpaRepository; import com.blackcompany.eeos.member.application.model.AdminInfo; import com.blackcompany.eeos.member.application.model.MemberModel; import com.blackcompany.eeos.member.application.repository.MemberRepository; @@ -45,7 +45,7 @@ public Long create() { MemberModel savedMember = memberRepository.save(createMember()); saveAccount(accountEntityConverter.toEntity(createAccount(savedMember.getId()))); - saveAuthority(savedMember.getMemberId(), "ROLE_" + Role.ADMIN.getRole()); + saveAuthority(savedMember.getMemberId(), Role.ROLE_ADMIN); return savedMember.getId(); } @@ -79,10 +79,8 @@ private AccountModel createAccount(Long memberId) { .build(); } - private void saveAuthority(Long memberId, String role) { - AuthorityModel authorityModel = AuthorityModel.builder().memberId(memberId).name(role).build(); - - authorityRepository.save(authorityModel); + private void saveAuthority(Long memberId, Role role) { + authorityRepository.save(AuthorityModel.create(memberId, role)); } private boolean findAdminAccount() { diff --git a/eeos/src/test/java/com/blackcompany/eeos/auth/application/domain/token/JwtTestUtil.java b/eeos/src/test/java/com/blackcompany/eeos/auth/application/domain/token/JwtTestUtil.java index 51997cf9..18589bfb 100644 --- a/eeos/src/test/java/com/blackcompany/eeos/auth/application/domain/token/JwtTestUtil.java +++ b/eeos/src/test/java/com/blackcompany/eeos/auth/application/domain/token/JwtTestUtil.java @@ -1,5 +1,6 @@ package com.blackcompany.eeos.auth.application.domain.token; +import com.blackcompany.eeos.auth.application.model.Role; import io.jsonwebtoken.Header; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.security.Keys; @@ -10,7 +11,7 @@ public class JwtTestUtil { - public static String createToken(Long memberId, String role) { + public static String createToken(Long memberId, Role role) { final Date now = Date.from(Instant.now()); final long accessValidTime = 3600 * 1000; @@ -18,7 +19,7 @@ public static String createToken(Long memberId, String role) { return Jwts.builder() .setHeaderParam(Header.TYPE, Header.JWT_TYPE) .claim("memberId", memberId) - .claim("role", role) + .claim("role", role.name()) .setIssuedAt(now) .setExpiration(new Date(now.getTime() + accessValidTime)) .signWith(createRandomKey()) diff --git a/eeos/src/test/java/com/blackcompany/eeos/auth/application/service/AuthFacadeServiceTest.java b/eeos/src/test/java/com/blackcompany/eeos/auth/application/service/AuthFacadeServiceTest.java index 06468893..e01cb268 100644 --- a/eeos/src/test/java/com/blackcompany/eeos/auth/application/service/AuthFacadeServiceTest.java +++ b/eeos/src/test/java/com/blackcompany/eeos/auth/application/service/AuthFacadeServiceTest.java @@ -6,6 +6,7 @@ import com.blackcompany.eeos.auth.application.domain.OauthServerType; import com.blackcompany.eeos.auth.application.dto.request.OAuthLoginRequestCommand; import com.blackcompany.eeos.auth.application.model.AuthorityModel; +import com.blackcompany.eeos.auth.application.model.Role; import com.blackcompany.eeos.auth.application.repository.AuthorityRepository; import com.blackcompany.eeos.auth.application.support.AuthenticationTokenGenerator; import com.blackcompany.eeos.auth.fixture.FakeAuthority; @@ -37,9 +38,13 @@ void response_token() { String authCode = "code"; Long memberId = 1L; String uri = "uri"; - Set authorities = Set.of(FakeAuthority.authorityModel(1L, memberId, "role")); + Set authorities = + Set.of(FakeAuthority.authorityModel(1L, memberId, Role.ROLE_USER)); Set roles = - authorities.stream().map(AuthorityModel::getName).collect(Collectors.toSet()); + authorities.stream() + .map(AuthorityModel::getRole) + .map(Role::name) + .collect(Collectors.toSet()); OauthMemberModel oauthMemberModel = FakeOauthMember.oauthMemberModel(OauthServerType.SLACK, memberId); diff --git a/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeAuthority.java b/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeAuthority.java index 149da36b..d6914939 100644 --- a/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeAuthority.java +++ b/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeAuthority.java @@ -1,10 +1,11 @@ package com.blackcompany.eeos.auth.fixture; import com.blackcompany.eeos.auth.application.model.AuthorityModel; +import com.blackcompany.eeos.auth.application.model.Role; public class FakeAuthority { - public static AuthorityModel authorityModel(Long id, Long memberId, String role) { - return AuthorityModel.builder().id(id).memberId(memberId).name(role).build(); + public static AuthorityModel authorityModel(Long id, Long memberId, Role role) { + return AuthorityModel.builder().id(id).memberId(memberId).role(role).build(); } } diff --git a/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeOauthMember.java b/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeOauthMember.java index cf8cf491..dad196f0 100644 --- a/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeOauthMember.java +++ b/eeos/src/test/java/com/blackcompany/eeos/auth/fixture/FakeOauthMember.java @@ -2,7 +2,7 @@ import com.blackcompany.eeos.auth.application.domain.OauthMemberModel; import com.blackcompany.eeos.auth.application.domain.OauthServerType; -import com.blackcompany.eeos.auth.persistence.OAuthMemberEntity; +import com.blackcompany.eeos.auth.persistence.oauth.OAuthMemberEntity; public class FakeOauthMember { public static OauthMemberModel oauthMemberModel(OauthServerType type, Long memberId) { diff --git a/eeos/src/test/java/com/blackcompany/eeos/config/SpringSecurityFilterChainTest.java b/eeos/src/test/java/com/blackcompany/eeos/config/SpringSecurityFilterChainTest.java index c07bc282..226bf494 100644 --- a/eeos/src/test/java/com/blackcompany/eeos/config/SpringSecurityFilterChainTest.java +++ b/eeos/src/test/java/com/blackcompany/eeos/config/SpringSecurityFilterChainTest.java @@ -10,6 +10,7 @@ import com.blackcompany.eeos.auth.application.domain.token.JwtTestUtil; import com.blackcompany.eeos.auth.application.domain.token.TokenProvider; import com.blackcompany.eeos.auth.application.domain.token.TokenResolver; +import com.blackcompany.eeos.auth.application.model.Role; import com.blackcompany.eeos.auth.application.service.AuthService; import com.blackcompany.eeos.member.application.model.ActiveStatus; import com.blackcompany.eeos.member.application.model.MemberModel; @@ -74,7 +75,7 @@ void healthCheckShouldReturn200() throws Exception { @DisplayName("2-1. 인증이 필요한 엔드포인트 - 일반 유저") class UserEndpoints { - private final String VALID_JWT = JwtTestUtil.createToken(1L, "ROLE_USER"); + private final String VALID_JWT = JwtTestUtil.createToken(1L, Role.ROLE_USER); @BeforeEach void setAccessToken() { @@ -84,7 +85,7 @@ void setAccessToken() { given(tokenResolver.getExpiredDateByAccessToken(VALID_JWT)) .willReturn(Date.from(Instant.now()).getTime()); - given(tokenResolver.getRoles(VALID_JWT)).willReturn(List.of("ROLE_USER")); + given(tokenResolver.getRoles(VALID_JWT)).willReturn(List.of(Role.ROLE_USER.getRole())); } @Test @@ -167,7 +168,7 @@ private String bearerToken() { @Nested @DisplayName("2-2. 인증이 필요한 엔드포인트 - 관리자") class AdminEndPoint { - private final String VALID_JWT = JwtTestUtil.createToken(1L, "ROLE_ADMIN"); + private final String VALID_JWT = JwtTestUtil.createToken(1L, Role.ROLE_ADMIN); @BeforeEach void setAccessToken() { @@ -177,7 +178,7 @@ void setAccessToken() { given(tokenResolver.getExpiredDateByAccessToken(VALID_JWT)) .willReturn(Date.from(Instant.now()).getTime()); - given(tokenResolver.getRoles(VALID_JWT)).willReturn(List.of("ROLE_ADMIN")); + given(tokenResolver.getRoles(VALID_JWT)).willReturn(List.of(Role.ROLE_ADMIN.name())); } @Test