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