1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package com.imed.costaccount.common.shiro;
- import org.apache.shiro.mgt.SecurityManager;
- 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.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;
- @Configuration
- public class ShiroConfig {
- @Bean("securityManager")
- public SecurityManager securityManager(OAuth2Realm realm) {
- DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
- defaultWebSecurityManager.setRealm(realm);
- defaultWebSecurityManager.setRememberMeManager(null);
- return defaultWebSecurityManager;
- }
- @Bean("shiroFilter")
- public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager, OAuth2Filter filter) {
- ShiroFilterFactoryBean filterFactoryBean = new ShiroFilterFactoryBean();
- filterFactoryBean.setSecurityManager(securityManager);
- // OAuth2过滤
- Map<String, Filter> filters = new HashMap<>();
- filters.put("oauth2", filter);
- filterFactoryBean.setFilters(filters);
- // HTTP请求过滤
- Map<String, String> filterMap = new LinkedHashMap<>();
- filterMap.put("/webjars/**", "anon");
- filterMap.put("/druid/**", "anon");
- filterMap.put("/app/**", "anon");
- filterMap.put("/swagger/**", "anon");
- filterMap.put("/v2/api-docs", "anon");
- filterMap.put("/swagger-ui.html", "anon");
- filterMap.put("/static/js/**", "anon");
- filterMap.put("/demo/**", "anon");
- filterMap.put("/doc.html", "anon");
- filterMap.put("/**/*.xlsx", "anon");
- filterMap.put("/**/*.xls", "anon");
- filterMap.put("/swagger-resources/**", "anon");
- filterMap.put("/captcha.jpg", "anon");
- filterMap.put("/costAccount/getHospArea/**", "anon");
- filterMap.put("/costAccount/excel/getImportUserTemplate", "anon");
- filterMap.put("/costAccount/excel/getcurrentTemplate","anon");
- filterMap.put("/costAccount/excel/getDepartmentTemplate", "anon");
- filterMap.put("/costAccount/excel/getImportProductTemplate", "anon");
- filterMap.put("/costAccount/login", "anon");
- filterMap.put("/swagger.json","anon");
- filterMap.put("/swagger-ui.html","anon");
- filterMap.put("/v2/api-docs/*","anon");
- filterMap.put("/**/*.jpg", "anon");
- filterMap.put("/**/*.png", "anon");
- // 除了以上的,其他的都使用oauth2过滤器
- filterMap.put("/**", "oauth2");
- filterFactoryBean.setFilterChainDefinitionMap(filterMap);
- return filterFactoryBean;
- }
- @Bean("lifecycleBeanPostProcessor")
- public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
- return new LifecycleBeanPostProcessor();
- }
- /**
- * AOP 使用 的通知点增强点
- *
- * @param securityManager
- * @return
- */
- @Bean
- public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
- AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();
- advisor.setSecurityManager(securityManager);
- return advisor;
- }
- }
|