Browse Source

fix: 增加了本地测试时的跨域设置

刘一也 4 years ago
parent
commit
038f884569

+ 0 - 2
src/main/java/cn/seecoder/devmanage/security/JwtAuthenticationFilter.java

@@ -26,8 +26,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
 
 import static org.springframework.http.HttpHeaders.AUTHORIZATION;
 import static org.springframework.http.HttpStatus.FORBIDDEN;

+ 23 - 3
src/main/java/cn/seecoder/devmanage/security/SecurityConfig.java

@@ -1,14 +1,15 @@
 package cn.seecoder.devmanage.security;
 
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.http.HttpMethod;
 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.WebSecurityConfigurerAdapter;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.CorsConfigurationSource;
+import org.springframework.web.cors.CorsUtils;
 
 import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS;
 
@@ -21,13 +22,32 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
     @Override
     protected void configure(HttpSecurity http) throws Exception {
         http
+                .cors()
+                .and()
                 .csrf().disable()
                 .sessionManagement().sessionCreationPolicy(STATELESS)
                 .and()
                 .authorizeRequests()
+                .requestMatchers(CorsUtils::isPreFlightRequest).permitAll()
                 .antMatchers("/limitrequest/student/**").hasAnyAuthority("STUDENT")
                 .anyRequest().hasAnyAuthority("SEEC", "ADMIN")
                 .and()
                 .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
     }
+
+    /**
+     * 本地测试时的跨域设置
+     */
+    @Bean
+    CorsConfigurationSource corsConfigurationSource() {
+        return httpServletRequest -> {
+            CorsConfiguration cfg = new CorsConfiguration();
+            cfg.addAllowedOriginPattern("*");
+            cfg.addAllowedHeader("*");
+            cfg.addAllowedMethod("*");
+            cfg.setAllowCredentials(true);
+            cfg.checkOrigin("*");
+            return cfg;
+        };
+    }
 }

+ 41 - 0
src/main/resources/application-lyy-prodjwt.yaml

@@ -0,0 +1,41 @@
+spring:
+  datasource:
+    url: jdbc:mysql://localhost:3306/devmanage?useUnicode=true&character_set_server=utf8mb4
+    username: root
+    password: 114514
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  jpa:
+    hibernate:
+      ddl-auto: update
+    show-sql: true
+seecoder:
+  devcloud:
+    jwt: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJEZXZtYW5hZ2UiLCJleHAiOjIwNDgzODAxMjQsImF1dGgiOiJTRUVDIiwidXNlcl9pbmZvIjp7ImlkIjowLCJwaG9uZSI6IiIsInVzZXJuYW1lIjoiRGV2bWFuYWdlIiwibmFtZSI6IkRldm1hbmFnZSIsImVtYWlsIjoiIiwicGhvdG8iOm51bGwsInJvbGUiOiJTRUVDIiwic2lnbmF0dXJlIjoi5pegIiwiY3JlYXRlZFRpbWUiOm51bGwsInZhbGlkIjp0cnVlfX0.BKVMLQsbr9Rx0G3OWzW8PZXgVLvu8XEev1F2OdTtpQI
+    url: https://devcloud.seec.seecoder.cn/api/devmanage
+  jwt:
+    secret: UenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRWUenM4KGb6DskRW
+  k8s:
+    api-server: https://101.133.232.246:6443
+    token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzZWVjIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InNlZWMtYWRtaW4tdG9rZW4tZ3hra2wiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic2VlYy1hZG1pbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImMxYWFiNzcyLTI2Y2YtMTFlYi04ZmJjLTAwMTYzZTIzMzQzMyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpzZWVjOnNlZWMtYWRtaW4ifQ.Y6T5sz8FTNIzDhTacpAZvQ0iP2LZhqeMmagw3SiRiAvIVNHjPZK5QdLu1xFiz7UZRcCxh7FpUtBsKDSU9RBwQEJtt-8ZVDr-RAMwuj4c1tRimAmKDm6FiQ-Fl6eLx-3dyC6-bwgJS2rr3miFPRX-E-mqpBsBqwuughaqek6OG7dXf5tiulE7gpEXrGs2DZU8B8Fwmp_5SBz7Kpxg6AdKbCka2quNOofq_pymButwGJl8aZuZtmpeHHkydfHDrxzjiDb_41Cpx8byPnDvf-y7-zsn7eR1K55PrmQYl0Ye6mAUm9prSE8xpSgyWzW_jpfuH_aMod7E7D8syvB00GE-IA
+    validateSSL: false
+    debugging: false
+    ingressHostSuffix: .devcloud.seec.seecoder.cn
+  gitlab:
+    host: https://seecoder-gitlab-gitlab.seec.seecoder.cn
+    webhookProxy: https://devcloud.seec.seecoder.cn
+    token: wXDeETv2Kmt-JhiApJ9H
+  git:
+    username: root
+    password: NJU67software
+  docker:
+    host: unix:///var/run/docker.sock
+    registry: 127.0.0.1:6000
+    registryUsername: admin
+    registryPassword: NJU67nexus
+    tls: false
+locallogger:
+  timezone:
+    offset: "+8"
+logging:
+  level:
+    root: info