wuheng 1 жил өмнө
parent
commit
2a51909644

+ 30 - 0
controller/src/main/resources/application-wheng.yaml

@@ -0,0 +1,30 @@
+server:
+  port: 8081
+spring:
+  datasource:
+    url: jdbc:mysql://127.0.0.1:13306/eas?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=true&tinyInt1isBit=false
+    username: root
+    password: 0JZBdtlYoiOepddh
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  redis:
+    host: localhost
+    database: 8
+    password:
+    port: 26379
+  security:
+    user:
+      name: admin
+      password: 123456
+springdoc:
+  version: v0.0.1
+  api-docs:
+    enabled: true
+  swagger-ui:
+    enabled: true
+knife4j:
+  enable: true
+  setting:
+    language: zh_cn
+logging:
+  level:
+    com.koobietech.eas.*: TRACE

+ 1 - 1
controller/src/main/resources/logback.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <property name="log.path" value="./" />
+    <property name="log.path" value="./logs" />
     <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>

+ 16 - 6
security/src/main/java/com/koobietech/eas/security/filter/EasSecurityFilter.java

@@ -6,6 +6,8 @@ import com.koobietech.eas.common.utils.JwtManager;
 import com.koobietech.eas.dao.adminLoginPojo.Permission;
 import com.koobietech.eas.dao.adminLoginPojo.UserDetail;
 import com.koobietech.eas.service.LoginRedisService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.context.SecurityContext;
@@ -27,6 +29,8 @@ import javax.servlet.http.HttpServletResponse;
 @Component
 public class EasSecurityFilter extends OncePerRequestFilter {
 
+    private static final Logger logger = LoggerFactory.getLogger(EasSecurityFilter.class);
+
     @Resource
     private LoginRedisService loginRedisService;
 
@@ -45,16 +49,22 @@ public class EasSecurityFilter extends OncePerRequestFilter {
             try {
                 //过滤器 允许 Token 不正确, 后面Security 会拦截处理
                 jwtUserDto = jwtManager.decodeJwt(token);
-            } catch ( EasException e) {}
+            } catch ( EasException e) {
+                logger.debug(e.getMessage());
+            }
             if ( Objects.nonNull(jwtUserDto) ) {
                 //判断token是否有效
-                UserDetail userDetail = loginRedisService.checkToken(jwtUserDto);
-
-                // 获取当前的 SecurityContext 对象,用于保存当前用户的安全上下文信息
-                SecurityContext context = SecurityContextHolder.getContext();
+                UserDetail userDetail = null;
+                try {
+                    userDetail = loginRedisService.checkToken(jwtUserDto);
+                } catch ( EasException e) {
+                    logger.debug(e.getMessage());
+                }
 
+                // 如果获取到了有效的用户对象
                 if (Objects.nonNull(userDetail)) {
-                    // 如果获取到了有效的用户对象
+                    // 获取当前的 SecurityContext 对象,用于保存当前用户的安全上下文信息
+                    SecurityContext context = SecurityContextHolder.getContext();
 
                     // 获取用户的权限列表
                     List<Permission> permission = userDetail.getPermissions();

+ 19 - 0
security/src/main/java/com/koobietech/eas/security/utils/SecurityUtils.java

@@ -0,0 +1,19 @@
+package com.koobietech.eas.security.utils;
+import org.springframework.security.core.context.SecurityContextHolder;
+public class SecurityUtils {
+
+    public static String getLoginUserName(){
+        Object principal = getPrincipal();
+        return principal.toString().equals("anonymousUser") ? "" : principal.toString();
+    }
+
+    public static boolean isLogged(){
+        Object principal = getPrincipal();
+        return principal.toString().equals("anonymousUser");
+    }
+
+    private static Object getPrincipal(){
+        return SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+    }
+
+}