Эх сурвалжийг харах

修改单点登录后需要重新登录的问题

wangjiang988 5 жил өмнө
parent
commit
dd1526d9b4

+ 18 - 0
src/main/java/platform/common/util/CookieUtil.java

@@ -32,6 +32,24 @@ public class CookieUtil {
         httpServletResponse.addCookie(cookie);
     }
 
+    /**
+     * 添加cookie
+     * @param httpServletResponse
+     * @param name cookie的key
+     * @param value cookie的value
+     * @param secure 表示这个cookie仅在https环境下才能使用
+     * @param maxAge 最长存活时间 单位为秒
+     * @param domain
+     */
+    public static void createWebCookie(HttpServletResponse httpServletResponse, String name, String value, Integer maxAge) {
+        Cookie cookie = new Cookie(name, value);
+        cookie.setHttpOnly(false);
+        cookie.setSecure(false);
+        cookie.setMaxAge(maxAge);
+        cookie.setPath("/");
+        httpServletResponse.addCookie(cookie);
+    }
+
     /**
      * 往根下面存一个cookie
      * * @param name cookie的key

+ 6 - 4
src/main/java/platform/modules/oauth/LoginCallback.java

@@ -42,8 +42,8 @@ public class LoginCallback extends BaseController {
     @Autowired
     private UserService userService;
 
-//    @Autowired
-//    private HttpServletResponse response;
+    @Autowired
+    private HttpServletResponse response;
 
     @PostMapping(value = "")
     public String validateLogin(String SAMLResponse) {
@@ -63,8 +63,10 @@ public class LoginCallback extends BaseController {
         SecurityUtils.getSubject().login(token);
         // 注入token到cookie
         String tokenString = userService.createToken();
-//        CookieUtil.create(response, "INDUSTRIAL_CARRIER", tokenString, false, 7200,"/");
-//        CookieUtil.create(response, "user_id", user.getId().toString(), false, 7200,"/");
+        tokenString = tokenString.replace("Bearer ", "");
+        log.info("tokenstring: {}", tokenString);
+        CookieUtil.createWebCookie(response, "token", tokenString, 7200);
+        CookieUtil.createWebCookie(response, "user_id", user.getId().toString(), 7200);
         return "redirect:/admin/home";
 
 }

+ 6 - 2
src/main/resources/templates/admin/index.html

@@ -78,11 +78,15 @@
             var user_type = [[${user_type}]];
             localStorage.setItem("user_name", user_name);
             localStorage.setItem("user_Type", user_type);
+            var token = getCookie("token")
+            if(token !=null && token != "") {
+                localStorage.setItem("INDUSTRIAL_CARRIER","Bearer " + token)
+            }
             if (localStorage.getItem("INDUSTRIAL_CARRIER") == null
                 || localStorage.getItem("INDUSTRIAL_CARRIER") == '') {
-                var token = getCookie("INDUSTRIAL_CARRIER")
+                var token = getCookie("token")
                 if(token !=null && token != "") {
-                    localStorage.setItem("INDUSTRIAL_CARRIER", token)
+                    localStorage.setItem("INDUSTRIAL_CARRIER","Bearer " + token)
                 }
                 var user_id = getCookie("user_id")
                 if(user_id !=null && user_id != "") {