Parcourir la source

token可以返回null

zhou-hao il y a 4 ans
Parent
commit
bd2923e060

+ 13 - 12
hsweb-authorization/hsweb-authorization-basic/src/main/java/org/hswebframework/web/authorization/basic/web/UserTokenWebFilter.java

@@ -13,6 +13,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.context.event.EventListener;
 import org.springframework.lang.NonNull;
 import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
 import org.springframework.web.server.ServerWebExchange;
 import org.springframework.web.server.WebFilter;
 import org.springframework.web.server.WebFilterChain;
@@ -55,19 +56,19 @@ public class UserTokenWebFilter implements WebFilter, BeanPostProcessor {
                 .orElseGet(() -> tokenGeneratorMap.get("default"));
         if (generator != null) {
             GeneratedToken token = generator.generate(event.getAuthentication());
-            event.getResult().put("token", token.getToken());
             event.getResult().putAll(token.getResponse());
-
-            long expires = event.getParameter("expires")
-                    .map(String::valueOf)
-                    .map(Long::parseLong)
-                    .orElse(token.getTimeout());
-            event.getResult().put("expires", expires);
-
-            event.async(userTokenManager
-                    .signIn(token.getToken(), token.getType(), event.getAuthentication().getUser().getId(), expires)
-                    .doOnNext(t -> log.debug("user [{}] sign in", t.getUserId()))
-                    .then());
+            if (StringUtils.hasText(token.getToken())) {
+                event.getResult().put("token", token.getToken());
+                long expires = event.getParameter("expires")
+                        .map(String::valueOf)
+                        .map(Long::parseLong)
+                        .orElse(token.getTimeout());
+                event.getResult().put("expires", expires);
+                event.async(userTokenManager
+                        .signIn(token.getToken(), token.getType(), event.getAuthentication().getUser().getId(), expires)
+                        .doOnNext(t -> log.debug("user [{}] sign in", t.getUserId()))
+                        .then());
+            }
         }
 
     }