diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginRequest.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationRequest.java similarity index 57% rename from poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginRequest.java rename to poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationRequest.java index 3811194..1c21ade 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginRequest.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationRequest.java @@ -1,4 +1,4 @@ -package com.bpgroup.poc.admin.security.authentication.service; +package com.bpgroup.poc.admin.app.authentication; import lombok.Data; @@ -6,7 +6,7 @@ import lombok.Data; * 로그인 요청 Request */ @Data -public class LoginRequest { +public class AuthenticationRequest { private String username; private String password; } diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationResponse.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationResponse.java new file mode 100644 index 0000000..4670618 --- /dev/null +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationResponse.java @@ -0,0 +1,27 @@ +package com.bpgroup.poc.admin.app.authentication; + +import lombok.Getter; +import lombok.ToString; + +@Getter +@ToString +public class AuthenticationResponse { + + private String resultCode; + private String resultMessage; + + public static AuthenticationResponse success() { + AuthenticationResponse response = new AuthenticationResponse(); + response.resultCode = "0000"; + response.resultMessage = "Success"; + return response; + } + + public static AuthenticationResponse fail(String resultCode, String resultMessage) { + AuthenticationResponse response = new AuthenticationResponse(); + response.resultCode = resultCode; + response.resultMessage = resultMessage; + return response; + } + +} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationResult.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationResult.java new file mode 100644 index 0000000..3cbc14d --- /dev/null +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationResult.java @@ -0,0 +1,18 @@ +package com.bpgroup.poc.admin.app.authentication; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor(access = AccessLevel.PRIVATE) +public class AuthenticationResult { + private final Long id; + private final String loginId; + private final String name; + private final String email; + + public static AuthenticationResult of(Long id, String loginId, String name, String email) { + return new AuthenticationResult(id, loginId, name, email); + } +} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationService.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationService.java new file mode 100644 index 0000000..3413bc7 --- /dev/null +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/AuthenticationService.java @@ -0,0 +1,36 @@ +package com.bpgroup.poc.admin.app.authentication; + +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.base.admin.entity.Admin; +import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +public class AuthenticationService { + + private final PasswordEncoder passwordEncoder; + private final AdminRepository adminRepository; + + @Transactional + public AuthenticationResult login(String username, String password) throws AdminNotFoundException, InvalidPasswordException, DoNotHaveAnyMenuException { + Admin findAdmin = adminRepository.findByLoginId(username).orElseThrow(() -> new AdminNotFoundException(username)); + + if (!passwordEncoder.matches(password, findAdmin.getPassword())) { + throw new InvalidPasswordException(username); + } + + return AuthenticationResult.of( + findAdmin.getId(), + findAdmin.getLoginId(), + findAdmin.getName(), + findAdmin.getLoginId() + ); + } + +} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/AdminNotFoundException.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/AdminNotFoundException.java similarity index 65% rename from poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/AdminNotFoundException.java rename to poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/AdminNotFoundException.java index ec180dc..3b84a77 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/AdminNotFoundException.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/AdminNotFoundException.java @@ -1,4 +1,4 @@ -package com.bpgroup.poc.admin.security.authentication.service.exception; +package com.bpgroup.poc.admin.app.authentication.exception; public class AdminNotFoundException extends Exception { public AdminNotFoundException(String message) { diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/DoNotHaveAnyMenuException.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/DoNotHaveAnyMenuException.java similarity index 63% rename from poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/DoNotHaveAnyMenuException.java rename to poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/DoNotHaveAnyMenuException.java index ca1e8a5..c84e4e6 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/DoNotHaveAnyMenuException.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/DoNotHaveAnyMenuException.java @@ -1,4 +1,4 @@ -package com.bpgroup.poc.admin.security.authentication.service.exception; +package com.bpgroup.poc.admin.app.authentication.exception; public class DoNotHaveAnyMenuException extends Exception { public DoNotHaveAnyMenuException() { diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/InvalidPasswordException.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/InvalidPasswordException.java similarity index 66% rename from poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/InvalidPasswordException.java rename to poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/InvalidPasswordException.java index ceb917a..78a67af 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/exception/InvalidPasswordException.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authentication/exception/InvalidPasswordException.java @@ -1,4 +1,4 @@ -package com.bpgroup.poc.admin.security.authentication.service.exception; +package com.bpgroup.poc.admin.app.authentication.exception; public class InvalidPasswordException extends Exception { public InvalidPasswordException(String message) { diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authorization/service/AuthorizationService.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authorization/AuthorizationService.java similarity index 93% rename from poc/admin/src/main/java/com/bpgroup/poc/admin/security/authorization/service/AuthorizationService.java rename to poc/admin/src/main/java/com/bpgroup/poc/admin/app/authorization/AuthorizationService.java index 115a585..d99e1bc 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authorization/service/AuthorizationService.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/app/authorization/AuthorizationService.java @@ -1,4 +1,4 @@ -package com.bpgroup.poc.admin.security.authorization.service; +package com.bpgroup.poc.admin.app.authorization; import com.bpgroup.poc.admin.domain.base.admin.entity.Admin; import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRepository; diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/fitler/LoggingFilter.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/filter/LoggingFilter.java similarity index 98% rename from poc/admin/src/main/java/com/bpgroup/poc/admin/fitler/LoggingFilter.java rename to poc/admin/src/main/java/com/bpgroup/poc/admin/filter/LoggingFilter.java index 1e7ff15..636f95a 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/fitler/LoggingFilter.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/filter/LoggingFilter.java @@ -1,4 +1,4 @@ -package com.bpgroup.poc.admin.fitler; +package com.bpgroup.poc.admin.filter; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/SecurityConfig.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/SecurityConfig.java index 71e9d4a..c622deb 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/SecurityConfig.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/SecurityConfig.java @@ -3,10 +3,10 @@ package com.bpgroup.poc.admin.security; import com.bpgroup.poc.admin.security.authentication.CustomAuthenticationEntryPoint; import com.bpgroup.poc.admin.security.authentication.CustomAuthenticationFilter; import com.bpgroup.poc.admin.security.authentication.CustomAuthenticationProvider; -import com.bpgroup.poc.admin.security.authentication.service.LoginService; +import com.bpgroup.poc.admin.app.authentication.AuthenticationService; import com.bpgroup.poc.admin.security.authorization.CustomAccessDeniedHandler; import com.bpgroup.poc.admin.security.authorization.CustomAuthorizationManager; -import com.bpgroup.poc.admin.security.authorization.service.AuthorizationService; +import com.bpgroup.poc.admin.app.authorization.AuthorizationService; import com.bpgroup.poc.admin.security.jwt.JwtTokenConstants; import com.bpgroup.poc.admin.security.jwt.JwtTokenValidateFilter; import lombok.RequiredArgsConstructor; @@ -36,7 +36,7 @@ public class SecurityConfig { private static final String LOGOUT_PATH = "/logout"; private static final String ERROR_PATH = "/error"; - private final LoginService loginService; + private final AuthenticationService authenticationService; private final AuthorizationService authorizationService; @@ -89,7 +89,7 @@ public class SecurityConfig { @Bean public CustomAuthenticationProvider customAuthenticationProvider() { - return new CustomAuthenticationProvider(loginService); + return new CustomAuthenticationProvider(authenticationService); } @Bean diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/AuthenticationDetail.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/AuthenticationDetail.java deleted file mode 100644 index b79625f..0000000 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/AuthenticationDetail.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.bpgroup.poc.admin.security.authentication; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; - - -@Getter -@NoArgsConstructor -public class AuthenticationDetail { - private String loginId; - private String name; - private String email; - - @Builder - public static AuthenticationDetail of(String loginId, String name, String email) { - AuthenticationDetail authenticationDetail = new AuthenticationDetail(); - authenticationDetail.loginId = loginId; - authenticationDetail.name = name; - authenticationDetail.email = email; - return authenticationDetail; - } - - public String toJsonString() { - try { - return new ObjectMapper().writeValueAsString(this); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - } - - public static AuthenticationDetail fromJsonString(String jsonString) { - try { - return new ObjectMapper().readValue(jsonString, AuthenticationDetail.class); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - } - -} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/AuthenticationFailReason.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/AuthenticationFailReason.java index a995c7e..969d7e1 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/AuthenticationFailReason.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/AuthenticationFailReason.java @@ -1,8 +1,8 @@ package com.bpgroup.poc.admin.security.authentication; -import com.bpgroup.poc.admin.security.authentication.service.exception.AdminNotFoundException; -import com.bpgroup.poc.admin.security.authentication.service.exception.DoNotHaveAnyMenuException; -import com.bpgroup.poc.admin.security.authentication.service.exception.InvalidPasswordException; +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 lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFailureHandler.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFailureHandler.java index 43e5f04..7a72315 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFailureHandler.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFailureHandler.java @@ -1,6 +1,6 @@ package com.bpgroup.poc.admin.security.authentication; -import com.bpgroup.poc.admin.security.authentication.service.LoginResponse; +import com.bpgroup.poc.admin.app.authentication.AuthenticationResponse; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; @@ -26,7 +26,7 @@ public class CustomAuthenticationFailureHandler implements AuthenticationFailure } String jsonResponse = new ObjectMapper().writeValueAsString( - LoginResponse.fail( + AuthenticationResponse.fail( "9999", failMessage ) diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFilter.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFilter.java index 9a9d5b6..6870e4e 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFilter.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationFilter.java @@ -1,10 +1,11 @@ package com.bpgroup.poc.admin.security.authentication; -import com.bpgroup.poc.admin.security.authentication.service.LoginRequest; +import com.bpgroup.poc.admin.app.authentication.AuthenticationRequest; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.http.MediaType; import org.springframework.security.authentication.AuthenticationServiceException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; @@ -19,8 +20,7 @@ import java.nio.charset.StandardCharsets; public class CustomAuthenticationFilter extends AbstractAuthenticationProcessingFilter { private static final String DEFAULT_LOGIN_REQUEST_URL = "/login"; private static final String HTTP_METHOD = "POST"; - private static final String CONTENT_TYPE = "application/json"; - private boolean postOnly = true; + private static final String CONTENT_TYPE = MediaType.APPLICATION_JSON_VALUE; public CustomAuthenticationFilter() { super(new AntPathRequestMatcher(DEFAULT_LOGIN_REQUEST_URL, HTTP_METHOD)); // 위에서 설정한 /oauth2/login/* 의 요청에, GET으로 온 요청을 처리하기 위해 설정한다. @@ -33,13 +33,13 @@ public class CustomAuthenticationFilter extends AbstractAuthenticationProcessing // 요청에 대한 유효성 검사 isValidated(request); - LoginRequest loginRequest = new ObjectMapper().readValue( + AuthenticationRequest authenticationRequest = new ObjectMapper().readValue( StreamUtils.copyToString(request.getInputStream(), StandardCharsets.UTF_8), - LoginRequest.class + AuthenticationRequest.class ); - String username = loginRequest.getUsername(); - String password = loginRequest.getPassword(); + String username = authenticationRequest.getUsername(); + String password = authenticationRequest.getPassword(); if (username == null || password == null) { throw new AuthenticationServiceException("DATA IS MISS"); @@ -52,7 +52,7 @@ public class CustomAuthenticationFilter extends AbstractAuthenticationProcessing } private void isValidated(HttpServletRequest request) { - if (this.postOnly && !request.getMethod().equals(HTTP_METHOD)) { + if (!request.getMethod().equals(HTTP_METHOD)) { throw new AuthenticationServiceException("Authentication method not supported: " + request.getMethod()); } diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationProvider.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationProvider.java index 6f8eec6..ba1601c 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationProvider.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationProvider.java @@ -1,7 +1,7 @@ package com.bpgroup.poc.admin.security.authentication; -import com.bpgroup.poc.admin.security.authentication.service.LoginResult; -import com.bpgroup.poc.admin.security.authentication.service.LoginService; +import com.bpgroup.poc.admin.app.authentication.AuthenticationResult; +import com.bpgroup.poc.admin.app.authentication.AuthenticationService; 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 LoginService loginService; + private final AuthenticationService authenticationService; @Transactional @Override @@ -21,31 +21,20 @@ public class CustomAuthenticationProvider implements AuthenticationProvider { String username = (String) authentication.getPrincipal(); String password = (String) authentication.getCredentials(); - LoginResult loginResult = loginService.login(username, password); + AuthenticationResult authenticationResult = authenticationService.login(username, password); - return buildAuthenticationToken(loginResult); + return buildAuthenticationToken(authenticationResult); } catch (Exception e) { throw new AuthenticationFailException("로그인에 실패하였습니다.", AuthenticationFailReason.from(e)); } } - private UsernamePasswordAuthenticationToken buildAuthenticationToken(LoginResult result) { - UsernamePasswordAuthenticationToken token = UsernamePasswordAuthenticationToken.authenticated( + private UsernamePasswordAuthenticationToken buildAuthenticationToken(AuthenticationResult result) { + return UsernamePasswordAuthenticationToken.authenticated( result.getLoginId(), null, null ); - - token.setDetails( - AuthenticationDetail.builder() - .loginId(result.getLoginId()) - .name(result.getName()) - .email(result.getEmail()) - .build() - .toJsonString() - ); - - return token; } @Override diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationSuccessHandler.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationSuccessHandler.java index 8ddccc2..fa4f527 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationSuccessHandler.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/CustomAuthenticationSuccessHandler.java @@ -1,6 +1,6 @@ package com.bpgroup.poc.admin.security.authentication; -import com.bpgroup.poc.admin.security.authentication.service.LoginResponse; +import com.bpgroup.poc.admin.app.authentication.AuthenticationResponse; import com.bpgroup.poc.admin.security.jwt.JwtTokenGenerator; import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.http.Cookie; @@ -25,7 +25,7 @@ public class CustomAuthenticationSuccessHandler implements AuthenticationSuccess response.addCookie(jwtCookie); String jsonResponse = new ObjectMapper().writeValueAsString( - LoginResponse.success() + AuthenticationResponse.success() ); response.getWriter().write(jsonResponse); diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginResponse.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginResponse.java deleted file mode 100644 index ecb7325..0000000 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginResponse.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.bpgroup.poc.admin.security.authentication.service; - -import lombok.Getter; -import lombok.ToString; - -@Getter -@ToString -public class LoginResponse { - - private String resultCode; - private String resultMessage; - private String token; - - public static LoginResponse success() { - LoginResponse response = new LoginResponse(); - response.resultCode = "0000"; - response.resultMessage = "Success"; - return response; - } - - public static LoginResponse fail(String resultCode, String resultMessage) { - LoginResponse response = new LoginResponse(); - response.resultCode = resultCode; - response.resultMessage = resultMessage; - return response; - } - -} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginResult.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginResult.java deleted file mode 100644 index 4776041..0000000 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginResult.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.bpgroup.poc.admin.security.authentication.service; - -import lombok.Getter; - -@Getter -public class LoginResult { - private Long id; - private String loginId; - private String name; - private String email; - - public static LoginResult of(Long id, String loginId, String name, String email) { - LoginResult loginResult = new LoginResult(); - loginResult.id = id; - loginResult.loginId = loginId; - loginResult.name = name; - loginResult.email = email; - return loginResult; - } -} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginService.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginService.java deleted file mode 100644 index 9e7c649..0000000 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authentication/service/LoginService.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.bpgroup.poc.admin.security.authentication.service; - -import com.bpgroup.poc.admin.domain.base.admin.entity.Admin; -import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRepository; -import com.bpgroup.poc.admin.security.authentication.service.exception.AdminNotFoundException; -import com.bpgroup.poc.admin.security.authentication.service.exception.DoNotHaveAnyMenuException; -import com.bpgroup.poc.admin.security.authentication.service.exception.InvalidPasswordException; -import lombok.RequiredArgsConstructor; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Optional; - -@Service -@RequiredArgsConstructor -public class LoginService { - - private final AdminRepository adminRepository; - private final PasswordEncoder passwordEncoder; - - @Transactional - public LoginResult login(String username, String password) throws AdminNotFoundException, InvalidPasswordException, DoNotHaveAnyMenuException { - Optional admin = adminRepository.findByLoginId(username); - if (admin.isEmpty()) { - throw new AdminNotFoundException(username); - } - - if (!passwordEncoder.matches(password, admin.get().getPassword())) { - throw new InvalidPasswordException(username); - } - - return LoginResult.of( - admin.get().getId(), - admin.get().getLoginId(), - admin.get().getName(), - admin.get().getLoginId() - ); - } - -} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authorization/CustomAuthorizationManager.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authorization/CustomAuthorizationManager.java index 41a5ace..49588e3 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authorization/CustomAuthorizationManager.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/security/authorization/CustomAuthorizationManager.java @@ -1,6 +1,6 @@ package com.bpgroup.poc.admin.security.authorization; -import com.bpgroup.poc.admin.security.authorization.service.AuthorizationService; +import com.bpgroup.poc.admin.app.authorization.AuthorizationService; import lombok.RequiredArgsConstructor; import org.springframework.security.authorization.AuthorizationDecision; import org.springframework.security.authorization.AuthorizationManager;