浏览代码

Merge branch 'main' of http://172.14.1.63:3000/nextosd/ds-yamoto-farm-server

qiaoyan 1 周之前
父节点
当前提交
d3dd9b2e97

+ 2 - 2
farm-common/src/main/java/jp/yamoto/farm/common/exception/handler/GlobalExceptionHandler.java

@@ -58,7 +58,7 @@ public class GlobalExceptionHandler
     @ExceptionHandler(ServiceException.class)
     public AjaxResult handleServiceException(ServiceException e, HttpServletRequest request)
     {
-        //log.error(e.getMessage(), e);
+        //log.error(e.getMessage());
         Integer code = e.getCode();
         return StringUtils.isNotNull(code) ? AjaxResult.error(code, e.getMessage()) : AjaxResult.error(e.getMessage());
     }
@@ -129,7 +129,7 @@ public class GlobalExceptionHandler
     @ExceptionHandler(MethodArgumentNotValidException.class)
     public Object handleMethodArgumentNotValidException(MethodArgumentNotValidException e)
     {
-        log.error(e.getMessage(), e);
+        //log.error(e.getMessage());
         String message = e.getBindingResult().getFieldError().getDefaultMessage();
         return AjaxResult.error(message);
     }

+ 61 - 46
farm-common/src/main/java/jp/yamoto/farm/common/security/filter/JwtAuthenticationTokenFilter.java

@@ -1,46 +1,61 @@
-package jp.yamoto.farm.common.security.filter;
-
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import jp.yamoto.farm.common.core.domain.model.LoginUser;
-import jp.yamoto.farm.common.utils.SecurityUtils;
-import jp.yamoto.farm.common.utils.StringUtils;
-import jp.yamoto.farm.common.core.service.TokenService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
-import org.springframework.stereotype.Component;
-import org.springframework.web.filter.OncePerRequestFilter;
-
-import java.io.IOException;
-
-/**
- * tokenフィルタtokenの有効性を検証する
- * 
- * @author nextosd
- */
-@Component
-public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
-{
-    @Autowired
-    private TokenService tokenService;
-
-    @Override
-    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
-            throws ServletException, IOException
-    {
-        LoginUser loginUser = tokenService.getLoginUser(request);
-        if (StringUtils.isNotNull(loginUser) && StringUtils.isNull(SecurityUtils.getAuthentication()))
-        {
-            tokenService.verifyToken(loginUser);
-
-            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
-            authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
-            SecurityContextHolder.getContext().setAuthentication(authenticationToken);
-        }
-        chain.doFilter(request, response);
-    }
-}
+package jp.yamoto.farm.common.security.filter;
+
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jp.yamoto.farm.common.core.domain.model.LoginUser;
+import jp.yamoto.farm.common.utils.SecurityUtils;
+import jp.yamoto.farm.common.utils.StringUtils;
+import jp.yamoto.farm.common.core.service.TokenService;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
+import org.springframework.stereotype.Component;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import java.io.IOException;
+
+/**
+ * tokenフィルタtokenの有効性を検証する
+ * 
+ * @author nextosd
+ */
+@Component
+public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
+{
+    @Autowired
+    private TokenService tokenService;
+
+    @Override
+    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
+            throws ServletException, IOException
+    {
+        try
+        {
+            LoginUser loginUser = tokenService.getLoginUser(request);
+            if (StringUtils.isNotNull(loginUser))
+            {
+                // MDCにuserIdを設定
+                MDC.put("userId", loginUser.getUserCode());
+                
+                if (StringUtils.isNull(SecurityUtils.getAuthentication()))
+                {
+                    tokenService.verifyToken(loginUser);
+                    
+                    UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
+                    authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
+                    SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+                }
+            }
+            chain.doFilter(request, response);
+        }
+        finally
+        {
+            // リクエスト処理が完了したらMDCからuserIdを削除
+            MDC.remove("userId");
+        }
+    }
+}

+ 0 - 4
farm-crm/pom.xml

@@ -43,10 +43,6 @@
             <artifactId>farm-crm-biz</artifactId>
         </dependency>
 
-        <dependency>
-            <groupId>jp.yamoto</groupId>
-            <artifactId>farm-quartz</artifactId>
-        </dependency>
     </dependencies>
 
     <build>

+ 1 - 1
farm-crm/src/main/resources/logback.xml

@@ -3,7 +3,7 @@
     <!-- ログ・ステージング・パス -->
 	<property name="log.path" value="logs" />
     <!-- ログ出力フォーマット -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] [%X{userId:-anonymous}] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
 	<!-- コンソール出力 -->
 	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">

+ 9 - 1
farm-sankin/src/main/java/jp/yamoto/farm/sankin/web/controller/AuthController.java

@@ -7,11 +7,13 @@ import jp.yamoto.farm.common.core.domain.model.LoginBody;
 import jp.yamoto.farm.common.core.domain.model.LoginUser;
 import jp.yamoto.farm.common.utils.SecurityUtils;
 import jp.yamoto.farm.sankin.biz.auth.domain.AuthReSendVerifyCodeBo;
-import jp.yamoto.farm.sankin.biz.auth.domain.AuthSecondVerifyBo;
 import jp.yamoto.farm.sankin.biz.auth.domain.AuthResetPwdBo;
+import jp.yamoto.farm.sankin.biz.auth.domain.AuthSecondVerifyBo;
 import jp.yamoto.farm.sankin.biz.auth.domain.AuthSendVerifyCodeBo;
 import jp.yamoto.farm.sankin.biz.auth.service.AuthService;
 import lombok.RequiredArgsConstructor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -26,6 +28,8 @@ import org.springframework.web.bind.annotation.*;
 @RequestMapping("/api/auth")
 public class AuthController
 {
+    private static final Logger log = LoggerFactory.getLogger(AuthController.class);
+
     @Autowired
     private AuthService authService;
 
@@ -83,6 +87,10 @@ public class AuthController
      */
     @GetMapping("userInfo")
     public AjaxResult getInfo() {
+
+        log.error("error test userinfo");
+        log.info("info test user");
+        log.warn("warn test user");
         LoginUser<FarmerUserInfo> loginUser = SecurityUtils.getLoginUser();
         FarmerUserInfo user = loginUser.getUser();
 

+ 1 - 1
farm-sankin/src/main/resources/logback.xml

@@ -3,7 +3,7 @@
     <!-- ログ・ステージング・パス -->
 	<property name="log.path" value="logs" />
     <!-- ログ出力フォーマット -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] [%X{userId:-anonymous}] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
 	<!-- コンソール出力 -->
 	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">