From 15b6012b571449defd0f3c8a8c8fba0ecedfa734 Mon Sep 17 00:00:00 2001
From: liyanqi <15181887205@163.com>
Date: 星期六, 10 九月 2022 14:52:39 +0800
Subject: [PATCH] 修改了因springsecurity导致的跨域问题

---
 ycl-common/src/main/java/com/ycl/config/WebConfig.java                          |   45 +++++++++++
 ycl-common/src/main/java/com/ycl/service/depart/impl/SccgDepartServiceImpl.java |    4 +
 ycl-common/src/main/java/com/ycl/config/WebSecurityCorsFilter.java              |   16 ---
 ycl-platform/src/main/java/com/ycl/config/SecurityConfig.java                   |    3 
 ycl-platform/src/main/resources/logback.xml                                     |  147 ++++++++++++++++++++++++++++++++++++
 5 files changed, 200 insertions(+), 15 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/config/WebConfig.java b/ycl-common/src/main/java/com/ycl/config/WebConfig.java
new file mode 100644
index 0000000..1bd6b81
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/config/WebConfig.java
@@ -0,0 +1,45 @@
+package com.ycl.config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+/**
+ * @author Lyq
+ * @version 1.0
+ * @date 2022/9/10 11:09
+ */
+@Configuration
+@Order(Ordered.HIGHEST_PRECEDENCE)
+public class WebConfig {
+
+
+    @Bean
+    public CorsFilter corsFilter() {
+        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        final CorsConfiguration config = new CorsConfiguration();
+        // 鍏佽cookies璺ㄥ煙
+        config.setAllowCredentials(true);
+        // #鍏佽鍚戣鏈嶅姟鍣ㄦ彁浜よ姹傜殑URI锛�*琛ㄧず鍏ㄩ儴鍏佽锛屽湪SpringMVC涓紝濡傛灉璁炬垚*锛屼細鑷姩杞垚褰撳墠璇锋眰澶翠腑鐨凮rigin
+        config.addAllowedOrigin("*");
+        // #鍏佽璁块棶鐨勫ご淇℃伅,*琛ㄧず鍏ㄩ儴
+        config.addAllowedHeader("*");
+        // 棰勬璇锋眰鐨勭紦瀛樻椂闂达紙绉掞級锛屽嵆鍦ㄨ繖涓椂闂存閲岋紝瀵逛簬鐩稿悓鐨勮法鍩熻姹備笉浼氬啀棰勬浜�
+        config.setMaxAge(18000L);
+        // 鍏佽鎻愪氦璇锋眰鐨勬柟娉曪紝*琛ㄧず鍏ㄩ儴鍏佽
+        config.addAllowedMethod("OPTIONS");
+        config.addAllowedMethod("HEAD");
+        // 鍏佽Get鐨勮姹傛柟娉�
+        config.addAllowedMethod("GET");
+        config.addAllowedMethod("PUT");
+        config.addAllowedMethod("POST");
+        config.addAllowedMethod("DELETE");
+        config.addAllowedMethod("PATCH");
+        source.registerCorsConfiguration("/**", config);
+        return new CorsFilter(source);
+    }
+}
diff --git a/ycl-common/src/main/java/com/ycl/config/WebSecurityCorsFilter.java b/ycl-common/src/main/java/com/ycl/config/WebSecurityCorsFilter.java
index 00189ec..77eb666 100644
--- a/ycl-common/src/main/java/com/ycl/config/WebSecurityCorsFilter.java
+++ b/ycl-common/src/main/java/com/ycl/config/WebSecurityCorsFilter.java
@@ -1,41 +1,29 @@
 package com.ycl.config;
 
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.CorsConfigurationSource;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 
 import javax.servlet.*;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
 
 /**
  * @author Lyq
  * @version 1.0
- * @date 2022/9/10 1:04
+ * @date 2022/9/11 10:04
  */
 public class WebSecurityCorsFilter implements Filter {
     @Override
     public void init(FilterConfig filterConfig) throws ServletException {
-
     }
-
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         HttpServletResponse res = (HttpServletResponse) response;
         res.setHeader("Access-Control-Allow-Origin", "*");
         res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
         res.setHeader("Access-Control-Max-Age", "3600");
-        res.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type, Accept, x-requested-with, Cache-Control, os, version, source");
+        res.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type, Accept, x-requested-with, Cache-Control");
         chain.doFilter(request, res);
     }
-
     @Override
     public void destroy() {
-
     }
 }
diff --git a/ycl-common/src/main/java/com/ycl/service/depart/impl/SccgDepartServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/depart/impl/SccgDepartServiceImpl.java
index 8b4e019..9c139c4 100644
--- a/ycl-common/src/main/java/com/ycl/service/depart/impl/SccgDepartServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/depart/impl/SccgDepartServiceImpl.java
@@ -80,6 +80,10 @@
         List<Long> userIds = updateDepartVO.getUserIds();
         if (CollUtil.isNotEmpty(userIds)) {
             Long departId = updateDepartVO.getId();
+            List<UmsAdminDepart> departList = umsAdminDepartService.queryByDepartId(departId);
+            if (CollUtil.isNotEmpty(departList)) {
+                umsAdminDepartService.deletedByDepartId(departId);
+            }
             userIds.forEach(e -> {
                 UmsAdminDepart adminDepart = new UmsAdminDepart();
                 adminDepart.setDepartId(departId);
diff --git a/ycl-platform/src/main/java/com/ycl/config/SecurityConfig.java b/ycl-platform/src/main/java/com/ycl/config/SecurityConfig.java
index cc1eab8..804a7a1 100644
--- a/ycl-platform/src/main/java/com/ycl/config/SecurityConfig.java
+++ b/ycl-platform/src/main/java/com/ycl/config/SecurityConfig.java
@@ -9,6 +9,7 @@
 import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;
 import org.springframework.security.config.http.SessionCreationPolicy;
 import org.springframework.security.web.SecurityFilterChain;
+import org.springframework.security.web.access.channel.ChannelProcessingFilter;
 import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 
@@ -63,7 +64,7 @@
                 .authenticationEntryPoint(restAuthenticationEntryPoint)
                 // 鑷畾涔夋潈闄愭嫤鎴櫒JWT杩囨护鍣�
                 .and()
-                .addFilterBefore(webSecurityCorsFilter(), UsernamePasswordAuthenticationFilter.class)
+                .addFilterBefore(webSecurityCorsFilter(), ChannelProcessingFilter.class)
                 .addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
         //鏈夊姩鎬佹潈闄愰厤缃椂娣诲姞鍔ㄦ�佹潈闄愭牎楠岃繃婊ゅ櫒
         if (dynamicSecurityService != null) {
diff --git a/ycl-platform/src/main/resources/logback.xml b/ycl-platform/src/main/resources/logback.xml
new file mode 100644
index 0000000..711cef3
--- /dev/null
+++ b/ycl-platform/src/main/resources/logback.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+	<property name="LOG_HOME" value="${user.dir}/logs/ycl/platform" />
+
+	<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>%d{H:mm} %-5level [%logger{16}] %msg%n</pattern>
+		</encoder>
+	</appender>
+	<!--		class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+	<appender name="normalLog"
+			  class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<FileNamePattern>${LOG_HOME}/normal/%d{yyyy-MM-dd}/%i.log</FileNamePattern>
+			<MaxHistory>30</MaxHistory>
+			<maxFileSize>2MB</maxFileSize>
+		</rollingPolicy>
+		<!--<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<FileNamePattern>${LOG_HOME}/job.normal.%d{yyyy-MM-dd}.log
+			</FileNamePattern>
+			<MaxHistory>30</MaxHistory>
+		</rollingPolicy>
+		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+			<maxFileSize>10MB</maxFileSize>
+		</triggeringPolicy>-->
+		<layout class="ch.qos.logback.classic.PatternLayout">
+			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{16} - %msg%n
+			</pattern>
+		</layout>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>ERROR</level>
+			<onMatch>DENY</onMatch>
+			<onMismatch>ACCEPT</onMismatch>
+		</filter>
+	</appender>
+
+	<appender name="ASYNC-INFO" class="ch.qos.logback.classic.AsyncAppender">
+		<discardingThreshold>0</discardingThreshold>
+		<queueSize>256</queueSize>
+		<appender-ref ref="normalLog"/>
+	</appender>
+
+
+
+	<appender name="errorLog"
+			  class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<FileNamePattern>${LOG_HOME}/error/%d{yyyy-MM-dd}/%i.log</FileNamePattern>
+			<MaxHistory>30</MaxHistory>
+			<maxFileSize>2MB</maxFileSize>
+		</rollingPolicy>
+		<!--<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+			<FileNamePattern>${LOG_HOME}/job.error.%d{yyyy-MM-dd}.log
+			</FileNamePattern>
+			<MaxHistory>30</MaxHistory>
+		</rollingPolicy>
+		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+			<maxFileSize>10MB</maxFileSize>
+		</triggeringPolicy>-->
+		<layout class="ch.qos.logback.classic.PatternLayout">
+			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{16} - %msg%n
+			</pattern>
+		</layout>
+		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+			<level>ERROR</level>
+			<onMatch>ACCEPT</onMatch>
+			<onMismatch>DENY</onMismatch>
+		</filter>
+	</appender>
+
+
+
+	<appender name="ASYNC-ERROR" class="ch.qos.logback.classic.AsyncAppender">
+		<discardingThreshold>0</discardingThreshold>
+		<queueSize>256</queueSize>
+		<appender-ref ref="errorLog"/>
+	</appender>
+
+	<appender name="ASYNC-CONSOLE" class="ch.qos.logback.classic.AsyncAppender">
+		<discardingThreshold>0</discardingThreshold>
+		<queueSize>256</queueSize>
+		<appender-ref ref="Console"/>
+	</appender>
+
+
+
+<!--	<logger name="com.ycl" level="debug" >
+
+	</logger >-->
+	<springProfile name="dev">
+		<!--鎵撳嵃SQL-->
+		<logger name="java.sql.Connection" level="DEBUG" />
+		<logger name="java.sql.Statement" level="DEBUG" />
+		<logger name="java.sql.PreparedStatement" level="DEBUG" />
+
+		<logger name="com.ycl.component" level="error" />
+
+		<logger name="com.ycl" level="debug" >
+			<appender-ref ref="normalLog" />
+			<appender-ref ref="errorLog" />
+		</logger>
+
+		<root level="info">
+			<appender-ref ref="Console" />
+			<appender-ref ref="normalLog" />
+			<appender-ref ref="errorLog" />
+		</root>
+	</springProfile>
+	<springProfile name="test">
+		<!--鎵撳嵃SQL-->
+		<logger name="java.sql.Connection" level="DEBUG" />
+		<logger name="java.sql.Statement" level="DEBUG" />
+		<logger name="java.sql.PreparedStatement" level="DEBUG" />
+
+		<logger name="com.ycl.component" level="error" />
+
+		<logger name="com.ycl" level="debug" >
+			<appender-ref ref="normalLog" />
+			<appender-ref ref="errorLog" />
+		</logger>
+
+		<root level="info">
+			<appender-ref ref="Console" />
+			<appender-ref ref="normalLog" />
+			<appender-ref ref="errorLog" />
+		</root>
+	</springProfile>
+
+	<springProfile name="pro">
+		<!--鎵撳嵃SQL-->
+		<logger name="java.sql.Connection" level="ERROR" />
+		<logger name="java.sql.Statement" level="ERROR" />
+		<logger name="java.sql.PreparedStatement" level="ERROR" />
+		<logger name="com.ycl" level="debug" >
+			<appender-ref ref="normalLog" />
+			<appender-ref ref="errorLog" />
+		</logger>
+		<root level="info">
+			<appender-ref ref="Console" />
+		</root>
+	</springProfile>
+
+
+
+
+</configuration>
\ No newline at end of file

--
Gitblit v1.8.0