123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package io.renren.config;
- import io.renren.modules.sys.oauth2.OAuth2Filter;
- import io.renren.modules.sys.oauth2.OAuth2Realm;
- import org.apache.shiro.mgt.SecurityManager;
- 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.DefaultWebSecurityManager;
- import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
- import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
- 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 chenshun
- * @email sunlightcs@gmail.com
- * @date 2017-04-20 18:33
- */
- @Configuration
- public class ShiroConfig {
- @Bean("sessionManager")
- public SessionManager sessionManager(){
- DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
- sessionManager.setSessionValidationSchedulerEnabled(true);
- sessionManager.setSessionIdCookieEnabled(false);
- return sessionManager;
- }
- @Bean("securityManager")
- public SecurityManager securityManager(OAuth2Realm oAuth2Realm, SessionManager sessionManager) {
- DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
- securityManager.setRealm(oAuth2Realm);
- securityManager.setSessionManager(sessionManager);
- return securityManager;
- }
- @Bean("shiroFilter")
- public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
- ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
- shiroFilter.setSecurityManager(securityManager);
- //oauth过滤
- Map<String, Filter> filters = new HashMap<>();
- filters.put("oauth2", new OAuth2Filter());
- shiroFilter.setFilters(filters);
- Map<String, String> filterMap = new LinkedHashMap<>();
- filterMap.put("/webjars/**", "anon");
- filterMap.put("/druid/**", "anon");
- filterMap.put("/api/**", "anon");
- filterMap.put("/sys/login", "anon");
- filterMap.put("/**/*.css", "anon");
- filterMap.put("/**/*.js", "anon");
- filterMap.put("/**/*.html", "anon");
- filterMap.put("/fonts/**", "anon");
- filterMap.put("/plugins/**", "anon");
- filterMap.put("/swagger/**", "anon");
- filterMap.put("/favicon.ico", "anon");
- filterMap.put("/", "anon");
- filterMap.put("/**", "oauth2");
- shiroFilter.setFilterChainDefinitionMap(filterMap);
- return shiroFilter;
- }
- @Bean("lifecycleBeanPostProcessor")
- public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
- return new LifecycleBeanPostProcessor();
- }
- @Bean
- public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
- DefaultAdvisorAutoProxyCreator proxyCreator = new DefaultAdvisorAutoProxyCreator();
- proxyCreator.setProxyTargetClass(true);
- return proxyCreator;
- }
- @Bean
- public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
- AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
- advisor.setSecurityManager(securityManager);
- return advisor;
- }
- }
|