记住我情况下解决偶尔出现不显示登录页面的问题。

This commit is contained in:
thinkgem
2018-10-25 23:24:22 +08:00
parent f33a7db4ba
commit 3fbaa3e14f
5 changed files with 12 additions and 9 deletions

View File

@@ -19,8 +19,8 @@ import org.jasig.cas.client.validation.TicketValidationException;
import org.jasig.cas.client.validation.TicketValidator;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import com.beust.jcommander.internal.Maps;
import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.collect.MapUtils;
import com.jeesite.common.lang.ObjectUtils;
import com.jeesite.common.shiro.authc.FormToken;
import com.jeesite.common.shiro.cas.CasCreateUser;
@@ -94,7 +94,7 @@ public class CasAuthorizingRealm extends BaseAuthorizingRealm {
// 生成登录信息对象
FormToken token = new FormToken();
token.setUsername(casPrincipal.getName());
Map<String, Object> params = Maps.newHashMap();
Map<String, Object> params = MapUtils.newHashMap();
params.putAll(casPrincipal.getAttributes());
params.put("ticket", ticket);
token.setParams(params);

View File

@@ -15,6 +15,7 @@ import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.UnauthorizedException;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.util.WebUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@@ -192,7 +193,11 @@ public class LoginController extends BaseController{
}
// 验证下用户权限以便调用doGetAuthorizationInfo方法保存单点登录登出句柄
if (!SecurityUtils.getSubject().isPermitted("user")){
Subject subject = SecurityUtils.getSubject();
if (subject == null || !subject.isPermitted("user")){
if (subject != null){
subject.logout();
}
String queryString = request.getQueryString();
queryString = queryString == null ? "" : "?" + queryString;
ServletUtils.redirectUrl(request, response, adminPath + "/login" + queryString);

View File

@@ -23,9 +23,8 @@ import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.beust.jcommander.internal.Lists;
import com.beust.jcommander.internal.Maps;
import com.jeesite.common.cache.CacheUtils;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.collect.MapUtils;
import com.jeesite.common.config.Global;
import com.jeesite.common.lang.DateUtils;
@@ -85,7 +84,7 @@ public class OnlineController extends BaseController{
@ResponseBody
public List<Map<String, Object>> listData(String isAllOnline, String isVisitor, String sessionId,
String userCode, String userName, String userType, String orderBy) {
List<Map<String, Object>> list = Lists.newArrayList();
List<Map<String, Object>> list = ListUtils.newArrayList();
boolean excludeLeave = isAllOnline==null || !Global.YES.equals(isAllOnline);
boolean excludeVisitor = isVisitor==null || !Global.YES.equals(isVisitor);
Collection<Session> sessions = sessionDAO.getActiveSessions(excludeLeave,
@@ -98,7 +97,7 @@ public class OnlineController extends BaseController{
if (StringUtils.isNotBlank(userType) && ((String)session.getAttribute("userType")).equals(userType)){
continue;
}
Map<String, Object> map = Maps.newLinkedHashMap();
Map<String, Object> map = MapUtils.newLinkedHashMap();
// 为了安全性,需要有权限的人才能看
if (UserUtils.getSubject().isPermitted("sys:online:edit")){
map.put("id", session.getId().toString());

View File

@@ -67,7 +67,7 @@ spring:
# 清理全部缓存按钮所清理的缓存列表
clearNames: sysCache,corpCache,userCache,cmsCache
# 关闭 Spring Boot Banner 打印
# 打印横幅
main:
bannerMode: "off"