diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java
index dac40b2..f837894 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/Application.java
@@ -30,8 +30,8 @@
 //@EnableInfrasCasSecurity
 
 //@EnableInfrasBasicApi
-@EnableInfrasJWTWebFluxApi
 
+@EnableInfrasJWTWebFluxApi
 @EnableInfrasBasicWebFluxApi
 public class Application {
 
diff --git a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java
index 4cd8faf..9b64970 100644
--- a/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java
+++ b/gateway/src/main/java/com/supwisdom/institute/backend/gateway/filter/SimpleUserTransmitGlobalFilter.java
@@ -14,7 +14,7 @@
 import org.springframework.web.server.ServerWebExchange;
 
 import com.alibaba.fastjson.JSONObject;
-import com.supwisdom.institute.backend.gateway.security.core.userdetails.MyUser;
+import com.supwisdom.infras.security.core.userdetails.InfrasUser;
 import com.supwisdom.institute.backend.common.core.transmit.user.User;
 import com.supwisdom.institute.backend.common.core.transmit.user.UserContext;
 
@@ -32,10 +32,12 @@
   public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
     
     return ReactiveSecurityContextHolder.getContext()
-      .filter(c -> c.getAuthentication() != null && c.getAuthentication().isAuthenticated() && c.getAuthentication().getPrincipal() instanceof MyUser)
+      .filter(c -> {
+        return c.getAuthentication() != null && c.getAuthentication().isAuthenticated() && c.getAuthentication().getPrincipal() instanceof InfrasUser;
+      })
       .map(SecurityContext::getAuthentication)
       .map(Authentication::getPrincipal)
-      .cast(MyUser.class)
+      .cast(InfrasUser.class)
       .map(myUser -> {
         try {
           User user = new User(myUser.getUsername(), myUser.getRoles(), myUser.getAttributes());
