diff --git a/src/main/java/com/kamco/cd/kamcoback/config/GlobalExceptionHandler.java b/src/main/java/com/kamco/cd/kamcoback/config/GlobalExceptionHandler.java index 409e8ca4..bc7cdb74 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/GlobalExceptionHandler.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/GlobalExceptionHandler.java @@ -45,197 +45,197 @@ public class GlobalExceptionHandler { @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) @ExceptionHandler(EntityNotFoundException.class) public ApiResponseDto handlerEntityNotFoundException( - EntityNotFoundException e, HttpServletRequest request) { + EntityNotFoundException e, HttpServletRequest request) { log.warn("[EntityNotFoundException] resource :{} ", e.getMessage()); String codeName = "NOT_FOUND_DATA"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), + errorLog.getId()); } @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(HttpMessageNotReadableException.class) public ApiResponseDto handleUnreadable( - HttpMessageNotReadableException e, HttpServletRequest request) { + HttpMessageNotReadableException e, HttpServletRequest request) { log.warn("[HttpMessageNotReadableException] resource :{} ", e.getMessage()); String codeName = "BAD_REQUEST"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } @ResponseStatus(HttpStatus.NOT_FOUND) @ExceptionHandler(NoSuchElementException.class) public ApiResponseDto handlerNoSuchElementException( - NoSuchElementException e, HttpServletRequest request) { + NoSuchElementException e, HttpServletRequest request) { log.warn("[NoSuchElementException] resource :{} ", e.getMessage()); String codeName = "NOT_FOUND_DATA"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf("NOT_FOUND"), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf("NOT_FOUND"), + errorLog.getId()); } @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(IllegalArgumentException.class) public ApiResponseDto handlerIllegalArgumentException( - IllegalArgumentException e, HttpServletRequest request) { + IllegalArgumentException e, HttpServletRequest request) { log.warn("[handlerIllegalArgumentException] resource :{} ", e.getMessage()); String codeName = "BAD_REQUEST"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) @ExceptionHandler(DataIntegrityViolationException.class) public ApiResponseDto handlerDataIntegrityViolationException( - DataIntegrityViolationException e, HttpServletRequest request) { + DataIntegrityViolationException e, HttpServletRequest request) { log.warn("[DataIntegrityViolationException] resource :{} ", e.getMessage()); String codeName = "DATA_INTEGRITY_ERROR"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), - ErrorLogDto.LogErrorLevel.CRITICAL, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), + ErrorLogDto.LogErrorLevel.CRITICAL, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf("UNPROCESSABLE_ENTITY"), + errorLog.getId()); } @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MethodArgumentNotValidException.class) public ApiResponseDto handlerMethodArgumentNotValidException( - MethodArgumentNotValidException e, HttpServletRequest request) { + MethodArgumentNotValidException e, HttpServletRequest request) { log.warn("[MethodArgumentNotValidException] resource :{} ", e.getMessage()); String codeName = "BAD_REQUEST"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } @ResponseStatus(HttpStatus.FORBIDDEN) @ExceptionHandler(AccessDeniedException.class) public ApiResponseDto handlerAccessDeniedException( - AccessDeniedException e, HttpServletRequest request) { + AccessDeniedException e, HttpServletRequest request) { log.warn("[AccessDeniedException] resource :{} ", e.getMessage()); String codeName = "FORBIDDEN"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.ERROR, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.ERROR, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } @ResponseStatus(HttpStatus.BAD_GATEWAY) @ExceptionHandler(HttpServerErrorException.BadGateway.class) public ApiResponseDto handlerHttpServerErrorException( - HttpServerErrorException e, HttpServletRequest request) { + HttpServerErrorException e, HttpServletRequest request) { log.warn("[HttpServerErrorException] resource :{} ", e.getMessage()); String codeName = "BAD_GATEWAY"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.CRITICAL, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.CRITICAL, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } @ResponseStatus(HttpStatus.UNPROCESSABLE_ENTITY) @ExceptionHandler(IllegalStateException.class) public ApiResponseDto handlerIllegalStateException( - IllegalStateException e, HttpServletRequest request) { + IllegalStateException e, HttpServletRequest request) { log.warn("[IllegalStateException] resource :{} ", e.getMessage()); String codeName = "UNPROCESSABLE_ENTITY"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MemberException.DuplicateMemberException.class) public ApiResponseDto handlerDuplicateMemberException( - MemberException.DuplicateMemberException e, HttpServletRequest request) { + MemberException.DuplicateMemberException e, HttpServletRequest request) { log.warn("[DuplicateMemberException] resource :{} ", e.getMessage()); String codeName = ""; @@ -250,112 +250,112 @@ public class GlobalExceptionHandler { } ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf("BAD_REQUEST"), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf("BAD_REQUEST"), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf("BAD_REQUEST"), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf("BAD_REQUEST"), + errorLog.getId()); } @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MemberException.MemberNotFoundException.class) public ApiResponseDto handlerMemberNotFoundException( - MemberException.MemberNotFoundException e, HttpServletRequest request) { + MemberException.MemberNotFoundException e, HttpServletRequest request) { log.warn("[MemberNotFoundException] resource :{} ", e.getMessage()); String codeName = "NOT_FOUND_USER"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf("BAD_REQUEST"), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf("BAD_REQUEST"), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf("BAD_REQUEST"), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf("BAD_REQUEST"), + errorLog.getId()); } @ResponseStatus(HttpStatus.CONFLICT) @ExceptionHandler(DuplicateKeyException.class) public ApiResponseDto handlerDuplicateKeyException( - DuplicateKeyException e, HttpServletRequest request) { + DuplicateKeyException e, HttpServletRequest request) { log.warn("[DuplicateKeyException] resource :{} ", e.getMessage()); String codeName = "DUPLICATE_DATA"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf("CONFLICT"), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf("CONFLICT"), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf("CONFLICT"), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf("CONFLICT"), + errorLog.getId()); } @ExceptionHandler(BadCredentialsException.class) public ResponseEntity> handleBadCredentials( - BadCredentialsException e, HttpServletRequest request) { + BadCredentialsException e, HttpServletRequest request) { log.warn("[BadCredentialsException] resource : {} ", e.getMessage()); String codeName = "UNAUTHORIZED"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.WARNING, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.WARNING, + e.getStackTrace()); ApiResponseDto body = - ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseDto.createException( + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); return ResponseEntity.status(HttpStatus.UNAUTHORIZED) // ๐Ÿ”ฅ ์—ฌ๊ธฐ์„œ 401 ์ง€์ • - .body(body); + .body(body); } @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) @ExceptionHandler(RuntimeException.class) public ApiResponseDto handlerRuntimeException( - RuntimeException e, HttpServletRequest request) { + RuntimeException e, HttpServletRequest request) { log.warn("[RuntimeException] resource :{} ", e.getMessage()); String codeName = "INTERNAL_SERVER_ERROR"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.CRITICAL, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.CRITICAL, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) @@ -365,36 +365,36 @@ public class GlobalExceptionHandler { String codeName = "INTERNAL_SERVER_ERROR"; ErrorLogEntity errorLog = - saveErrorLogData( - request, - ApiResponseCode.getCode(codeName), - HttpStatus.valueOf(codeName), - ErrorLogDto.LogErrorLevel.CRITICAL, - e.getStackTrace()); + saveErrorLogData( + request, + ApiResponseCode.getCode(codeName), + HttpStatus.valueOf(codeName), + ErrorLogDto.LogErrorLevel.CRITICAL, + e.getStackTrace()); return ApiResponseDto.createException( - ApiResponseCode.getCode(codeName), - ApiResponseCode.getMessage(codeName), - HttpStatus.valueOf(codeName), - errorLog.getId()); + ApiResponseCode.getCode(codeName), + ApiResponseCode.getMessage(codeName), + HttpStatus.valueOf(codeName), + errorLog.getId()); } /** * ์—๋Ÿฌ ๋กœ๊ทธ ํ…Œ์ด๋ธ” ์ €์žฅ ๋กœ์ง * - * @param request : request - * @param errorCode : ์ •์˜๋œ enum errorCode - * @param httpStatus : HttpStatus ๊ฐ’ + * @param request : request + * @param errorCode : ์ •์˜๋œ enum errorCode + * @param httpStatus : HttpStatus ๊ฐ’ * @param logErrorLevel : WARNING, ERROR, CRITICAL - * @param stackTrace : ์—๋Ÿฌ ๋‚ด์šฉ + * @param stackTrace : ์—๋Ÿฌ ๋‚ด์šฉ * @return : insertํ•˜๊ณ  ๊ฒฐ๊ณผ๋กœ ๋ฐ›์€ Entity */ private ErrorLogEntity saveErrorLogData( - HttpServletRequest request, - ApiResponseCode errorCode, - HttpStatus httpStatus, - ErrorLogDto.LogErrorLevel logErrorLevel, - StackTraceElement[] stackTrace) { + HttpServletRequest request, + ApiResponseCode errorCode, + HttpStatus httpStatus, + ErrorLogDto.LogErrorLevel logErrorLevel, + StackTraceElement[] stackTrace) { Long userid = null; @@ -408,35 +408,35 @@ public class GlobalExceptionHandler { * ๋งŒ๋“  CustomUserDetails ํƒ€์ž…์ธ๊ฐ€? ์ฒดํฌ */ if (request.getUserPrincipal() instanceof UsernamePasswordAuthenticationToken auth - && auth.getPrincipal() instanceof CustomUserDetails customUserDetails) { + && auth.getPrincipal() instanceof CustomUserDetails customUserDetails) { // audit ์—๋Š” long ํƒ€์ž… user_id๊ฐ€ ๋“ค์–ด๊ฐ€์ง€๋งŒ ํ† ํฐ sub์€ uuid์—ฌ์„œ user_id ๊ฐ€์ ธ์˜ค๊ธฐ userid = customUserDetails.getMember().getId(); } String stackTraceStr = - Arrays.stream(stackTrace) - .map(StackTraceElement::toString) - .collect(Collectors.joining("\n")) - .substring(0, Math.min(stackTrace.length, 255)); + Arrays.stream(stackTrace) + .map(StackTraceElement::toString) + .collect(Collectors.joining("\n")) + .substring(0, Math.min(stackTrace.length, 255)); ErrorLogEntity errorLogEntity = - new ErrorLogEntity( - request.getRequestURI(), - ApiLogFunction.getEventType(request), - logErrorLevel, - String.valueOf(httpStatus.value()), - errorCode.getText(), - stackTraceStr, - userid, - ZonedDateTime.now()); + new ErrorLogEntity( + request.getRequestURI(), + ApiLogFunction.getEventType(request), + logErrorLevel, + String.valueOf(httpStatus.value()), + errorCode.getText(), + stackTraceStr, + userid, + ZonedDateTime.now()); return errorLogRepository.save(errorLogEntity); } @ExceptionHandler(CustomApiException.class) public ResponseEntity> handleCustomApiException( - CustomApiException e, HttpServletRequest request) { + CustomApiException e, HttpServletRequest request) { log.warn("[CustomApiException] resource : {}", e.getMessage()); String codeName = e.getCodeName(); @@ -446,11 +446,11 @@ public class GlobalExceptionHandler { ApiResponseCode apiCode = ApiResponseCode.getCode(codeName); ErrorLogEntity errorLog = - saveErrorLogData( - request, apiCode, status, ErrorLogDto.LogErrorLevel.WARNING, e.getStackTrace()); + saveErrorLogData( + request, apiCode, status, ErrorLogDto.LogErrorLevel.WARNING, e.getStackTrace()); ApiResponseDto body = - ApiResponseDto.createException(apiCode, message, status, errorLog.getId()); + ApiResponseDto.createException(apiCode, message, status, errorLog.getId()); return new ResponseEntity<>(body, status); } diff --git a/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java b/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java index ccd51586..eca8fcf7 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/SecurityConfig.java @@ -30,46 +30,45 @@ public class SecurityConfig { public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.cors(cors -> cors.configurationSource(corsConfigurationSource())) - .csrf(csrf -> csrf.disable()) // CSRF ๋ณด์•ˆ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑํ™” - .sessionManagement( - sm -> - sm.sessionCreationPolicy( - SessionCreationPolicy.STATELESS)) // ์„œ๋ฒ„ ์„ธ์…˜ ๋งŒ๋“ค์ง€ ์•Š์Œ, ์š”์ฒญ์€ JWT ์ธ์ฆ - .formLogin(form -> form.disable()) // react์—์„œ ๋กœ๊ทธ์ธ ์š”์ฒญ ๊ด€๋ฆฌ - .httpBasic(basic -> basic.disable()) // ๊ธฐ๋ณธ basic ์ธ์ฆ ๋น„ํ™œ์„ฑํ™” JWT ์ธ์ฆ์‚ฌ์šฉ - .logout(logout -> logout.disable()) // ๊ธฐ๋ณธ ๋กœ๊ทธ์•„์›ƒ ๋น„ํ™œ์„ฑํ™” JWT๋Š” ์„œ๋ฒ„ ์ƒํƒœ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋กœ๊ทธ์•„์›ƒ ์ฒ˜๋ฆฌ ํ•„์š” ์—†์Œ - .authenticationProvider( - customAuthenticationProvider) // ๋กœ๊ทธ์ธ ํŒจ์Šค์›Œ๋“œ ๋น„๊ต๋ฐฉ์‹ ์Šคํ”„๋ง ๊ธฐ๋ณธ Provider ์‚ฌ์šฉ์•ˆํ•จ ์ปค์Šคํ…€ ์‚ฌ์šฉ - .authorizeHttpRequests( - auth -> - auth - // ADMIN๋งŒ ์ ‘๊ทผ - .requestMatchers("/api/test/admin") - .hasRole("ADMIN") + .csrf(csrf -> csrf.disable()) // CSRF ๋ณด์•ˆ ๊ธฐ๋Šฅ ๋น„ํ™œ์„ฑํ™” + .sessionManagement( + sm -> + sm.sessionCreationPolicy( + SessionCreationPolicy.STATELESS)) // ์„œ๋ฒ„ ์„ธ์…˜ ๋งŒ๋“ค์ง€ ์•Š์Œ, ์š”์ฒญ์€ JWT ์ธ์ฆ + .formLogin(form -> form.disable()) // react์—์„œ ๋กœ๊ทธ์ธ ์š”์ฒญ ๊ด€๋ฆฌ + .httpBasic(basic -> basic.disable()) // ๊ธฐ๋ณธ basic ์ธ์ฆ ๋น„ํ™œ์„ฑํ™” JWT ์ธ์ฆ์‚ฌ์šฉ + .logout(logout -> logout.disable()) // ๊ธฐ๋ณธ ๋กœ๊ทธ์•„์›ƒ ๋น„ํ™œ์„ฑํ™” JWT๋Š” ์„œ๋ฒ„ ์ƒํƒœ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋กœ๊ทธ์•„์›ƒ ์ฒ˜๋ฆฌ ํ•„์š” ์—†์Œ + .authenticationProvider( + customAuthenticationProvider) // ๋กœ๊ทธ์ธ ํŒจ์Šค์›Œ๋“œ ๋น„๊ต๋ฐฉ์‹ ์Šคํ”„๋ง ๊ธฐ๋ณธ Provider ์‚ฌ์šฉ์•ˆํ•จ ์ปค์Šคํ…€ ์‚ฌ์šฉ + .authorizeHttpRequests( + auth -> + auth + // ADMIN๋งŒ ์ ‘๊ทผ + .requestMatchers("/api/test/admin") + .hasRole("ADMIN") - // ADMIN, LABELER ์ ‘๊ทผ - .requestMatchers("/api/test/label") - .hasAnyRole("ADMIN", "LABELER") + // ADMIN, LABELER ์ ‘๊ทผ + .requestMatchers("/api/test/label") + .hasAnyRole("ADMIN", "LABELER") - // ADMIN, REVIEWER ์ ‘๊ทผ - .requestMatchers("/api/test/review") - .hasAnyRole("ADMIN", "REVIEWER") - - .requestMatchers(HttpMethod.OPTIONS, "/**") - .permitAll() // preflight ํ—ˆ์šฉ - .requestMatchers( - "/api/auth/signin", - "/api/auth/refresh", - "/swagger-ui/**", - "/api/members/*/password", - "/v3/api-docs/**") - .permitAll() - .anyRequest() - .authenticated()) - .addFilterBefore( - jwtAuthenticationFilter, - UsernamePasswordAuthenticationFilter - .class) // ์š”์ฒญ ๋“ค์–ด์˜ค๋ฉด ๋จผ์ € JWT ํ† ํฐ ๊ฒ€์‚ฌ ํ›„ security context ์— ์‚ฌ์šฉ์ž ์ •๋ณด ์ €์žฅ. + // ADMIN, REVIEWER ์ ‘๊ทผ + .requestMatchers("/api/test/review") + .hasAnyRole("ADMIN", "REVIEWER") + .requestMatchers(HttpMethod.OPTIONS, "/**") + .permitAll() // preflight ํ—ˆ์šฉ + .requestMatchers( + "/api/auth/signin", + "/api/auth/refresh", + "/swagger-ui/**", + "/api/members/*/password", + "/v3/api-docs/**") + .permitAll() + .anyRequest() + .authenticated()) + .addFilterBefore( + jwtAuthenticationFilter, + UsernamePasswordAuthenticationFilter + .class) // ์š”์ฒญ ๋“ค์–ด์˜ค๋ฉด ๋จผ์ € JWT ํ† ํฐ ๊ฒ€์‚ฌ ํ›„ security context ์— ์‚ฌ์šฉ์ž ์ •๋ณด ์ €์žฅ. ; return http.build(); @@ -77,7 +76,7 @@ public class SecurityConfig { @Bean public AuthenticationManager authenticationManager(AuthenticationConfiguration configuration) - throws Exception { + throws Exception { return configuration.getAuthenticationManager(); } diff --git a/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java b/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java index c5d3af36..1c777896 100644 --- a/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/members/dto/MembersDto.java @@ -32,28 +32,24 @@ public class MembersDto { private String tempPassword; private String status; private String statusName; - @JsonFormatDttm - private ZonedDateTime createdDttm; - @JsonFormatDttm - private ZonedDateTime updatedDttm; - @JsonFormatDttm - private ZonedDateTime firstLoginDttm; - @JsonFormatDttm - private ZonedDateTime lastLoginDttm; + @JsonFormatDttm private ZonedDateTime createdDttm; + @JsonFormatDttm private ZonedDateTime updatedDttm; + @JsonFormatDttm private ZonedDateTime firstLoginDttm; + @JsonFormatDttm private ZonedDateTime lastLoginDttm; public Basic( - Long id, - UUID uuid, - String userRole, - String name, - String userId, - String employeeNo, - String tempPassword, - String status, - ZonedDateTime createdDttm, - ZonedDateTime updatedDttm, - ZonedDateTime firstLoginDttm, - ZonedDateTime lastLoginDttm) { + Long id, + UUID uuid, + String userRole, + String name, + String userId, + String employeeNo, + String tempPassword, + String status, + ZonedDateTime createdDttm, + ZonedDateTime updatedDttm, + ZonedDateTime firstLoginDttm, + ZonedDateTime lastLoginDttm) { this.id = id; this.uuid = uuid; this.userRole = userRole; @@ -87,9 +83,7 @@ public class MembersDto { @AllArgsConstructor public static class SearchReq { - @Schema( - description = "์ „์ฒด, ๊ด€๋ฆฌ์ž(ADMIN), ๋ผ๋ฒจ๋Ÿฌ(LABELER), ๊ฒ€์ˆ˜์ž(REVIEWER)", - example = "") + @Schema(description = "์ „์ฒด, ๊ด€๋ฆฌ์ž(ADMIN), ๋ผ๋ฒจ๋Ÿฌ(LABELER), ๊ฒ€์ˆ˜์ž(REVIEWER)", example = "") private String userRole; @Schema(description = "ํ‚ค์›Œ๋“œ", example = "ํ™๊ธธ๋™") @@ -133,7 +127,7 @@ public class MembersDto { private String employeeNo; public AddReq( - String userRole, String name, String userId, String tempPassword, String employeeNo) { + String userRole, String name, String userId, String tempPassword, String employeeNo) { this.userRole = userRole; this.name = name; this.userId = userId; diff --git a/src/main/java/com/kamco/cd/kamcoback/test/TestApiController.java b/src/main/java/com/kamco/cd/kamcoback/test/TestApiController.java index 2e843964..672bc5f1 100644 --- a/src/main/java/com/kamco/cd/kamcoback/test/TestApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/test/TestApiController.java @@ -22,13 +22,13 @@ public class TestApiController { @Operation(summary = "admin test", description = "admin test api") @ApiResponses({ @ApiResponse( - responseCode = "200", - description = "์กฐํšŒ", - content = @Content(schema = @Schema(implementation = String.class))), + responseCode = "200", + description = "์กฐํšŒ", + content = @Content(schema = @Schema(implementation = String.class))), @ApiResponse( - responseCode = "403", - description = "๊ถŒํ•œ ์—†์Œ", - content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + responseCode = "403", + description = "๊ถŒํ•œ ์—†์Œ", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) }) @GetMapping("/admin") public ApiResponseDto admin() { @@ -38,13 +38,13 @@ public class TestApiController { @Operation(summary = "label test", description = "label test api") @ApiResponses({ @ApiResponse( - responseCode = "200", - description = "์กฐํšŒ", - content = @Content(schema = @Schema(implementation = String.class))), + responseCode = "200", + description = "์กฐํšŒ", + content = @Content(schema = @Schema(implementation = String.class))), @ApiResponse( - responseCode = "403", - description = "๊ถŒํ•œ ์—†์Œ", - content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + responseCode = "403", + description = "๊ถŒํ•œ ์—†์Œ", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) }) @GetMapping("/label") public ApiResponseDto label() { @@ -54,13 +54,13 @@ public class TestApiController { @Operation(summary = "review test", description = "review test api") @ApiResponses({ @ApiResponse( - responseCode = "200", - description = "์กฐํšŒ", - content = @Content(schema = @Schema(implementation = String.class))), + responseCode = "200", + description = "์กฐํšŒ", + content = @Content(schema = @Schema(implementation = String.class))), @ApiResponse( - responseCode = "403", - description = "๊ถŒํ•œ ์—†์Œ", - content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + responseCode = "403", + description = "๊ถŒํ•œ ์—†์Œ", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) }) @GetMapping("/review") public ApiResponseDto review() {