//package com.bsd.cases.conf; // //import com.bsd.cases.shiro.CommonRealm; //import com.bsd.cases.shiro.JWTFilter; //import org.apache.shiro.mgt.DefaultSessionStorageEvaluator; //import org.apache.shiro.mgt.DefaultSubjectDAO; //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.DefaultWebSecurityManager; //import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.DependsOn; // //import javax.servlet.Filter; //import java.util.HashMap; //import java.util.Map; // //@Configuration //public class ShiroConfig { // // @Bean("securityManager") // public DefaultWebSecurityManager getManager() { // // DefaultWebSecurityManager manager = new DefaultWebSecurityManager(); // // 使用自己的realm // manager.setRealm(MyRealm()); // DefaultSubjectDAO subjectDAO = new DefaultSubjectDAO(); // DefaultSessionStorageEvaluator defaultSessionStorageEvaluator = new DefaultSessionStorageEvaluator(); // defaultSessionStorageEvaluator.setSessionStorageEnabled(false); // subjectDAO.setSessionStorageEvaluator(defaultSessionStorageEvaluator); // manager.setSubjectDAO(subjectDAO); // // return manager; // } // // @Bean("shiroFilter") // public ShiroFilterFactoryBean factory(DefaultWebSecurityManager securityManager) { // ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean(); // // // 添加自己的过滤器并且取名为jwt // Map filterMap = new HashMap<>(); // filterMap.put("jwt", new JWTFilter()); // factoryBean.setFilters(filterMap); // // factoryBean.setSecurityManager(securityManager); // factoryBean.setUnauthorizedUrl("/api/401"); // // Map filterRuleMap = new HashMap<>(); // // 所有请求通过我们自己的JWT Filter // filterRuleMap.put("/**", "jwt"); // // 访问401和404页面不通过我们的Filter // filterRuleMap.put("/api/adminlogin", "anon"); // filterRuleMap.put("/api/autologin", "anon"); // filterRuleMap.put("/api/401", "anon"); // factoryBean.setFilterChainDefinitionMap(filterRuleMap); // return factoryBean; // } // // // @Bean // @DependsOn("lifecycleBeanPostProcessor") // public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() { // // DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator(); // defaultAdvisorAutoProxyCreator.setProxyTargetClass(true); // return defaultAdvisorAutoProxyCreator; // } // // @Bean // public CommonRealm MyRealm() { // return new CommonRealm(); // } // // @Bean // public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() { // return new LifecycleBeanPostProcessor(); // } // // @Bean // public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) { // AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor(); // advisor.setSecurityManager(securityManager); // return advisor; // } // // //}