diff --git a/src/main/java/com/eactive/httpmockserver/common/exception/CustomGlobalExceptionHandler.java b/src/main/java/com/eactive/httpmockserver/common/exception/CustomGlobalExceptionHandler.java index 859a045..eb663ea 100644 --- a/src/main/java/com/eactive/httpmockserver/common/exception/CustomGlobalExceptionHandler.java +++ b/src/main/java/com/eactive/httpmockserver/common/exception/CustomGlobalExceptionHandler.java @@ -3,13 +3,14 @@ package com.eactive.httpmockserver.common.exception; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.context.request.WebRequest; import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; import java.time.LocalDateTime; -@RestControllerAdvice +@RestControllerAdvice(annotations = RestController.class) public class CustomGlobalExceptionHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(NotFoundException.class) diff --git a/src/main/java/com/eactive/httpmockserver/common/interceptor/AuthenticInterceptor.java b/src/main/java/com/eactive/httpmockserver/common/interceptor/AuthenticInterceptor.java index cea26c7..7bd5d8e 100644 --- a/src/main/java/com/eactive/httpmockserver/common/interceptor/AuthenticInterceptor.java +++ b/src/main/java/com/eactive/httpmockserver/common/interceptor/AuthenticInterceptor.java @@ -55,7 +55,7 @@ public class AuthenticInterceptor implements AsyncHandlerInterceptor { boolean found = findPattern(request.getRequestURI()); if (found) { - if (currentUser.getUserSecurity() != null && "ROLE_ADMIN".equals(currentUser.getUserSecurity().getAuthorCode())) { + if (currentUser.getUserSecurity() != null && "ROLE_ADMIN".equals(currentUser.getUserSecurity())) { return true; } else { ModelAndView redirectLoginView = new ModelAndView("redirect:/"); diff --git a/src/main/java/com/eactive/httpmockserver/config/WebMvcConfig.java b/src/main/java/com/eactive/httpmockserver/config/WebMvcConfig.java index 666e9a0..4b4e927 100644 --- a/src/main/java/com/eactive/httpmockserver/config/WebMvcConfig.java +++ b/src/main/java/com/eactive/httpmockserver/config/WebMvcConfig.java @@ -28,7 +28,8 @@ public class WebMvcConfig implements WebMvcConfigurer { private List listAdminAuthPattern() { List patterns = new ArrayList<>(); - patterns.add("/mgmt/**/*.do"); + patterns.add("/mgmt/users/*.do"); + patterns.add("/mgmt/servers/*.do"); return patterns; } diff --git a/src/main/java/com/eactive/httpmockserver/user/controller/AdminRegisterController.java b/src/main/java/com/eactive/httpmockserver/user/controller/AdminRegisterController.java index d9735bf..7674e73 100644 --- a/src/main/java/com/eactive/httpmockserver/user/controller/AdminRegisterController.java +++ b/src/main/java/com/eactive/httpmockserver/user/controller/AdminRegisterController.java @@ -59,6 +59,7 @@ public class AdminRegisterController { } StaffUser newUser = staffUserMapper.map(user); + newUser.setUserSecurity("ROLE_ADMIN"); staffUserService.create(newUser); return "redirect:/login"; } diff --git a/src/main/java/com/eactive/httpmockserver/user/dto/UserRegisterDTO.java b/src/main/java/com/eactive/httpmockserver/user/dto/UserRegisterDTO.java index 664b235..e6a2793 100644 --- a/src/main/java/com/eactive/httpmockserver/user/dto/UserRegisterDTO.java +++ b/src/main/java/com/eactive/httpmockserver/user/dto/UserRegisterDTO.java @@ -55,6 +55,8 @@ public class UserRegisterDTO implements Serializable { @NotEmpty private String username; + private String userSecurity; + public String getEsntlId() { return esntlId; } @@ -110,4 +112,12 @@ public class UserRegisterDTO implements Serializable { public void setPassword2(String password2) { this.password2 = password2; } + + public String getUserSecurity() { + return userSecurity; + } + + public void setUserSecurity(String userSecurity) { + this.userSecurity = userSecurity; + } } diff --git a/src/main/java/com/eactive/httpmockserver/user/dto/UserUpdateDTO.java b/src/main/java/com/eactive/httpmockserver/user/dto/UserUpdateDTO.java index e344f28..2306db1 100644 --- a/src/main/java/com/eactive/httpmockserver/user/dto/UserUpdateDTO.java +++ b/src/main/java/com/eactive/httpmockserver/user/dto/UserUpdateDTO.java @@ -33,6 +33,7 @@ public class UserUpdateDTO implements Serializable { @NotEmpty private String mobilePhone; + private String userSecurity; /** * 사용자명 */ @@ -89,4 +90,12 @@ public class UserUpdateDTO implements Serializable { public void setLockAt(EnabledStatus lockAt) { this.lockAt = lockAt; } + + public String getUserSecurity() { + return userSecurity; + } + + public void setUserSecurity(String userSecurity) { + this.userSecurity = userSecurity; + } } diff --git a/src/main/java/com/eactive/httpmockserver/user/entity/AnonymousUser.java b/src/main/java/com/eactive/httpmockserver/user/entity/AnonymousUser.java index 316c42b..3f7d4fc 100644 --- a/src/main/java/com/eactive/httpmockserver/user/entity/AnonymousUser.java +++ b/src/main/java/com/eactive/httpmockserver/user/entity/AnonymousUser.java @@ -5,7 +5,7 @@ public class AnonymousUser extends User { public AnonymousUser() { this.userId = "ANONYMOUS"; - this.setUserSecurity(new UserSecurity("ROLE_ANONYMOUS")); + this.setUserSecurity("ROLE_ANONYMOUS"); } @Override diff --git a/src/main/java/com/eactive/httpmockserver/user/entity/User.java b/src/main/java/com/eactive/httpmockserver/user/entity/User.java index d119d30..e56bf14 100644 --- a/src/main/java/com/eactive/httpmockserver/user/entity/User.java +++ b/src/main/java/com/eactive/httpmockserver/user/entity/User.java @@ -51,9 +51,8 @@ public abstract class User extends Auditable implements Serializable, UserDetail @Transient private String ip; - @OneToOne(fetch = FetchType.EAGER) - @JoinColumn(name = "ESNTL_ID", referencedColumnName = "SCRTY_DTRMN_TRGET_ID", insertable = false, updatable = false) - private UserSecurity userSecurity; + @Column(name = "USER_SECURITY") + private String userSecurity; public String getEsntlId() { return esntlId; @@ -125,7 +124,7 @@ public abstract class User extends Auditable implements Serializable, UserDetail @Transient public Collection getAuthorities() { if (userSecurity != null) { - return Arrays.asList(new SimpleGrantedAuthority(userSecurity.getAuthorCode())); + return Arrays.asList(new SimpleGrantedAuthority(this.userSecurity)); } else { return Arrays.asList(new SimpleGrantedAuthority("ROLE_USER")); } @@ -155,11 +154,11 @@ public abstract class User extends Auditable implements Serializable, UserDetail return getStatus().equals(UserStatus.ACTIVE); } - public UserSecurity getUserSecurity() { + public String getUserSecurity() { return userSecurity; } - public void setUserSecurity(UserSecurity userSecurity) { + public void setUserSecurity(String userSecurity) { this.userSecurity = userSecurity; } } diff --git a/src/main/java/com/eactive/httpmockserver/user/entity/UserSecurity.java b/src/main/java/com/eactive/httpmockserver/user/entity/UserSecurity.java deleted file mode 100644 index 3a17d9d..0000000 --- a/src/main/java/com/eactive/httpmockserver/user/entity/UserSecurity.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.eactive.httpmockserver.user.entity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import java.io.Serializable; - -/** - * COMTNEMPLYRSCRTYESTBS 사용자보안설정 - * - * @author - * @version 1.0 - */ -@Entity -@Table(name = "COMTNEMPLYRSCRTYESTBS") -public class UserSecurity implements Serializable { - public UserSecurity() { - } - - public UserSecurity(String authorCode) { - this.authorCode = authorCode; - } - - /** - * 권한코드 - */ - @Column(name = "AUTHOR_CODE", nullable = false) - private String authorCode; - - /** - * 회원유형코드 - */ - @Column(name = "MBER_TY_CODE", nullable = true) - private String memberTypeCode; - - /** - * 보안설정대상ID - */ - @Id - @Column(name = "SCRTY_DTRMN_TRGET_ID", nullable = false) - private String userEsntlId; - - - public String getAuthorCode() { - return authorCode; - } - - public void setAuthorCode(String authorCode) { - this.authorCode = authorCode; - } - - public String getMemberTypeCode() { - return memberTypeCode; - } - - public void setMemberTypeCode(String memberTypeCode) { - this.memberTypeCode = memberTypeCode; - } - - public String getUserEsntlId() { - return userEsntlId; - } - - public void setUserEsntlId(String userEsntlId) { - this.userEsntlId = userEsntlId; - } -} diff --git a/src/main/java/com/eactive/httpmockserver/user/mapper/StaffUserMapper.java b/src/main/java/com/eactive/httpmockserver/user/mapper/StaffUserMapper.java index 4eab7c7..1c68cc8 100644 --- a/src/main/java/com/eactive/httpmockserver/user/mapper/StaffUserMapper.java +++ b/src/main/java/com/eactive/httpmockserver/user/mapper/StaffUserMapper.java @@ -6,6 +6,7 @@ import com.eactive.httpmockserver.user.dto.UserUpdateDTO; import com.eactive.httpmockserver.user.entity.StaffUser; import com.eactive.httpmockserver.common.mapper.CommonMapper; import com.eactive.httpmockserver.common.util.EncryptionUtil; +import org.apache.commons.lang3.StringUtils; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.ReportingPolicy; diff --git a/src/main/java/com/eactive/httpmockserver/user/repository/UserSecurityRepository.java b/src/main/java/com/eactive/httpmockserver/user/repository/UserSecurityRepository.java deleted file mode 100644 index 8323cc3..0000000 --- a/src/main/java/com/eactive/httpmockserver/user/repository/UserSecurityRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.eactive.httpmockserver.user.repository; - -import com.eactive.httpmockserver.user.entity.UserSecurity; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface UserSecurityRepository extends JpaRepository { -} diff --git a/src/main/java/com/eactive/httpmockserver/user/service/StaffUserService.java b/src/main/java/com/eactive/httpmockserver/user/service/StaffUserService.java index fdf415f..14c445f 100644 --- a/src/main/java/com/eactive/httpmockserver/user/service/StaffUserService.java +++ b/src/main/java/com/eactive/httpmockserver/user/service/StaffUserService.java @@ -1,10 +1,8 @@ package com.eactive.httpmockserver.user.service; import com.eactive.httpmockserver.user.entity.StaffUser; -import com.eactive.httpmockserver.user.entity.UserSecurity; import com.eactive.httpmockserver.user.entity.UserStatus; import com.eactive.httpmockserver.user.repository.StaffUserRepository; -import com.eactive.httpmockserver.user.repository.UserSecurityRepository; import com.eactive.httpmockserver.common.entity.EnabledStatus; import com.eactive.httpmockserver.common.exception.UserNotFoundException; import org.springframework.beans.factory.annotation.Autowired; @@ -25,9 +23,6 @@ public class StaffUserService { @Autowired private StaffUserRepository staffUserRepository; - @Autowired - private UserSecurityRepository userSecurityRepository; - public Page findAll(Specification spec, Pageable pageable) { return staffUserRepository.findAll(spec, pageable); } @@ -47,6 +42,7 @@ public class StaffUserService { original.setLastLockDate(null); } + original.setUserSecurity(user.getUserSecurity()); staffUserRepository.save(original); } @@ -67,12 +63,7 @@ public class StaffUserService { staffUserRepository.save(user); - UserSecurity userSecurity = new UserSecurity(); - userSecurity.setUserEsntlId(user.getEsntlId()); - userSecurity.setAuthorCode("ROLE_ADMIN"); - userSecurity.setMemberTypeCode("USR03"); - userSecurityRepository.save(userSecurity); } } diff --git a/src/main/resources/templates/fragment/header.html b/src/main/resources/templates/fragment/header.html index b5d29c0..795d862 100644 --- a/src/main/resources/templates/fragment/header.html +++ b/src/main/resources/templates/fragment/header.html @@ -19,7 +19,7 @@ 응답 관리 diff --git a/src/main/resources/templates/page/users/staffUserEdit.html b/src/main/resources/templates/page/users/staffUserEdit.html index 70d4712..8e5769e 100644 --- a/src/main/resources/templates/page/users/staffUserEdit.html +++ b/src/main/resources/templates/page/users/staffUserEdit.html @@ -47,6 +47,14 @@ +
+ + +
+