diff --git a/admin-sa/sa/src/main/java/com/supwisdom/institute/backend/admin/sa/Application.java b/admin-sa/sa/src/main/java/com/supwisdom/institute/backend/admin/sa/Application.java
index 952ed4d..cf68b11 100644
--- a/admin-sa/sa/src/main/java/com/supwisdom/institute/backend/admin/sa/Application.java
+++ b/admin-sa/sa/src/main/java/com/supwisdom/institute/backend/admin/sa/Application.java
@@ -3,11 +3,7 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.context.annotation.Bean;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-import org.springframework.web.filter.CorsFilter;
 
 import com.supwisdom.infras.online.doc.configuration.EnableInfrasOnlineDoc;
 import com.supwisdom.institute.backend.common.core.transmit.annotation.EnableSimpleUserTransmit;
@@ -28,18 +24,4 @@
     SpringApplication.run(Application.class, args);
   }
   
-  @Bean
-  public CorsFilter corsFilter() {
-    final CorsConfiguration config = new CorsConfiguration();
-    // config.setAllowCredentials(true);
-    config.addAllowedOrigin("*");
-    config.addAllowedHeader("*");
-    config.addAllowedMethod("*");
-
-    final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-    source.registerCorsConfiguration("/v2/api-docs", config);
-
-    return new CorsFilter(source);
-  }
-
 }
diff --git a/biz-sa/sa/src/main/java/com/supwisdom/institute/backend/biz/sa/Application.java b/biz-sa/sa/src/main/java/com/supwisdom/institute/backend/biz/sa/Application.java
index bd942b2..c5f8962 100644
--- a/biz-sa/sa/src/main/java/com/supwisdom/institute/backend/biz/sa/Application.java
+++ b/biz-sa/sa/src/main/java/com/supwisdom/institute/backend/biz/sa/Application.java
@@ -3,11 +3,7 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.context.annotation.Bean;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.web.cors.CorsConfiguration;
-import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
-import org.springframework.web.filter.CorsFilter;
 
 import com.supwisdom.infras.online.doc.configuration.EnableInfrasOnlineDoc;
 import com.supwisdom.institute.backend.common.core.transmit.annotation.EnableSimpleUserTransmit;
@@ -28,18 +24,4 @@
     SpringApplication.run(Application.class, args);
   }
   
-  @Bean
-  public CorsFilter corsFilter() {
-    final CorsConfiguration config = new CorsConfiguration();
-    // config.setAllowCredentials(true);
-    config.addAllowedOrigin("*");
-    config.addAllowedHeader("*");
-    config.addAllowedMethod("*");
-
-    final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
-    source.registerCorsConfiguration("/v2/api-docs", config);
-
-    return new CorsFilter(source);
-  }
-
 }
