From f3bb96d7197daa20f4711912bdacbaae971cc781 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Sun, 20 Sep 2020 09:41:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=98=AF=E5=9C=A8=E4=B8=AA?= =?UTF-8?q?=E6=80=A7=E5=8C=96=E7=94=A8=E6=88=B7=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=95=8C=E9=9D=A2=EF=BC=8C=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E7=B3=BB=E7=BB=9F=EF=BC=8C=E5=88=99=E5=9C=A8=E9=80=80?= =?UTF-8?q?=E5=87=BA=E6=97=B6=E8=BF=94=E5=9B=9E=E5=AF=B9=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=B1=BB=E5=9E=8B=E7=9A=84=E7=99=BB=E5=BD=95=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/shiro/filter/LogoutFilter.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java index 4d7279cd..57206ed7 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/LogoutFilter.java @@ -38,16 +38,17 @@ public class LogoutFilter extends org.apache.shiro.web.filter.authc.LogoutFilter try { Object principal = subject.getPrincipal(); if (principal != null){ -// // 记录用户退出日志(@Deprecated v4.0.5支持setAuthorizingRealm,之后版本可删除此if子句) -// if (authorizingRealm == null){ -// LogUtils.saveLog(UserUtils.getUser(), ServletUtils.getRequest(), -// "系统退出", Log.TYPE_LOGIN_LOGOUT); -// } -// else{ - // 退出成功之前初始化授权信息并处理登录后的操作 - authorizingRealm.onLogoutSuccess((LoginInfo)subject.getPrincipal(), - (HttpServletRequest)request); -// } + LoginInfo loginInfo = (LoginInfo)principal; + + // 退出成功之前调用退出事件,方便记录日志等相关销毁工作 + authorizingRealm.onLogoutSuccess(loginInfo, (HttpServletRequest)request); + + // 设定了用户类型的登录页面,则退出到对应用户类型的登录页面 + String userType = loginInfo.getParam("userType"); + if(StringUtils.isNotBlank(userType)){ + redirectUrl += StringUtils.contains(redirectUrl, "?") ? "&" : "?"; + redirectUrl += "param_userType=" + userType; + } } // 退出登录 subject.logout();