浏览代码

修复在修改菜单信息后登录过期跳转登录页无样式问题

zhouchenglin 5 年之前
父节点
当前提交
05dd2626af

+ 6 - 2
pom.xml

@@ -76,14 +76,18 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
-            <!-- 生成war时放开注释
             <exclusions>
+                <exclusion>
+                    <groupId>org.hibernate.validator</groupId>
+                    <artifactId>hibernate-validator</artifactId>
+                </exclusion>
+                <!-- 生成war时放开注释
                 <exclusion>
                     <groupId>org.springframework.boot</groupId>
                     <artifactId>spring-boot-starter-tomcat</artifactId>
                 </exclusion>
+                -->
             </exclusions>
-            -->
         </dependency>
         <dependency>
             <groupId>com.ibeetl</groupId>

+ 16 - 7
src/main/java/net/chenlin/dp/common/support/config/ShiroConfig.java

@@ -55,6 +55,7 @@ public class ShiroConfig {
         sessionManager.setSessionValidationSchedulerEnabled(true);
         sessionManager.setSessionIdUrlRewritingEnabled(false);
         sessionManager.setDeleteInvalidSessions(true);
+        sessionManager.setGlobalSessionTimeout(60000L);
         if (globalProperties.isRedisSessionDao()) {
             // 开启redis会话管理器
             sessionManager.setSessionFactory(new UserSessionFactory());
@@ -98,13 +99,7 @@ public class ShiroConfig {
         filters.put("perms", new UserPermFilter());
         shiroFilter.setFilters(filters);
 
-        Map<String, String> filterMap = new LinkedHashMap<>(5);
-        filterMap.put("/static/**", "anon");
-        filterMap.put("/error/**", "anon");
-        filterMap.put("/login", "anon");
-        filterMap.put("/captcha.jpg", "anon");
-        filterMap.put("/rest/**", "anon");
-        shiroFilter.setFilterChainDefinitionMap(filterMap);
+        shiroFilter.setFilterChainDefinitionMap(this.setInitChainMap());
 
         return shiroFilter;
     }
@@ -141,4 +136,18 @@ public class ShiroConfig {
         return advisor;
     }
 
+    /**
+     * 设置
+     * @return
+     */
+    public Map<String, String> setInitChainMap() {
+        Map<String, String> filterMap = new LinkedHashMap<>(5);
+        filterMap.put("/static/**", "anon");
+        filterMap.put("/error/**", "anon");
+        filterMap.put("/login", "anon");
+        filterMap.put("/captcha.jpg", "anon");
+        filterMap.put("/rest/**", "anon");
+        return filterMap;
+    }
+
 }

+ 5 - 1
src/main/java/net/chenlin/dp/modules/sys/service/impl/SysMenuServiceImpl.java

@@ -4,6 +4,7 @@ import net.chenlin.dp.common.constant.MsgConstant;
 import net.chenlin.dp.common.constant.SystemConstant;
 import net.chenlin.dp.common.entity.Query;
 import net.chenlin.dp.common.entity.R;
+import net.chenlin.dp.common.support.config.ShiroConfig;
 import net.chenlin.dp.common.utils.CommonUtils;
 import net.chenlin.dp.modules.sys.dao.SysMenuMapper;
 import net.chenlin.dp.modules.sys.dao.SysRoleMenuMapper;
@@ -40,6 +41,9 @@ public class SysMenuServiceImpl implements SysMenuService {
 	@Autowired
 	private ShiroPermsFilterFactoryBean shiroFilterFactory;
 
+	@Autowired
+	private ShiroConfig shiroConfig;
+
 	/**
 	 * 查询用户权限菜单
 	 * @param userId
@@ -226,7 +230,7 @@ public class SysMenuServiceImpl implements SysMenuService {
 				manager.getFilterChains().clear();
 				shiroFilterFactory.getFilterChainDefinitionMap().clear();
 				// 重新设置权限,传入配置中的默认的filterChains
-				shiroFilterFactory.setFilterChainDefinitionMap(ShiroPermsFilterFactoryBean.DEFAULT_CHAIN_MAP);
+				shiroFilterFactory.setFilterChainDefinitionMap(shiroConfig.setInitChainMap());
 
 				Map<String, String> chains = shiroFilterFactory.getFilterChainDefinitionMap();
 				//重新生成过滤链

+ 0 - 9
src/main/java/net/chenlin/dp/modules/sys/shiro/ShiroPermsFilterFactoryBean.java

@@ -9,7 +9,6 @@ import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -23,20 +22,12 @@ public class ShiroPermsFilterFactoryBean extends ShiroFilterFactoryBean {
 	
 	private SysMenuMapper sysMenuMapper = SpringContextUtils.getBean("sysMenuMapper", SysMenuMapper.class);
 
-	/**
-	 * 默认配置权限链
-	 */
-	public static final Map<String, String> DEFAULT_CHAIN_MAP = new HashMap<>(16);
-
 	/**
 	 * 增加数据库权限
 	 * @param filterChainDefinitionMap
 	 */
 	@Override
 	public void setFilterChainDefinitionMap(Map<String, String> filterChainDefinitionMap) {
-		// 清空默认配置之后保存配置
-		DEFAULT_CHAIN_MAP.clear();
-		DEFAULT_CHAIN_MAP.putAll(filterChainDefinitionMap);
 		// 从菜单表中查询菜单配置
 		List<SysMenuEntity> lists = sysMenuMapper.list(new Query());
 		for(SysMenuEntity menu : lists) {