From e53335507b4292c21ccda7ef7a578df9b2c1cf2d Mon Sep 17 00:00:00 2001 From: thinkgem Date: Sun, 13 Oct 2019 15:09:02 +0800 Subject: [PATCH] =?UTF-8?q?sso=E6=8E=A5=E5=8F=A3=E6=94=AF=E6=8C=81ajax?= =?UTF-8?q?=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/ueditor/hunter/ImageHunter.java | 6 ++++++ .../jeesite/modules/sys/web/SsoController.java | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/jeesite/common/ueditor/hunter/ImageHunter.java b/common/src/main/java/com/jeesite/common/ueditor/hunter/ImageHunter.java index 82c20e72..b375e0c5 100644 --- a/common/src/main/java/com/jeesite/common/ueditor/hunter/ImageHunter.java +++ b/common/src/main/java/com/jeesite/common/ueditor/hunter/ImageHunter.java @@ -10,6 +10,8 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; +import org.apache.commons.io.IOUtils; + import com.jeesite.common.ueditor.PathFormat; import com.jeesite.common.ueditor.define.AppInfo; import com.jeesite.common.ueditor.define.BaseState; @@ -103,6 +105,10 @@ public class ImageHunter { } catch ( Exception e ) { return new BaseState( false, AppInfo.REMOTE_FAIL ); + } finally { + if (connection != null){ + IOUtils.close(connection); + } } } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/SsoController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/SsoController.java index 65a8f7fe..ac3ace2f 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/SsoController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/SsoController.java @@ -4,6 +4,7 @@ package com.jeesite.modules.sys.web; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.AuthenticationException; @@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.jeesite.common.codec.EncodeUtils; +import com.jeesite.common.config.Global; import com.jeesite.common.lang.ObjectUtils; import com.jeesite.common.shiro.authc.FormToken; import com.jeesite.common.web.BaseController; @@ -46,13 +48,17 @@ public class SsoController extends BaseController{ @RequestMapping(value = "sso/{username}/{token}") public String sso(@PathVariable String username, @PathVariable String token, @RequestParam(defaultValue="${adminPath}") String url, String relogin, - HttpServletRequest request, Model model){ - User user = UserUtils.getUser(); + HttpServletRequest request, HttpServletResponse response, Model model){ // 如果已经登录,并且是同一个人,并且不强制重新登录,则直接跳转到目标页 + User user = UserUtils.getUser(); if(StringUtils.isNotBlank(user.getUserCode()) && StringUtils.equals(user.getLoginCode(), username) && !ObjectUtils.toBoolean(relogin)){ - return REDIRECT + EncodeUtils.decodeUrl2(url); + if (ServletUtils.isAjaxRequest(request)){ + return ServletUtils.renderResult(response, Global.TRUE, text("账号已登录")); + }else{ + return REDIRECT + EncodeUtils.decodeUrl2(url); + } } // 通过令牌登录系统 if (token != null){ @@ -62,7 +68,11 @@ public class SsoController extends BaseController{ upToken.setSsoToken(token); // 单点登录令牌 upToken.setParams(ServletUtils.getExtParams(request)); // 登录附加参数 UserUtils.getSubject().login(upToken); - return REDIRECT + EncodeUtils.decodeUrl2(url); + if (ServletUtils.isAjaxRequest(request)){ + return ServletUtils.renderResult(response, Global.TRUE, text("账号登录成功")); + }else{ + return REDIRECT + EncodeUtils.decodeUrl2(url); + } } catch (AuthenticationException e) { if (!e.getMessage().startsWith("msg:")){ throw new AuthenticationException("msg:登录失败,请联系管理员。", e);