From ab1a07a30d36dc0f54b7e7befa4fc20809daece5 Mon Sep 17 00:00:00 2001 From: ethan-liu Date: Sat, 26 Mar 2022 15:43:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0jianmu.auth-mode?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B9=E6=9D=A5=E6=8E=A7=E5=88=B6jwt?= =?UTF-8?q?=E8=AE=A4=E8=AF=81=E5=8A=9F=E8=83=BD=E5=BC=80=E5=90=AF=E6=88=96?= =?UTF-8?q?=E5=85=B3=E9=97=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jianmu/api/jwt/DisableSecurityConfig.java | 33 +++++++++++++++++++ .../dev/jianmu/api/jwt/WebSecurityConfig.java | 2 ++ .../infrastructure/GlobalProperties.java | 1 + 3 files changed, 36 insertions(+) create mode 100644 api/src/main/java/dev/jianmu/api/jwt/DisableSecurityConfig.java diff --git a/api/src/main/java/dev/jianmu/api/jwt/DisableSecurityConfig.java b/api/src/main/java/dev/jianmu/api/jwt/DisableSecurityConfig.java new file mode 100644 index 000000000..75f38cba6 --- /dev/null +++ b/api/src/main/java/dev/jianmu/api/jwt/DisableSecurityConfig.java @@ -0,0 +1,33 @@ +package dev.jianmu.api.jwt; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.builders.WebSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +/** + * @author Ethan Liu + * @class DisableSecurityConfig + * @description DisableSecurityConfig + * @create 2022-03-26 15:31 + */ +@Configuration +@EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true) +@ConditionalOnProperty(prefix = "jianmu", name = "auth-mode", havingValue = "false") +public class DisableSecurityConfig extends WebSecurityConfigurerAdapter { + @Bean + @Override + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } + + @Override + public void configure(WebSecurity web) throws Exception { + web.ignoring().antMatchers("/**"); + } +} diff --git a/api/src/main/java/dev/jianmu/api/jwt/WebSecurityConfig.java b/api/src/main/java/dev/jianmu/api/jwt/WebSecurityConfig.java index 8db7b175e..769f2db8f 100644 --- a/api/src/main/java/dev/jianmu/api/jwt/WebSecurityConfig.java +++ b/api/src/main/java/dev/jianmu/api/jwt/WebSecurityConfig.java @@ -1,5 +1,6 @@ package dev.jianmu.api.jwt; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; @@ -22,6 +23,7 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled = true) +@ConditionalOnProperty(prefix = "jianmu", name = "auth-mode", havingValue = "true", matchIfMissing = true) public class WebSecurityConfig extends WebSecurityConfigurerAdapter { private final JwtUserDetailsService jwtUserDetailsService; private final JwtAuthEntryPoint jwtAuthEntryPoint; diff --git a/infrastructure/src/main/java/dev/jianmu/infrastructure/GlobalProperties.java b/infrastructure/src/main/java/dev/jianmu/infrastructure/GlobalProperties.java index 5ed05534c..9d9ab4ec8 100644 --- a/infrastructure/src/main/java/dev/jianmu/infrastructure/GlobalProperties.java +++ b/infrastructure/src/main/java/dev/jianmu/infrastructure/GlobalProperties.java @@ -20,6 +20,7 @@ import javax.validation.constraints.NotNull; public class GlobalProperties { @NotNull private Global global = new Global(); + private Boolean authMode = true; @Data @Component -- Gitee