新增参数:是否在登录后生成新的Session(默认false)详见 jeesite.yml

This commit is contained in:
thinkgem
2018-08-08 21:40:24 +08:00
parent fc88e47a4b
commit 45a09933b0
3 changed files with 24 additions and 2 deletions

View File

@@ -31,6 +31,7 @@ import com.jeesite.common.shiro.authc.FormToken;
import com.jeesite.common.shiro.realm.BaseAuthorizingRealm;
import com.jeesite.common.shiro.realm.LoginInfo;
import com.jeesite.common.web.http.ServletUtils;
import com.jeesite.modules.sys.utils.UserUtils;
/**
* 表单验证(包含验证码)过滤类
@@ -157,6 +158,9 @@ public class FormAuthenticationFilter extends org.apache.shiro.web.filter.authc.
return captcha;
}
/**
* 跳转登录页时,跳转到默认首页
*/
@Override
protected void redirectToLogin(ServletRequest request, ServletResponse response) throws IOException {
PermissionsAuthorizationFilter.redirectToDefaultPath(request, response);
@@ -208,6 +212,18 @@ public class FormAuthenticationFilter extends org.apache.shiro.web.filter.authc.
boolean isLogin = WebUtils.isTrue(request, "__login");
return super.isLoginSubmission(request, response) || isLogin;
}
/**
* 执行登录方法
*/
@Override
protected boolean executeLogin(ServletRequest request, ServletResponse response) throws Exception {
// 是否在登录后生成新的Session默认false
if (Global.getPropertyToBoolean("shiro.isGenerateNewSessionAfterLogin", "false")){
UserUtils.getSubject().logout();
}
return super.executeLogin(request, response);
}
/**
* 登录成功调用事件

View File

@@ -237,7 +237,7 @@ shiro:
# 是否加密单点登录安全Key
encryptKey: true
# 登录提交信息加密
# 登录提交信息加密(如果不需要加密,设置为空即可)
loginSubmit:
# 登录提交信息安全Key加密用户名、密码、验证码后再提交key设置为3个用逗号分隔
@@ -259,6 +259,9 @@ shiro:
# accessControlAllowOrigin: http://demo.jeesite.net
# accessControlAllowOrigin: '*'
# 是否在登录后生成新的Session默认false
isGenerateNewSessionAfterLogin: false
# URI 权限过滤器定义
filterChainDefinitions: |
/ReportServer/** = user