瀏覽代碼

fix:修复退出登录无效问题

wangzaijun 7 月之前
父節點
當前提交
5b9d1ff8f5

+ 0 - 4
service-base/src/main/java/com/simuwang/base/config/ShiroConfig.java

@@ -149,10 +149,6 @@ public class ShiroConfig {
         map.put("/v1/login", "anon");
         map.put("/v1/rsa-key", "anon");
         map.put("/test/**", "anon");
-        map.put("/v1/company/**", "anon");
-        map.put("/v1/parse/**", "anon");
-        map.put("/v1/fund/**", "anon");
-        map.put("/v1/email/**", "anon");
         map.put("/v1/**", "jwt");
         map.put("/**", "jwt");
         return map;

+ 1 - 1
service-base/src/main/java/com/simuwang/shiro/core/jwt/JwtContext.java

@@ -51,7 +51,7 @@ public class JwtContext {
     }
 
     public void cleanUserCache(String username) {
-        USER_TOKEN_CACHE.put(username, null);
+        USER_TOKEN_CACHE.invalidate(username);
     }
 
     /**

+ 1 - 1
service-base/src/main/java/com/simuwang/shiro/core/jwt/JwtFilter.java

@@ -97,6 +97,6 @@ public class JwtFilter extends AccessControlFilter {
         httpServletResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
         httpServletResponse.setCharacterEncoding("utf-8");
         httpServletResponse.setContentType(MediaType.APPLICATION_JSON_VALUE);
-        httpServletResponse.getWriter().print(JSONUtil.toJsonStr(ResultVo.fail(20001, msg)));
+        httpServletResponse.getWriter().print(JSONUtil.toJsonStr(ResultVo.fail(401, msg)));
     }
 }

+ 5 - 2
service-manage/src/main/java/com/simuwang/manage/api/LoginController.java

@@ -6,6 +6,7 @@ import com.simuwang.manage.dto.LoginUser;
 import com.simuwang.manage.dto.UserInfoVO;
 import com.simuwang.manage.service.SystemService;
 import com.simuwang.shiro.core.ShiroToken;
+import com.simuwang.shiro.core.ShiroUser;
 import com.simuwang.shiro.core.jwt.JwtContext;
 import com.smppw.common.pojo.ResultVo;
 import com.smppw.common.pojo.enums.status.ResultCode;
@@ -70,10 +71,12 @@ public class LoginController {
      */
     @RequiresAuthentication
     @PostMapping("/logout")
-    public void logout() {
+    public String logout() {
         Subject subject = SecurityUtils.getSubject();
-        this.jwtContext.cleanUserCache(subject.getPrincipal().toString());
+        ShiroUser shiroUser = (ShiroUser) SecurityUtils.getSubject().getPrincipal();
+        this.jwtContext.cleanUserCache(shiroUser.getUsername());
         subject.logout();
+        return "退出成功";
     }
 
     /**