From ff4647c750e37d5bcc3f3155a4193b8ac165bd97 Mon Sep 17 00:00:00 2001 From: EunKu Date: Thu, 29 Feb 2024 14:04:00 +0900 Subject: [PATCH 1/3] =?UTF-8?q?admin=20member=20list=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/admin/controller/AdminMemberController.java | 6 +++--- .../domain/admin/controller/AdminProductController.java | 1 + .../hyundai/domain/admin/service/AdminMemberService.java | 2 +- .../domain/admin/service/AdminMemberServiceImpl.java | 4 ++-- .../domain/manager/controller/ManagerProductController.java | 6 +----- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java b/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java index 2db369c..58c6263 100644 --- a/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java +++ b/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java @@ -19,9 +19,9 @@ public class AdminMemberController { private final AdminMemberService adminMemberService; - @PostMapping("/member") - public ResponseEntity getMembers(@RequestBody AdminMemberParamDTO paramDTO){ - return ResponseMessage.SuccessResponse("회원 조회 성공", adminMemberService.getMemberList(paramDTO)); + @GetMapping("/member") + public ResponseEntity getMembers(){ + return ResponseMessage.SuccessResponse("회원 조회 성공", adminMemberService.getMemberList()); } @PostMapping("/member/{pageNum}") diff --git a/src/main/java/com/hyundai/domain/admin/controller/AdminProductController.java b/src/main/java/com/hyundai/domain/admin/controller/AdminProductController.java index 1ff1f86..3725b1f 100644 --- a/src/main/java/com/hyundai/domain/admin/controller/AdminProductController.java +++ b/src/main/java/com/hyundai/domain/admin/controller/AdminProductController.java @@ -42,6 +42,7 @@ public ResponseEntity addTheme(@RequestBody AdminThemeDTO paramDTO){ adminProductService.addTheme(paramDTO); return ResponseMessage.SuccessResponse("테마를 추가하셨습니다.", " "); } + @PostMapping("/products/theme/delete") public ResponseEntity deleteTheme(@RequestBody AdminThemeDTO paramDTO){ adminProductService.deleteTheme(paramDTO); diff --git a/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java b/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java index 973a103..4229d91 100644 --- a/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java +++ b/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java @@ -8,7 +8,7 @@ import java.util.List; public interface AdminMemberService { - List getMemberList(AdminMemberParamDTO paramDTO); + List getMemberList(); List getMemberListByPage(AdminMemberParamDTO paramDTO, Long pageNum); diff --git a/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java b/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java index 320b911..3395e01 100644 --- a/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java +++ b/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java @@ -26,8 +26,8 @@ public class AdminMemberServiceImpl implements AdminMemberService{ @Override @Transactional(readOnly = true) - public List getMemberList(AdminMemberParamDTO paramDTO) { - return adminMemberMapper.getListByParams(paramDTO); + public List getMemberList() { + return adminMemberMapper.getAllMembers(); } @Override diff --git a/src/main/java/com/hyundai/domain/manager/controller/ManagerProductController.java b/src/main/java/com/hyundai/domain/manager/controller/ManagerProductController.java index 4cabea6..9749db6 100644 --- a/src/main/java/com/hyundai/domain/manager/controller/ManagerProductController.java +++ b/src/main/java/com/hyundai/domain/manager/controller/ManagerProductController.java @@ -1,14 +1,11 @@ package com.hyundai.domain.manager.controller; -import com.hyundai.domain.login.security.CustomMemberDetails; import com.hyundai.domain.manager.dto.ManagerProductDTO; import com.hyundai.domain.manager.service.ManagerProductService; import com.hyundai.global.message.ResponseMessage; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.bind.annotation.*; import java.util.Map; @@ -56,5 +53,4 @@ public ResponseEntity deleteProductIngTheme(@RequestBody Map p public ResponseEntity orderProduct(){ return ResponseMessage.SuccessResponse("주문한 상품을 불러왔습니다. ", managerProductService.getOrdersByMemberId()); } - -} +} \ No newline at end of file From ea166cfe914829592c20f7e6fd1b35e81a10c380 Mon Sep 17 00:00:00 2001 From: EunKu Date: Fri, 1 Mar 2024 20:29:04 +0900 Subject: [PATCH 2/3] =?UTF-8?q?log=20filter,=20log=20table=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AdminMemberController.java | 22 +-- .../domain/admin/dto/AdminManagerDTO.java | 33 ++++ .../domain/admin/dto/AdminMemberDTO.java | 12 +- .../admin/service/AdminMemberService.java | 10 +- .../admin/service/AdminMemberServiceImpl.java | 21 +-- .../hyundai/global/config/SecurityConfig.java | 6 +- .../hyundai/global/config/WebMvcConfig.java | 14 +- .../hyundai/global/intercepter/LogFilter.java | 74 ++++++++ .../global/mapper/AdminMemberMapper.java | 10 +- .../com/hyundai/global/mapper/LogMapper.java | 13 ++ .../global/mapper/AdminMemberMapper.xml | 159 ++++++++---------- .../com/hyundai/global/mapper/LogMapper.xml | 12 ++ 12 files changed, 240 insertions(+), 146 deletions(-) create mode 100644 src/main/java/com/hyundai/domain/admin/dto/AdminManagerDTO.java create mode 100644 src/main/java/com/hyundai/global/intercepter/LogFilter.java create mode 100644 src/main/java/com/hyundai/global/mapper/LogMapper.java create mode 100644 src/main/resources/com/hyundai/global/mapper/LogMapper.xml diff --git a/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java b/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java index 58c6263..fe1e431 100644 --- a/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java +++ b/src/main/java/com/hyundai/domain/admin/controller/AdminMemberController.java @@ -1,7 +1,7 @@ package com.hyundai.domain.admin.controller; +import com.hyundai.domain.admin.dto.AdminManagerDTO; import com.hyundai.domain.admin.dto.AdminMemberDTO; -import com.hyundai.domain.admin.dto.AdminMemberParamDTO; import com.hyundai.domain.admin.service.AdminMemberService; import com.hyundai.global.message.ResponseMessage; import lombok.RequiredArgsConstructor; @@ -23,27 +23,24 @@ public class AdminMemberController { public ResponseEntity getMembers(){ return ResponseMessage.SuccessResponse("회원 조회 성공", adminMemberService.getMemberList()); } - - @PostMapping("/member/{pageNum}") - public ResponseEntity getMembersByPage(@RequestBody AdminMemberParamDTO paramDTO, @PathVariable("pageNum") Long pageNum){ - return ResponseMessage. - SuccessResponse(pageNum + "페이지 조회 성공", adminMemberService.getMemberListByPage(paramDTO, pageNum)); + @GetMapping("/member/manager") + public ResponseEntity getManagers(){ + return ResponseMessage.SuccessResponse("매니저 조회 성공", adminMemberService.getManagerList()); } @PostMapping("/member/modify") public ResponseEntity modifyMember(@RequestBody AdminMemberDTO memberDTO){ return ResponseMessage - .SuccessResponse(memberDTO.getMemberId() + "회원 수정 성공", adminMemberService.modifyMember(memberDTO)); + .SuccessResponse(memberDTO.getMemberName() + "회원 수정 성공", adminMemberService.modifyMember(memberDTO)); } - @DeleteMapping("/member/delete") public ResponseEntity deleteMember(@RequestBody AdminMemberDTO memberDTO){ return ResponseMessage .SuccessResponse(memberDTO.getMemberId() + "회원 삭제 성공", adminMemberService.deleteMember(memberDTO)); } @PostMapping("/member/auth") - public ResponseEntity authMember(@RequestBody AdminMemberDTO memberDTO){ + public ResponseEntity authMember(@RequestBody AdminManagerDTO managerDTO){ return ResponseMessage - .SuccessResponse(memberDTO.getMemberId() + " 회원 권한 변경", adminMemberService.changeMemberAuthorization(memberDTO)); + .SuccessResponse(managerDTO.getStoreName() + " 회원 권한 변경", adminMemberService.changeMemberAuthorization(managerDTO)); } @PostMapping("/member/search") public ResponseEntity searchMember(@RequestBody Map requestBody){ @@ -51,11 +48,6 @@ public ResponseEntity searchMember(@RequestBody Map requestBody) return ResponseMessage .SuccessResponse(requestBody.get("search") + " 단어 검색 성공", adminMemberService.searchMembers(requestBody.get("search"))); } - @GetMapping("/member/detail/{memberId}") - public ResponseEntity getMemberDetail(@PathVariable String memberId){ - return ResponseMessage - .SuccessResponse( "회원 조회 성공", adminMemberService.getMemberDetail(memberId)); - } @GetMapping("/member/excelDown") public void excelDown(HttpServletResponse response) throws Exception{ diff --git a/src/main/java/com/hyundai/domain/admin/dto/AdminManagerDTO.java b/src/main/java/com/hyundai/domain/admin/dto/AdminManagerDTO.java new file mode 100644 index 0000000..1fc18a0 --- /dev/null +++ b/src/main/java/com/hyundai/domain/admin/dto/AdminManagerDTO.java @@ -0,0 +1,33 @@ +package com.hyundai.domain.admin.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + * @author : 강은구 + * @fileName : AdminManagerDTO + * @description : + * @since : 03/01/2024 + */ + +@Getter +@Setter +@AllArgsConstructor +@RequiredArgsConstructor +public class AdminManagerDTO { + private String storeId; + private String storeName; + private String storeTel; + private String memberId; + private String memberName; + private String memberPhone; + private String memberEmail; + private String infoAddr; + private String infoZipcode; + private LocalDateTime memberCreatedDate; + private LocalDateTime storeApprovedDate; +} diff --git a/src/main/java/com/hyundai/domain/admin/dto/AdminMemberDTO.java b/src/main/java/com/hyundai/domain/admin/dto/AdminMemberDTO.java index 5408e83..1597507 100644 --- a/src/main/java/com/hyundai/domain/admin/dto/AdminMemberDTO.java +++ b/src/main/java/com/hyundai/domain/admin/dto/AdminMemberDTO.java @@ -1,9 +1,11 @@ package com.hyundai.domain.admin.dto; import com.hyundai.domain.login.entity.enumtype.Role; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import lombok.Setter; -import java.time.LocalDate; import java.time.LocalDateTime; @Getter @@ -17,11 +19,13 @@ public class AdminMemberDTO { private String memberName; private String memberNickname; private String memberPhone; - private String memberImage; private int memberGender; - private LocalDate memberBirth; + private String memberBirth; private Role memberRole; private LocalDateTime createdDate; private LocalDateTime modifiedDate; private LocalDateTime deletedDate; + + private String infoAddr; + private String infoZipcode; } \ No newline at end of file diff --git a/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java b/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java index 4229d91..41a6aff 100644 --- a/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java +++ b/src/main/java/com/hyundai/domain/admin/service/AdminMemberService.java @@ -1,7 +1,7 @@ package com.hyundai.domain.admin.service; +import com.hyundai.domain.admin.dto.AdminManagerDTO; import com.hyundai.domain.admin.dto.AdminMemberDTO; -import com.hyundai.domain.admin.dto.AdminMemberParamDTO; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -10,20 +10,16 @@ public interface AdminMemberService { List getMemberList(); - List getMemberListByPage(AdminMemberParamDTO paramDTO, Long pageNum); - String modifyMember(AdminMemberDTO member); String deleteMember(AdminMemberDTO member); - String changeMemberAuthorization(AdminMemberDTO member); - + String changeMemberAuthorization(AdminManagerDTO member); void getMemberExcelFile(HttpServletResponse response) throws IOException; List searchMembers(String word); - AdminMemberDTO getMemberDetail(String memberId); - + List getManagerList(); } diff --git a/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java b/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java index 3395e01..b881526 100644 --- a/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java +++ b/src/main/java/com/hyundai/domain/admin/service/AdminMemberServiceImpl.java @@ -1,7 +1,7 @@ package com.hyundai.domain.admin.service; +import com.hyundai.domain.admin.dto.AdminManagerDTO; import com.hyundai.domain.admin.dto.AdminMemberDTO; -import com.hyundai.domain.admin.dto.AdminMemberParamDTO; import com.hyundai.domain.utils.file.DownExcelView; import com.hyundai.global.exception.GlobalErrorCode; import com.hyundai.global.exception.GlobalException; @@ -30,17 +30,6 @@ public List getMemberList() { return adminMemberMapper.getAllMembers(); } - @Override - @Transactional(readOnly = true) - public List getMemberListByPage(AdminMemberParamDTO paramDTO, Long pageNum) { - paramDTO.setPageNum(pageNum); - if(adminMemberMapper.getListByParams(paramDTO).isEmpty()){ - throw new GlobalException(GlobalErrorCode.NOT_HAVING_DATA); - } - - return adminMemberMapper.getListByParams(paramDTO); - } - @Override public String modifyMember(AdminMemberDTO member) { try{ @@ -64,7 +53,7 @@ public String deleteMember(AdminMemberDTO member) { } @Override - public String changeMemberAuthorization(AdminMemberDTO member) { + public String changeMemberAuthorization(AdminManagerDTO member) { try{ adminMemberMapper.grantAuthorization(member); return "성공"; @@ -74,16 +63,14 @@ public String changeMemberAuthorization(AdminMemberDTO member) { } - - @Override public List searchMembers(String word) { return adminMemberMapper.searchMembers(word); } @Override - public AdminMemberDTO getMemberDetail(String memberId) { - return adminMemberMapper.getMemberDetail(memberId); + public List getManagerList() { + return adminMemberMapper.getAllManagers(); } @Override diff --git a/src/main/java/com/hyundai/global/config/SecurityConfig.java b/src/main/java/com/hyundai/global/config/SecurityConfig.java index 95ccb03..e7a3d4f 100644 --- a/src/main/java/com/hyundai/global/config/SecurityConfig.java +++ b/src/main/java/com/hyundai/global/config/SecurityConfig.java @@ -4,6 +4,8 @@ import com.hyundai.domain.login.security.CustomDeniedHandler; import com.hyundai.domain.login.security.JwtFilter; import com.hyundai.domain.login.security.JwtProvider; +import com.hyundai.global.intercepter.LogFilter; +import com.hyundai.global.mapper.LogMapper; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -34,6 +36,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { private final JwtProvider jwtProvider; private final CustomAuthenticationEntryPoint customAuthenticationEntryPoint; private final CustomDeniedHandler customDeniedHandler; + private final LogMapper logMapper; @Override @Bean @@ -89,7 +92,8 @@ protected void configure(HttpSecurity http) throws Exception { .permitAll() // 누구나 접근 가능 .anyRequest().authenticated() .and() - .addFilterBefore(new JwtFilter(jwtProvider), UsernamePasswordAuthenticationFilter.class); + .addFilterBefore(new JwtFilter(jwtProvider), UsernamePasswordAuthenticationFilter.class) + .addFilterAfter(new LogFilter(logMapper), JwtFilter.class); } diff --git a/src/main/java/com/hyundai/global/config/WebMvcConfig.java b/src/main/java/com/hyundai/global/config/WebMvcConfig.java index 1c35227..c4fbb44 100644 --- a/src/main/java/com/hyundai/global/config/WebMvcConfig.java +++ b/src/main/java/com/hyundai/global/config/WebMvcConfig.java @@ -1,11 +1,11 @@ package com.hyundai.global.config; - - - import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.*; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Slf4j @@ -13,14 +13,13 @@ @Configuration @RequiredArgsConstructor public class WebMvcConfig implements WebMvcConfigurer { - private final ApplicationProperties properties; @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - .allowedOrigins(properties.getFRONT_LOCAL_URL() ) - .allowedMethods("OPTIONS","GET","POST","PUT","DELETE"); + .allowedOrigins(properties.getFRONT_LOCAL_URL()) + .allowedMethods("OPTIONS", "GET", "POST", "PUT", "DELETE"); } @Override @@ -31,4 +30,5 @@ public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } + } diff --git a/src/main/java/com/hyundai/global/intercepter/LogFilter.java b/src/main/java/com/hyundai/global/intercepter/LogFilter.java new file mode 100644 index 0000000..92282d7 --- /dev/null +++ b/src/main/java/com/hyundai/global/intercepter/LogFilter.java @@ -0,0 +1,74 @@ +package com.hyundai.global.intercepter; + +import com.hyundai.domain.login.security.CustomMemberDetails; +import com.hyundai.global.mapper.LogMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.util.StreamUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; + +/** + * @author : 강은구 + * @fileName : LogFilter + * @description : + * @since : 03/01/2024 + */ +@Slf4j +@RequiredArgsConstructor +public class LogFilter extends OncePerRequestFilter { + + private final LogMapper logMapper; + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { + Map logs = new HashMap<>(); + ServletInputStream inputStream = request.getInputStream(); + String body = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); + String ipAddr = getIpAddr(request); + String memberId = ((CustomMemberDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getMemberId(); + logs.put("uri", request.getRequestURI()); + logs.put("method", request.getMethod()); + logs.put("ipAddr", ipAddr); + logs.put("localAddr", request.getLocalAddr()); + logs.put("memberId", memberId); + logs.put("body", body); + try { + logMapper.insertLog(logs); + filterChain.doFilter(request, response); + } catch (Exception e) { + filterChain.doFilter(request, response); + } + } + + public static String getIpAddr(HttpServletRequest request){ + + String ip = request.getHeader("X-Forwarded-For"); + + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + return ip; + } +} diff --git a/src/main/java/com/hyundai/global/mapper/AdminMemberMapper.java b/src/main/java/com/hyundai/global/mapper/AdminMemberMapper.java index a768ccb..4416568 100644 --- a/src/main/java/com/hyundai/global/mapper/AdminMemberMapper.java +++ b/src/main/java/com/hyundai/global/mapper/AdminMemberMapper.java @@ -1,25 +1,21 @@ package com.hyundai.global.mapper; +import com.hyundai.domain.admin.dto.AdminManagerDTO; import com.hyundai.domain.admin.dto.AdminMemberDTO; -import com.hyundai.domain.admin.dto.AdminMemberParamDTO; import java.util.List; public interface AdminMemberMapper { - List getListByParams(AdminMemberParamDTO params); - List getAllMembers(); void modifyMember(AdminMemberDTO memberDTO); void deleteMember(AdminMemberDTO memberDTO); - void grantAuthorization(AdminMemberDTO memberDTO); - - AdminMemberDTO getMemberDetail(String memberId); + void grantAuthorization(AdminManagerDTO managerDTO); List searchMembers(String word); - + List getAllManagers(); } diff --git a/src/main/java/com/hyundai/global/mapper/LogMapper.java b/src/main/java/com/hyundai/global/mapper/LogMapper.java new file mode 100644 index 0000000..bb49c31 --- /dev/null +++ b/src/main/java/com/hyundai/global/mapper/LogMapper.java @@ -0,0 +1,13 @@ +package com.hyundai.global.mapper; + +import java.util.Map; + +/** + * @author : 강은구 + * @fileName : LogMapper + * @description : + * @since : 03/01/2024 + */ +public interface LogMapper { + void insertLog(Map logs); +} diff --git a/src/main/resources/com/hyundai/global/mapper/AdminMemberMapper.xml b/src/main/resources/com/hyundai/global/mapper/AdminMemberMapper.xml index 9b3556f..4211340 100644 --- a/src/main/resources/com/hyundai/global/mapper/AdminMemberMapper.xml +++ b/src/main/resources/com/hyundai/global/mapper/AdminMemberMapper.xml @@ -8,69 +8,72 @@ - - + + - + + + + + + + + + + + + + - + + + UPDATE tbl_member SET @@ -80,7 +83,7 @@ , member_phone = #{memberPhone} , modified_at = sysdate WHERE - member_id = #{memberId} AND deleted_at IS NULL + member_id = #{memberId} @@ -93,49 +96,29 @@ - update - tbl_member - set - member_role = #{memberRole} - WHERE - member_id = #{memberId} + {call ADMIN_MANAGE_GRANT(#{memberId, mode=IN, jdbcType=VARCHAR})} - \ No newline at end of file diff --git a/src/main/resources/com/hyundai/global/mapper/LogMapper.xml b/src/main/resources/com/hyundai/global/mapper/LogMapper.xml new file mode 100644 index 0000000..c6102e2 --- /dev/null +++ b/src/main/resources/com/hyundai/global/mapper/LogMapper.xml @@ -0,0 +1,12 @@ + + + + + + INSERT INTO tbl_log + (log_uri, log_method, log_ipaddr, log_localaddr, log_member_id, log_request_body) + VALUES + (#{uri}, #{method}, #{ipAddr}, #{localAddr}, #{memberId}, #{body}) + + From 067b7486c8947b922ac03cd7524f498be1ff413a Mon Sep 17 00:00:00 2001 From: EunKu Date: Fri, 1 Mar 2024 21:43:04 +0900 Subject: [PATCH 3/3] LogFilter - add exclude_url --- .../hyundai/global/config/SecurityConfig.java | 2 +- .../{intercepter => filter}/LogFilter.java | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) rename src/main/java/com/hyundai/global/{intercepter => filter}/LogFilter.java (84%) diff --git a/src/main/java/com/hyundai/global/config/SecurityConfig.java b/src/main/java/com/hyundai/global/config/SecurityConfig.java index e7a3d4f..3424bf7 100644 --- a/src/main/java/com/hyundai/global/config/SecurityConfig.java +++ b/src/main/java/com/hyundai/global/config/SecurityConfig.java @@ -4,7 +4,7 @@ import com.hyundai.domain.login.security.CustomDeniedHandler; import com.hyundai.domain.login.security.JwtFilter; import com.hyundai.domain.login.security.JwtProvider; -import com.hyundai.global.intercepter.LogFilter; +import com.hyundai.global.filter.LogFilter; import com.hyundai.global.mapper.LogMapper; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; diff --git a/src/main/java/com/hyundai/global/intercepter/LogFilter.java b/src/main/java/com/hyundai/global/filter/LogFilter.java similarity index 84% rename from src/main/java/com/hyundai/global/intercepter/LogFilter.java rename to src/main/java/com/hyundai/global/filter/LogFilter.java index 92282d7..bacf2d5 100644 --- a/src/main/java/com/hyundai/global/intercepter/LogFilter.java +++ b/src/main/java/com/hyundai/global/filter/LogFilter.java @@ -1,4 +1,4 @@ -package com.hyundai.global.intercepter; +package com.hyundai.global.filter; import com.hyundai.domain.login.security.CustomMemberDetails; import com.hyundai.global.mapper.LogMapper; @@ -16,6 +16,7 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -29,6 +30,19 @@ public class LogFilter extends OncePerRequestFilter { private final LogMapper logMapper; + + private final List EXCLUDE_URL_PATTERN = List.of( + "/api/v1/swagger-ui.html" + , "/api/v1/webjars" + , "/api/v1/v2/api-docs" + , "/api/v1/v3/api-docs" + , "/api/v1/swagger-resources" + ); + @Override + protected boolean shouldNotFilter(HttpServletRequest request){ + String path = request.getRequestURI(); + return EXCLUDE_URL_PATTERN.stream().anyMatch(path::startsWith); + } @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { Map logs = new HashMap<>();