admin: app layer 리팩토링
This commit is contained in:
parent
6cbe25b6b9
commit
6a1b4fe0c5
|
|
@ -9,9 +9,11 @@ import com.bpgroup.poc.admin.filter.AdminActionLogCreate;
|
|||
import com.bpgroup.poc.admin.filter.AdminActionLogUpdate;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class AdminActionLogAppService {
|
||||
|
||||
private final AdminActionLogService adminActionLogService;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class AdminManagementAppService {
|
||||
public class AdminAppService {
|
||||
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
|
||||
|
|
@ -4,7 +4,7 @@ import com.bpgroup.poc.admin.app.authentication.exception.AdminNotFoundException
|
|||
import com.bpgroup.poc.admin.app.authentication.exception.DoNotHaveAnyMenuException;
|
||||
import com.bpgroup.poc.admin.app.authentication.exception.InvalidPasswordException;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Admin;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.AdminRepository;
|
||||
import com.bpgroup.poc.admin.domain.admin.service.AdminService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -12,14 +12,14 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AuthenticationService {
|
||||
public class AuthenticationAppService {
|
||||
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
private final AdminRepository adminRepository;
|
||||
private final AdminService adminService;
|
||||
|
||||
@Transactional
|
||||
public AuthenticationResult login(String username, String password) throws AdminNotFoundException, InvalidPasswordException, DoNotHaveAnyMenuException {
|
||||
Admin findAdmin = adminRepository.findByLoginId(username).orElseThrow(() -> new AdminNotFoundException(username));
|
||||
Admin findAdmin = adminService.find(username).orElseThrow(() -> new AdminNotFoundException(username));
|
||||
|
||||
if (!passwordEncoder.matches(password, findAdmin.getPassword())) {
|
||||
throw new InvalidPasswordException(username);
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
package com.bpgroup.poc.admin.app.authorization;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Admin;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.AdminRepository;
|
||||
import com.bpgroup.poc.admin.domain.admin.service.AdminService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -13,12 +13,12 @@ import java.util.Optional;
|
|||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class AuthorizationService {
|
||||
public class AuthorizationAppService {
|
||||
|
||||
private final AdminRepository adminRepository;
|
||||
private final AdminService adminService;
|
||||
|
||||
public boolean isAuthorized(String username, String requestUri) {
|
||||
Optional<Admin> findAdmin = adminRepository.findByLoginId(username);
|
||||
Optional<Admin> findAdmin = adminService.find(username);
|
||||
if (findAdmin.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class JwtTokenService {
|
||||
public class JwtTokenAppService {
|
||||
|
||||
private final AdminService adminService;
|
||||
private final AdminTokenService adminTokenService;
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package com.bpgroup.poc.admin.security;
|
||||
|
||||
import com.bpgroup.poc.admin.app.jwt.JwtTokenService;
|
||||
import com.bpgroup.poc.admin.app.jwt.JwtTokenAppService;
|
||||
import com.bpgroup.poc.admin.security.authentication.*;
|
||||
import com.bpgroup.poc.admin.app.authentication.AuthenticationService;
|
||||
import com.bpgroup.poc.admin.app.authentication.AuthenticationAppService;
|
||||
import com.bpgroup.poc.admin.security.authorization.CustomAccessDeniedHandler;
|
||||
import com.bpgroup.poc.admin.security.authorization.CustomAuthorizationManager;
|
||||
import com.bpgroup.poc.admin.app.authorization.AuthorizationService;
|
||||
import com.bpgroup.poc.admin.app.authorization.AuthorizationAppService;
|
||||
import com.bpgroup.poc.admin.security.jwt.JwtTokenConstants;
|
||||
import com.bpgroup.poc.admin.security.jwt.JwtTokenProvider;
|
||||
import com.bpgroup.poc.admin.security.jwt.JwtTokenValidateFilter;
|
||||
|
|
@ -36,9 +36,9 @@ public class SecurityConfig {
|
|||
private static final String LOGOUT_PATH = "/logout";
|
||||
private static final String ERROR_PATH = "/error";
|
||||
|
||||
private final AuthenticationService authenticationService;
|
||||
private final AuthorizationService authorizationService;
|
||||
private final JwtTokenService jwtTokenService;
|
||||
private final AuthenticationAppService authenticationAppService;
|
||||
private final AuthorizationAppService authorizationAppService;
|
||||
private final JwtTokenAppService jwtTokenAppService;
|
||||
|
||||
private final JwtTokenProvider jwtTokenProvider;
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ public class SecurityConfig {
|
|||
.requestMatchers("/common/modal/**").permitAll()
|
||||
.requestMatchers(LOGIN_PATH, LOGOUT_PATH, ERROR_PATH).permitAll()
|
||||
.anyRequest()
|
||||
.access(new CustomAuthorizationManager(authorizationService))
|
||||
.access(new CustomAuthorizationManager(authorizationAppService))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ public class SecurityConfig {
|
|||
|
||||
@Bean
|
||||
public CustomAuthenticationProvider customAuthenticationProvider() {
|
||||
return new CustomAuthenticationProvider(authenticationService);
|
||||
return new CustomAuthenticationProvider(authenticationAppService);
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.bpgroup.poc.admin.security.authentication;
|
||||
|
||||
import com.bpgroup.poc.admin.app.authentication.AuthenticationResult;
|
||||
import com.bpgroup.poc.admin.app.authentication.AuthenticationService;
|
||||
import com.bpgroup.poc.admin.app.authentication.AuthenticationAppService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.authentication.AuthenticationProvider;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
|
|
@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
@RequiredArgsConstructor
|
||||
public class CustomAuthenticationProvider implements AuthenticationProvider {
|
||||
|
||||
private final AuthenticationService authenticationService;
|
||||
private final AuthenticationAppService authenticationAppService;
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
|
|
@ -21,7 +21,7 @@ public class CustomAuthenticationProvider implements AuthenticationProvider {
|
|||
String username = (String) authentication.getPrincipal();
|
||||
String password = (String) authentication.getCredentials();
|
||||
|
||||
AuthenticationResult authenticationResult = authenticationService.login(username, password);
|
||||
AuthenticationResult authenticationResult = authenticationAppService.login(username, password);
|
||||
|
||||
return buildAuthenticationToken(authenticationResult);
|
||||
} catch (Exception e) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.security.authorization;
|
||||
|
||||
import com.bpgroup.poc.admin.app.authorization.AuthorizationService;
|
||||
import com.bpgroup.poc.admin.app.authorization.AuthorizationAppService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.authorization.AuthorizationDecision;
|
||||
import org.springframework.security.authorization.AuthorizationManager;
|
||||
|
|
@ -12,7 +12,7 @@ import java.util.function.Supplier;
|
|||
@RequiredArgsConstructor
|
||||
public class CustomAuthorizationManager implements AuthorizationManager<RequestAuthorizationContext> {
|
||||
|
||||
private final AuthorizationService authorizationService;
|
||||
private final AuthorizationAppService authorizationAppService;
|
||||
|
||||
@Override
|
||||
public AuthorizationDecision check(Supplier authentication, RequestAuthorizationContext context) {
|
||||
|
|
@ -21,7 +21,7 @@ public class CustomAuthorizationManager implements AuthorizationManager<RequestA
|
|||
String userName = (String) auth.getPrincipal();
|
||||
String requestUri = context.getRequest().getRequestURI();
|
||||
|
||||
boolean hasAuthorization = authorizationService.isAuthorized(userName, requestUri);
|
||||
boolean hasAuthorization = authorizationAppService.isAuthorized(userName, requestUri);
|
||||
|
||||
return new AuthorizationDecision(hasAuthorization);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.bpgroup.poc.admin.security.jwt;
|
||||
|
||||
import com.bpgroup.poc.admin.app.jwt.JwtTokenRequest;
|
||||
import com.bpgroup.poc.admin.app.jwt.JwtTokenService;
|
||||
import com.bpgroup.poc.admin.app.jwt.JwtTokenAppService;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.TokenState;
|
||||
import io.jsonwebtoken.Claims;
|
||||
import io.jsonwebtoken.ExpiredJwtException;
|
||||
|
|
@ -22,7 +22,7 @@ import java.util.Date;
|
|||
@RequiredArgsConstructor
|
||||
public class JwtTokenProvider {
|
||||
|
||||
private final JwtTokenService jwtTokenService;
|
||||
private final JwtTokenAppService jwtTokenAppService;
|
||||
|
||||
// TODO: 추후 Key 별도 관리 필요
|
||||
private static final SecretKey JWT_KEY = Keys.hmacShaKeyFor(JwtTokenConstants.KEY.getBytes(StandardCharsets.UTF_8));
|
||||
|
|
@ -34,7 +34,7 @@ public class JwtTokenProvider {
|
|||
Cookie refreshTokenCookie = createCookieWithToken(username, JwtTokenProvider.JwtTokenType.REFRESH);
|
||||
response.addCookie(refreshTokenCookie);
|
||||
|
||||
jwtTokenService.save(
|
||||
jwtTokenAppService.save(
|
||||
JwtTokenRequest.of(
|
||||
request.getRemoteAddr(),
|
||||
accessTokenCookie.getValue(),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.management;
|
||||
|
||||
import com.bpgroup.poc.admin.app.admin.AdminManagementAppService;
|
||||
import com.bpgroup.poc.admin.app.admin.AdminAppService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminCreate;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminDelete;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminFind;
|
||||
|
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||
public class AdminManagementRestController {
|
||||
|
||||
private final AdminManagementWebService adminManagementWebService;
|
||||
private final AdminManagementAppService adminManagementAppService;
|
||||
private final AdminAppService adminAppService;
|
||||
|
||||
/**
|
||||
* 전체 조회
|
||||
|
|
@ -57,7 +57,7 @@ public class AdminManagementRestController {
|
|||
@RequestBody @Validated AdminCreate.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
AdminCreate.Response response = adminManagementAppService.create(request);
|
||||
AdminCreate.Response response = adminAppService.create(request);
|
||||
return ResponseEntity.ok(response);
|
||||
}
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ public class AdminManagementRestController {
|
|||
@RequestBody @Validated AdminUpdate.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
AdminUpdate.Response response = adminManagementAppService.update(request);
|
||||
AdminUpdate.Response response = adminAppService.update(request);
|
||||
return ResponseEntity.ok(response);
|
||||
}
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ public class AdminManagementRestController {
|
|||
@RequestBody @Validated AdminDelete.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
AdminDelete.Response response = adminManagementAppService.delete(request);
|
||||
AdminDelete.Response response = adminAppService.delete(request);
|
||||
return ResponseEntity.ok(response);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import com.bpgroup.poc.admin.domain.admin.entity.AdminRole;
|
|||
import com.bpgroup.poc.admin.domain.role.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.role.entity.RoleRepository;
|
||||
import com.bpgroup.poc.admin.env.MariaDBTestEnv;
|
||||
import com.bpgroup.poc.admin.app.admin.AdminManagementAppService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminCreate;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminDelete;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminUpdate;
|
||||
|
|
@ -19,10 +18,10 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
|
||||
@DisplayName("Admin Web Service 테스트")
|
||||
@Transactional
|
||||
class AdminManagementAppServiceTest extends MariaDBTestEnv {
|
||||
class AdminAppServiceTest extends MariaDBTestEnv {
|
||||
|
||||
@Autowired
|
||||
private AdminManagementAppService adminAppService;
|
||||
private AdminAppService adminAppService;
|
||||
|
||||
@Autowired
|
||||
private AdminRepository adminRepository;
|
||||
Loading…
Reference in New Issue