|
@@ -1,15 +1,20 @@
|
|
|
package com.backendsys.modules.common.config.security;
|
|
|
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
+//import com.backendsys.modules.common.config.security.filter.AnonymousFilter;
|
|
|
import com.backendsys.modules.common.config.security.filter.CaptchaVerficationFilter;
|
|
|
import com.backendsys.modules.common.config.security.filter.JwtAuthenticationFilter;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.context.ApplicationContext;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
|
|
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
|
|
|
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
|
|
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
|
|
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration;
|
|
|
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
|
|
|
import org.springframework.security.config.http.SessionCreationPolicy;
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
@@ -18,13 +23,14 @@ import org.springframework.security.web.SecurityFilterChain;
|
|
|
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
|
|
|
|
|
@Configuration
|
|
|
-@EnableWebSecurity // 开启网络安全注解
|
|
|
+@EnableWebSecurity
|
|
|
@RequiredArgsConstructor
|
|
|
-//@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
|
|
|
+// @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
|
|
|
@EnableMethodSecurity(securedEnabled = true)
|
|
|
public class SecurityConfig {
|
|
|
|
|
|
private final JwtAuthenticationFilter jwtAuthenticationFilter;
|
|
|
+// private final AnonymousFilter anonymousFilter;
|
|
|
|
|
|
@Bean
|
|
|
public PasswordEncoder getPw() {
|
|
@@ -56,11 +62,24 @@ public class SecurityConfig {
|
|
|
// Spring-Security 更新日志文档 (升级版本是否对语法有影响):
|
|
|
// https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/config/web/server/ServerHttpSecurity.html
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PermitAllUrlProperties permitAllUrl;
|
|
|
+
|
|
|
@Bean
|
|
|
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
|
|
|
|
|
|
String [] whitelist = getWhitelist();
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ System.out.println(permitAllUrl.getUrls());
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
// 路径授权
|
|
|
http
|
|
|
// 禁用csrf(防止跨站请求伪造攻击)
|
|
@@ -88,7 +107,9 @@ public class SecurityConfig {
|
|
|
)
|
|
|
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
|
|
)
|
|
|
- .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
|
|
|
+// .addFilterBefore(anonymousFilter, UsernamePasswordAuthenticationFilter.class)
|
|
|
+ .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class)
|
|
|
+ ;
|
|
|
|
|
|
// 使用无状态session,即不使用session缓存数据
|
|
|
// .logout()
|
|
@@ -127,7 +148,6 @@ public class SecurityConfig {
|
|
|
return http.build();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 跨域资源配置
|
|
|
//@Bean
|
|
|
//public CorsConfigurationSource corsConfigurationSource() {
|