Newer
Older
casic-smartcity / casic-web / src / main / java / com / casic / missiles / config / ShiroConfigs.java
chaizhuang on 2 Dec 2022 8 KB knife4暂不提交
//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;
//    }
//}