From 25cf266e99714ac5d428e66b40ce272325c91dd8 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期六, 14 六月 2025 15:01:11 +0800
Subject: [PATCH] 修改管理后台账号和共享session等 屏蔽除出租车外的其他模块

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java |  413 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 206 insertions(+), 207 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java
index 2ca8fd2..28c24e8 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java
@@ -1,207 +1,206 @@
-package com.stylefeng.guns.config.web;
-
-import com.stylefeng.guns.config.properties.GunsProperties;
-import com.stylefeng.guns.core.intercept.GunsUserFilter;
-import com.stylefeng.guns.core.shiro.ShiroDbRealm;
-import org.apache.shiro.cache.CacheManager;
-import org.apache.shiro.cache.ehcache.EhCacheManager;
-import org.apache.shiro.codec.Base64;
-import org.apache.shiro.session.mgt.SessionManager;
-import org.apache.shiro.spring.LifecycleBeanPostProcessor;
-import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
-import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
-import org.apache.shiro.web.mgt.CookieRememberMeManager;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
-import org.apache.shiro.web.servlet.Cookie;
-import org.apache.shiro.web.servlet.ShiroHttpSession;
-import org.apache.shiro.web.servlet.SimpleCookie;
-import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
-import org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
-import org.springframework.beans.factory.config.MethodInvokingFactoryBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import javax.servlet.Filter;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * shiro权限管理的配置
- *
- * @author fengshuonan
- * @date 2016年11月14日 下午3:03:44
- */
-@Configuration
-public class ShiroConfig {
-
-    /**
-     * 安全管理器
-     */
-    @Bean
-    public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager, CacheManager cacheShiroManager, SessionManager sessionManager) {
-        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
-        securityManager.setRealm(this.shiroDbRealm());
-        securityManager.setCacheManager(cacheShiroManager);
-        securityManager.setRememberMeManager(rememberMeManager);
-        securityManager.setSessionManager(sessionManager);
-        return securityManager;
-    }
-
-    /**
-     * spring session管理器(多机环境)
-     */
-    @Bean
-    @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "true")
-    public ServletContainerSessionManager servletContainerSessionManager() {
-        return new ServletContainerSessionManager();
-    }
-
-    /**
-     * session管理器(单机环境)
-     */
-    @Bean
-    @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "false")
-    public DefaultWebSessionManager defaultWebSessionManager(CacheManager cacheShiroManager, GunsProperties gunsProperties) {
-        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
-        sessionManager.setCacheManager(cacheShiroManager);
-        sessionManager.setSessionValidationInterval(gunsProperties.getSessionValidationInterval() * 1000);
-        sessionManager.setGlobalSessionTimeout(gunsProperties.getSessionInvalidateTime() * 1000);
-        sessionManager.setDeleteInvalidSessions(true);
-        sessionManager.setSessionValidationSchedulerEnabled(true);
-        Cookie cookie = new SimpleCookie(ShiroHttpSession.DEFAULT_SESSION_ID_NAME);
-        cookie.setName("shiroCookie");
-        cookie.setHttpOnly(true);
-        sessionManager.setSessionIdCookie(cookie);
-        return sessionManager;
-    }
-
-    /**
-     * 缓存管理器 使用Ehcache实现
-     */
-    @Bean
-    public CacheManager getCacheShiroManager(EhCacheManagerFactoryBean ehcache) {
-        EhCacheManager ehCacheManager = new EhCacheManager();
-        ehCacheManager.setCacheManager(ehcache.getObject());
-        return ehCacheManager;
-    }
-
-    /**
-     * 项目自定义的Realm
-     */
-    @Bean
-    public ShiroDbRealm shiroDbRealm() {
-        return new ShiroDbRealm();
-    }
-
-    /**
-     * rememberMe管理器, cipherKey生成见{@code Base64Test.java}
-     */
-    @Bean
-    public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) {
-        CookieRememberMeManager manager = new CookieRememberMeManager();
-//        manager.setCipherKey(Base64.decode("Z3VucwAAAAAAAAAAAAAAAA=="));
-        manager.setCookie(rememberMeCookie);
-        return manager;
-    }
-
-    /**
-     * 记住密码Cookie
-     */
-    @Bean
-    public SimpleCookie rememberMeCookie() {
-//        SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
-        SimpleCookie simpleCookie = new SimpleCookie("");
-        simpleCookie.setHttpOnly(true);
-        simpleCookie.setMaxAge(7 * 24 * 60 * 60);//7天
-        return simpleCookie;
-    }
-
-    /**
-     * Shiro的过滤器链
-     */
-    @Bean
-    public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) {
-        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
-        shiroFilter.setSecurityManager(securityManager);
-        /**
-         * 默认的登陆访问url
-         */
-        shiroFilter.setLoginUrl("/login");
-        /**
-         * 登陆成功后跳转的url
-         */
-        shiroFilter.setSuccessUrl("/");
-        /**
-         * 没有权限跳转的url
-         */
-        shiroFilter.setUnauthorizedUrl("/global/error");
-
-        /**
-         * 覆盖默认的user拦截器(默认拦截器解决不了ajax请求 session超时的问题,若有更好的办法请及时反馈作者)
-         */
-        HashMap<String, Filter> myFilters = new HashMap<>();
-        myFilters.put("user", new GunsUserFilter());
-        shiroFilter.setFilters(myFilters);
-
-        /**
-         * 配置shiro拦截器链
-         *
-         * anon  不需要认证
-         * authc 需要认证
-         * user  验证通过或RememberMe登录的都可以
-         *
-         * 当应用开启了rememberMe时,用户下次访问时可以是一个user,但不会是authc,因为authc是需要重新认证的
-         *
-         * 顺序从上到下,优先级依次降低
-         *
-         * api开头的接口,走rest api鉴权,不走shiro鉴权
-         *
-         */
-        Map<String, String> hashMap = new LinkedHashMap<>();
-        hashMap.put("/base/**", "anon");
-        hashMap.put("/static/**", "anon");
-        hashMap.put("/gunsApi/**", "anon");
-        hashMap.put("/login", "anon");
-        hashMap.put("/global/sessionError", "anon");
-        hashMap.put("/kaptcha", "anon");
-        hashMap.put("/**", "user");
-        shiroFilter.setFilterChainDefinitionMap(hashMap);
-        return shiroFilter;
-    }
-
-    /**
-     * 在方法中 注入 securityManager,进行代理控制
-     */
-    @Bean
-    public MethodInvokingFactoryBean methodInvokingFactoryBean(DefaultWebSecurityManager securityManager) {
-        MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
-        bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
-        bean.setArguments(new Object[]{securityManager});
-        return bean;
-    }
-
-    /**
-     * Shiro生命周期处理器:
-     * 用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调(例如:UserRealm)
-     * 在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调(例如:DefaultSecurityManager)
-     */
-    @Bean
-    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
-        return new LifecycleBeanPostProcessor();
-    }
-
-    /**
-     * 启用shrio授权注解拦截方式,AOP式方法级权限检查
-     */
-    @Bean
-    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
-        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor =
-                new AuthorizationAttributeSourceAdvisor();
-        authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
-        return authorizationAttributeSourceAdvisor;
-    }
-
-}
+//package com.stylefeng.guns.config.web;
+//
+//import com.stylefeng.guns.config.properties.GunsProperties;
+//import com.stylefeng.guns.core.intercept.GunsUserFilter;
+//import com.stylefeng.guns.core.shiro.ShiroDbRealm;
+//import org.apache.shiro.cache.CacheManager;
+//import org.apache.shiro.cache.ehcache.EhCacheManager;
+//import org.apache.shiro.session.mgt.SessionManager;
+//import org.apache.shiro.spring.LifecycleBeanPostProcessor;
+//import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
+//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+//import org.apache.shiro.web.mgt.CookieRememberMeManager;
+//import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+//import org.apache.shiro.web.servlet.Cookie;
+//import org.apache.shiro.web.servlet.ShiroHttpSession;
+//import org.apache.shiro.web.servlet.SimpleCookie;
+//import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
+//import org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
+//import org.springframework.beans.factory.config.MethodInvokingFactoryBean;
+//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+//import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//
+//import javax.servlet.Filter;
+//import java.util.HashMap;
+//import java.util.LinkedHashMap;
+//import java.util.Map;
+//
+///**
+// * shiro权限管理的配置
+// *
+// * @author fengshuonan
+// * @date 2016年11月14日 下午3:03:44
+// */
+//@Configuration
+//public class ShiroConfig {
+//
+//    /**
+//     * 安全管理器
+//     */
+//    @Bean
+//    public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager, CacheManager cacheShiroManager, SessionManager sessionManager) {
+//        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
+//        securityManager.setRealm(this.shiroDbRealm());
+//        securityManager.setCacheManager(cacheShiroManager);
+//        securityManager.setRememberMeManager(rememberMeManager);
+//        securityManager.setSessionManager(sessionManager);
+//        return securityManager;
+//    }
+//
+//    /**
+//     * spring session管理器(多机环境)
+//     */
+//    @Bean
+//    @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "true")
+//    public ServletContainerSessionManager servletContainerSessionManager() {
+//        return new ServletContainerSessionManager();
+//    }
+//
+//    /**
+//     * session管理器(单机环境)
+//     */
+//    @Bean
+//    @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "false")
+//    public DefaultWebSessionManager defaultWebSessionManager(CacheManager cacheShiroManager, GunsProperties gunsProperties) {
+//        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
+//        sessionManager.setCacheManager(cacheShiroManager);
+//        sessionManager.setSessionValidationInterval(gunsProperties.getSessionValidationInterval() * 1000);
+//        sessionManager.setGlobalSessionTimeout(gunsProperties.getSessionInvalidateTime() * 1000);
+//	    sessionManager.setDeleteInvalidSessions(false);
+//	    sessionManager.setSessionValidationSchedulerEnabled(true);
+//        Cookie cookie = new SimpleCookie(ShiroHttpSession.DEFAULT_SESSION_ID_NAME);
+//        cookie.setName("shiroCookie");
+//        cookie.setHttpOnly(true);
+//        sessionManager.setSessionIdCookie(cookie);
+//        return sessionManager;
+//    }
+//
+//    /**
+//     * 缓存管理器 使用Ehcache实现
+//     */
+//    @Bean
+//    public CacheManager getCacheShiroManager(EhCacheManagerFactoryBean ehcache) {
+//        EhCacheManager ehCacheManager = new EhCacheManager();
+//        ehCacheManager.setCacheManager(ehcache.getObject());
+//        return ehCacheManager;
+//    }
+//
+//    /**
+//     * 项目自定义的Realm
+//     */
+//    @Bean
+//    public ShiroDbRealm shiroDbRealm() {
+//        return new ShiroDbRealm();
+//    }
+//
+//    /**
+//     * rememberMe管理器, cipherKey生成见{@code Base64Test.java}
+//     */
+//    @Bean
+//    public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) {
+//        CookieRememberMeManager manager = new CookieRememberMeManager();
+////        manager.setCipherKey(Base64.decode("Z3VucwAAAAAAAAAAAAAAAA=="));
+//        manager.setCookie(rememberMeCookie);
+//        return manager;
+//    }
+//
+//    /**
+//     * 记住密码Cookie
+//     */
+//    @Bean
+//    public SimpleCookie rememberMeCookie() {
+////        SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
+//        SimpleCookie simpleCookie = new SimpleCookie("");
+//        simpleCookie.setHttpOnly(true);
+//        simpleCookie.setMaxAge(7 * 24 * 60 * 60);//7天
+//        return simpleCookie;
+//    }
+//
+//    /**
+//     * Shiro的过滤器链
+//     */
+//    @Bean
+//    public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) {
+//        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
+//        shiroFilter.setSecurityManager(securityManager);
+//        /**
+//         * 默认的登陆访问url
+//         */
+//	    shiroFilter.setLoginUrl("/");
+//        /**
+//         * 登陆成功后跳转的url
+//         */
+//        shiroFilter.setSuccessUrl("/");
+//        /**
+//         * 没有权限跳转的url
+//         */
+//        shiroFilter.setUnauthorizedUrl("/global/error");
+//
+//        /**
+//         * 覆盖默认的user拦截器(默认拦截器解决不了ajax请求 session超时的问题,若有更好的办法请及时反馈作者)
+//         */
+//        HashMap<String, Filter> myFilters = new HashMap<>();
+//        myFilters.put("user", new GunsUserFilter());
+//        shiroFilter.setFilters(myFilters);
+//
+//        /**
+//         * 配置shiro拦截器链
+//         *
+//         * anon  不需要认证
+//         * authc 需要认证
+//         * user  验证通过或RememberMe登录的都可以
+//         *
+//         * 当应用开启了rememberMe时,用户下次访问时可以是一个user,但不会是authc,因为authc是需要重新认证的
+//         *
+//         * 顺序从上到下,优先级依次降低
+//         *
+//         * api开头的接口,走rest api鉴权,不走shiro鉴权
+//         *
+//         */
+//        Map<String, String> hashMap = new LinkedHashMap<>();
+//        hashMap.put("/base/**", "anon");
+//        hashMap.put("/static/**", "anon");
+//        hashMap.put("/gunsApi/**", "anon");
+//        hashMap.put("/login", "anon");
+//        hashMap.put("/global/sessionError", "anon");
+//        hashMap.put("/kaptcha", "anon");
+//        hashMap.put("/**", "user");
+//        shiroFilter.setFilterChainDefinitionMap(hashMap);
+//        return shiroFilter;
+//    }
+//
+//    /**
+//     * 在方法中 注入 securityManager,进行代理控制
+//     */
+//    @Bean
+//    public MethodInvokingFactoryBean methodInvokingFactoryBean(DefaultWebSecurityManager securityManager) {
+//        MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
+//        bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
+//        bean.setArguments(new Object[]{securityManager});
+//        return bean;
+//    }
+//
+//    /**
+//     * Shiro生命周期处理器:
+//     * 用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调(例如:UserRealm)
+//     * 在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调(例如:DefaultSecurityManager)
+//     */
+//    @Bean
+//    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
+//        return new LifecycleBeanPostProcessor();
+//    }
+//
+//    /**
+//     * 启用shrio授权注解拦截方式,AOP式方法级权限检查
+//     */
+//    @Bean
+//    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
+//        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor =
+//                new AuthorizationAttributeSourceAdvisor();
+//        authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
+//        return authorizationAttributeSourceAdvisor;
+//    }
+//
+//}

--
Gitblit v1.7.1