¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.fzzy.igds.dzhwk.config; |
| | | |
| | | import com.ruoyi.framework.config.ShiroConfig; |
| | | import com.ruoyi.framework.shiro.web.CustomShiroFilterFactoryBean; |
| | | import org.apache.shiro.mgt.SecurityManager; |
| | | import org.apache.shiro.spring.web.ShiroFilterFactoryBean; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import javax.servlet.Filter; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * æéé
ç½®å è½½ |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Configuration |
| | | public class ShiroConfig1 extends ShiroConfig { |
| | | |
| | | /** |
| | | * ç»å½å°å |
| | | */ |
| | | @Value("${shiro.user.loginUrl}") |
| | | private String loginUrl; |
| | | |
| | | /** |
| | | * æé认è¯å¤±è´¥å°å |
| | | */ |
| | | @Value("${shiro.user.unauthorizedUrl}") |
| | | private String unauthorizedUrl; |
| | | |
| | | /** |
| | | * Shiroè¿æ»¤å¨é
ç½® |
| | | */ |
| | | @Bean |
| | | public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) { |
| | | CustomShiroFilterFactoryBean shiroFilterFactoryBean = new CustomShiroFilterFactoryBean(); |
| | | // Shiroçæ ¸å¿å®å
¨æ¥å£,è¿ä¸ªå±æ§æ¯å¿
é¡»ç |
| | | shiroFilterFactoryBean.setSecurityManager(securityManager); |
| | | // 身份认è¯å¤±è´¥ï¼å跳转å°ç»å½é¡µé¢çé
ç½® |
| | | shiroFilterFactoryBean.setLoginUrl(loginUrl); |
| | | // æé认è¯å¤±è´¥ï¼åè·³è½¬å°æå®é¡µé¢ |
| | | shiroFilterFactoryBean.setUnauthorizedUrl(unauthorizedUrl); |
| | | // Shiroè¿æ¥çº¦æé
ç½®ï¼å³è¿æ»¤é¾çå®ä¹ |
| | | LinkedHashMap<String, String> filterChainDefinitionMap = new LinkedHashMap<>(); |
| | | // 对éæèµæºè®¾ç½®å¿åè®¿é® |
| | | filterChainDefinitionMap.put("/favicon.ico**", "anon"); |
| | | filterChainDefinitionMap.put("/ruoyi.png**", "anon"); |
| | | filterChainDefinitionMap.put("/html/**", "anon"); |
| | | filterChainDefinitionMap.put("/css/**", "anon"); |
| | | filterChainDefinitionMap.put("/docs/**", "anon"); |
| | | filterChainDefinitionMap.put("/fonts/**", "anon"); |
| | | filterChainDefinitionMap.put("/img/**", "anon"); |
| | | filterChainDefinitionMap.put("/ajax/**", "anon"); |
| | | filterChainDefinitionMap.put("/js/**", "anon"); |
| | | filterChainDefinitionMap.put("/axui/**", "anon"); |
| | | filterChainDefinitionMap.put("/ruoyi/**", "anon"); |
| | | filterChainDefinitionMap.put("/captcha/captchaImage**", "anon"); |
| | | // éåº logoutå°åï¼shiro廿¸
é¤session |
| | | filterChainDefinitionMap.put("/logout", "logout"); |
| | | // ä¸éè¦æ¦æªçè®¿é® |
| | | filterChainDefinitionMap.put("/login/**", "anon,captchaValidate"); |
| | | filterChainDefinitionMap.put("/messageLogin", "anon"); |
| | | // 注åç¸å
³ |
| | | filterChainDefinitionMap.put("/register", "anon,captchaValidate"); |
| | | |
| | | //æ¥å£è·¯å¾ |
| | | filterChainDefinitionMap.put("/api/**", "anon"); |
| | | //çµåè´§ä½å¡ææ¶æ¾å¼ |
| | | filterChainDefinitionMap.put("/dzhwk/**", "anon"); |
| | | filterChainDefinitionMap.put("/profile/**", "anon"); |
| | | |
| | | //微信æå¡ |
| | | filterChainDefinitionMap.put("/wechat/**", "anon"); //微信å
¬ä¼å·éæèµæº |
| | | filterChainDefinitionMap.put("/api-wechat/**", "anon"); //微信æå¡æ¥å£è·¯å¾ |
| | | |
| | | Map<String, Filter> filters = new LinkedHashMap<String, Filter>(); |
| | | filters.put("captchaValidate", captchaValidateFilter()); |
| | | filters.put("kickout", kickoutSessionFilter()); |
| | | // 注éæåï¼åè·³è½¬å°æå®é¡µé¢ |
| | | filters.put("logout", logoutFilter()); |
| | | shiroFilterFactoryBean.setFilters(filters); |
| | | |
| | | // ææè¯·æ±éè¦è®¤è¯ |
| | | filterChainDefinitionMap.put("/**", "user,kickout"); |
| | | shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); |
| | | |
| | | return shiroFilterFactoryBean; |
| | | } |
| | | } |