//package com.casic.missiles.config; //// //// Source code recreated from a .class file by IntelliJ IDEA //// (powered by Fernflower decompiler) //// // // //import com.casic.missiles.config.properties.CasicProperties; //import com.casic.missiles.core.filter.UserLoginFilter; //import com.casic.missiles.core.listener.ShiroSessionListener; //import com.casic.missiles.core.shiro.ShiroDbRealm; //import com.casic.missiles.core.shiro.ShiroSessionManager; //import com.casic.missiles.core.shiro.dao.RedisSessionDao; //import java.util.ArrayList; //import java.util.HashMap; //import java.util.Iterator; //import java.util.LinkedHashMap; //import java.util.List; //import java.util.Map; //import javax.servlet.Filter; //import org.apache.shiro.cache.CacheManager; //import org.apache.shiro.codec.Base64; //import org.apache.shiro.session.SessionListener; //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.SimpleCookie; //import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; //import org.slf4j.LoggerFactory; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Value; //import org.springframework.beans.factory.config.MethodInvokingFactoryBean; //import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.DependsOn; //import org.springframework.data.redis.core.RedisTemplate; // //@Configuration //@DependsOn({"springContextHolder"}) //public class ShiroConfigs { // public ShiroConfigs() { // } // // @Bean // public DefaultWebSecurityManager securityManager(CacheManager cacheShiroManager, SessionManager sessionManager) { // DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); // securityManager.setRealm(this.shiroDbRealm()); // securityManager.setCacheManager(cacheShiroManager); // securityManager.setSessionManager(sessionManager); // return securityManager; // } // // @Bean // @ConditionalOnProperty( // prefix = "casic", // name = {"spring-session-open"}, // havingValue = "true" // ) // public DefaultWebSessionManager servletContainerSessionManager(@Autowired(required = false) RedisTemplate redisTemplate, CasicProperties casicProperties, SessionListener sessionListener, @Value("${spring.redis.redisValueSerializer:org.springframework.data.redis.serializer.StringRedisSerializer}") String redisValueSerializer) { // DefaultWebSessionManager sessionManager = new ShiroSessionManager(); // sessionManager.setSessionDAO(new RedisSessionDao((long)(casicProperties.getSessionInvalidateTime() * 1000), redisTemplate, redisValueSerializer)); // sessionManager.setSessionValidationInterval((long)(casicProperties.getSessionValidationInterval() * 1000)); // sessionManager.setGlobalSessionTimeout((long)(casicProperties.getSessionInvalidateTime() * 1000)); // sessionManager.setDeleteInvalidSessions(true); // sessionManager.setSessionValidationSchedulerEnabled(true); // Cookie cookie = new SimpleCookie("JSESSIONID"); // cookie.setName("shiroCookie"); // cookie.setHttpOnly(true); // sessionManager.setSessionIdCookie(cookie); // List<SessionListener> listeners = new ArrayList(); // listeners.add(sessionListener); // sessionManager.setSessionListeners(listeners); // return sessionManager; // } // // @Bean // @ConditionalOnProperty( // prefix = "casic", // name = {"spring-session-open"}, // havingValue = "false" // ) // public DefaultWebSessionManager defaultWebSessionManager(CacheManager cacheShiroManager, CasicProperties CasicProperties, SessionListener sessionListener) { // DefaultWebSessionManager sessionManager = new ShiroSessionManager(); // sessionManager.setCacheManager(cacheShiroManager); // sessionManager.setSessionValidationInterval((long)(CasicProperties.getSessionValidationInterval() * 1000)); // sessionManager.setGlobalSessionTimeout((long)(CasicProperties.getSessionInvalidateTime() * 1000)); // sessionManager.setDeleteInvalidSessions(true); // sessionManager.setSessionValidationSchedulerEnabled(true); // Cookie cookie = new SimpleCookie("JSESSIONID"); // cookie.setName("shiroCookie"); // cookie.setHttpOnly(true); // sessionManager.setSessionIdCookie(cookie); // List<SessionListener> listeners = new ArrayList(); // listeners.add(sessionListener); // sessionManager.setSessionListeners(listeners); // return sessionManager; // } // // @Bean // public SessionListener defaultSessionListener() { // return new ShiroSessionListener(); // } // // @Bean // public ShiroDbRealm shiroDbRealm() { // return new ShiroDbRealm(); // } // // @Bean // public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) { // CookieRememberMeManager manager = new CookieRememberMeManager(); // manager.setCipherKey(Base64.decode("Z3VucwAAAAAAAAAAAAAAAA==")); // manager.setCookie(rememberMeCookie); // return manager; // } // // @Bean // public SimpleCookie rememberMeCookie() { // SimpleCookie simpleCookie = new SimpleCookie("rememberMe"); // simpleCookie.setHttpOnly(true); // simpleCookie.setMaxAge(604800); // return simpleCookie; // } // // @Bean // public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager, CasicProperties CasicProperties) { // LoggerFactory.getLogger(this.getClass()).info("bili bili!! Talk is cheap,Show me the code!"); // ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean(); // shiroFilter.setSecurityManager(securityManager); // shiroFilter.setLoginUrl("/sys/user/login"); // shiroFilter.setSuccessUrl(CasicProperties.getSuccessUrl()); // shiroFilter.setUnauthorizedUrl("/global/error"); // HashMap<String, Filter> myFilters = new HashMap(); // myFilters.put("user", new UserLoginFilter(CasicProperties)); // shiroFilter.setFilters(myFilters); // Map<String, String> hashMap = new LinkedHashMap(); // hashMap.put("/static/**", "anon"); // hashMap.put("/doc.html", "anon"); // hashMap.put("/swagger-resources/**", "anon"); // hashMap.put("/v2/api-docs", "anon"); // hashMap.put("/v2/api-docs-ext", "anon"); // hashMap.put("/webjars/**", "anon"); // Iterator var6 = CasicProperties.getNoLoginUrls().iterator(); // while(var6.hasNext()) { // String url = (String)var6.next(); // hashMap.put(url, "anon"); // } // hashMap.put("/**", "user"); // shiroFilter.setFilterChainDefinitionMap(hashMap); // return shiroFilter; // } // // @Bean // public MethodInvokingFactoryBean methodInvokingFactoryBean(DefaultWebSecurityManager securityManager) { // MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean(); // bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager"); // bean.setArguments(new Object[]{securityManager}); // return bean; // } // // @Bean // public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() { // return new LifecycleBeanPostProcessor(); // } // // @Bean // public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) { // AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor(); // authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); // return authorizationAttributeSourceAdvisor; // } //}