浏览代码

refactor: add anonymous path config bean

linwenhua 2 年之前
父节点
当前提交
fa2c107cf1

+ 28 - 0
src/main/java/com/inspur/smsb/gateway/config/AnonymousPathProperties.java

@@ -0,0 +1,28 @@
+package com.inspur.smsb.gateway.config;
+
+import lombok.Setter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * anonymous path config properties
+ * @author linwenhua
+ * @date 2022-12-15 10:55
+ **/
+@Slf4j
+@Component
+@ConfigurationProperties(prefix = "anonymous-path")
+public class AnonymousPathProperties {
+
+    @Setter
+    private List<String> paths;
+
+    public String[] getPaths() {
+        paths.forEach(path -> log.info("anonymous path: {}", path));
+        String[] pathArray = new String[paths.size()];
+        return paths.toArray(pathArray);
+    }
+}

+ 3 - 9
src/main/java/com/inspur/smsb/gateway/config/ResourceServerConfig.java

@@ -1,7 +1,5 @@
 package com.inspur.smsb.gateway.config;
 
-import lombok.AllArgsConstructor;
-import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
@@ -28,8 +26,8 @@ import static org.springframework.security.config.Customizer.withDefaults;
 @EnableWebFluxSecurity
 public class ResourceServerConfig {
 
-    @Value(value = "${anonymousPath.paths}")
-    private String anonymousPath;
+    @Resource
+    private AnonymousPathProperties anonymousPath;
 
     @Resource
     private AuthorizationManager authorizationManager;
@@ -43,7 +41,7 @@ public class ResourceServerConfig {
         http.oauth2ResourceServer().jwt()
             .jwtAuthenticationConverter(jwtAuthenticationConverter());
         http.authorizeExchange()
-            .pathMatchers(getAnonymousPaths()).permitAll()
+            .pathMatchers(anonymousPath.getPaths()).permitAll()
             .anyExchange().access(authorizationManager)
             .and()
             .exceptionHandling()
@@ -58,8 +56,4 @@ public class ResourceServerConfig {
         jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(new RealmRoleConverter());
         return new ReactiveJwtAuthenticationConverterAdapter(jwtAuthenticationConverter);
     }
-
-    private String[] getAnonymousPaths() {
-        return anonymousPath.split(",");
-    }
 }