diff --git a/src/main/java/com/easyvel/server/config/security/BaseAccessDeniedHandler.java b/src/main/java/com/easyvel/server/config/security/BaseAccessDeniedHandler.java index f00f8be..75e83cd 100644 --- a/src/main/java/com/easyvel/server/config/security/BaseAccessDeniedHandler.java +++ b/src/main/java/com/easyvel/server/config/security/BaseAccessDeniedHandler.java @@ -18,7 +18,6 @@ public class BaseAccessDeniedHandler implements AccessDeniedHandler { @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException exception) throws IOException { - ObjectMapper objectMapper = new ObjectMapper(); LOGGER.info("[commence] 인가 실패로 response.sendError 발생"); DefaultResponse defaultResponse = new DefaultResponse("권한이 없습니다."); diff --git a/src/main/java/com/easyvel/server/config/security/BaseAuthenticationEntryPoint.java b/src/main/java/com/easyvel/server/config/security/BaseAuthenticationEntryPoint.java index 534f55b..6451557 100644 --- a/src/main/java/com/easyvel/server/config/security/BaseAuthenticationEntryPoint.java +++ b/src/main/java/com/easyvel/server/config/security/BaseAuthenticationEntryPoint.java @@ -21,10 +21,8 @@ public class BaseAuthenticationEntryPoint implements AuthenticationEntryPoint { @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException ex) throws IOException { - ObjectMapper objectMapper = new ObjectMapper(); LOGGER.info("[commence] 인증 실패로 response.sendError 발생"); - DefaultResponse defaultResponse = new DefaultResponse("인증이 실패하였습니다."); defaultResponse.setResponse(response, HttpStatus.UNAUTHORIZED); } diff --git a/src/main/java/com/easyvel/server/config/security/BaseUserDetailsService.java b/src/main/java/com/easyvel/server/config/security/BaseUserDetailsService.java new file mode 100644 index 0000000..d0232e0 --- /dev/null +++ b/src/main/java/com/easyvel/server/config/security/BaseUserDetailsService.java @@ -0,0 +1,35 @@ +package com.easyvel.server.config.security; + +import com.easyvel.server.sign.User; +import com.easyvel.server.sign.UserRepository; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Optional; + +@RequiredArgsConstructor +@Service +@Transactional +public class BaseUserDetailsService implements UserDetailsService { + + private final Logger LOGGER = LoggerFactory.getLogger(UserRepository.class); + + private final UserRepository userRepository; + + @Override + public UserDetails loadUserByUsername(String username) { + LOGGER.info("[loadUserByUsername] loadUserByUsername 수행. username : {}", username); + Optional optionalMember = userRepository.getByUid(username); + if (optionalMember.isEmpty()) + throw new UsernameNotFoundException(username); + + UserDetails userDetails = userRepository.getByUid(username).get(); + return userDetails; + } +} diff --git a/src/main/java/com/easyvel/server/config/PasswordEncoderConfiguration.java b/src/main/java/com/easyvel/server/config/security/PasswordEncoderConfiguration.java similarity index 91% rename from src/main/java/com/easyvel/server/config/PasswordEncoderConfiguration.java rename to src/main/java/com/easyvel/server/config/security/PasswordEncoderConfiguration.java index dc803c7..315a0ca 100644 --- a/src/main/java/com/easyvel/server/config/PasswordEncoderConfiguration.java +++ b/src/main/java/com/easyvel/server/config/security/PasswordEncoderConfiguration.java @@ -1,4 +1,4 @@ -package com.easyvel.server.config; +package com.easyvel.server.config.security; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/src/main/java/com/easyvel/server/sign/SignController.java b/src/main/java/com/easyvel/server/sign/SignController.java index 94adb5a..c14f23b 100644 --- a/src/main/java/com/easyvel/server/sign/SignController.java +++ b/src/main/java/com/easyvel/server/sign/SignController.java @@ -89,8 +89,8 @@ public String signIn( } @EasyvelTokenApiImplicitParams - @PostMapping("/sign-out") - public void signOut(@RequestHeader("X-AUTH-TOKEN") String token) throws SignException { + @DeleteMapping(value = "/sign-out") + public void signOut(@RequestHeader(SecurityConfiguration.TOKEN_HEADER) String token) throws SignException { String uid = jwtTokenProvider.getUid(token); LOGGER.info("[signIn] 회원탈퇴를 시도하고 있습니다. id : {}, pw : ****", uid);