This commit is contained in:
xiangwb
2018-03-30 10:51:27 +08:00
parent 3cb286f557
commit d4063ad719
12 changed files with 167 additions and 143 deletions
@@ -3,8 +3,10 @@ package com.xwbing.shiro;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -16,37 +18,43 @@ import java.util.Map;
* 说明: anon,authc
*/
@Configuration
@PropertySource("classpath:shiro.properties")
public class ShiroConfig {
@Value("${rememberMeCookieMaxAge}")
private Integer rememberMeCookieMaxAge;
@Value("${globalSessionTimeout}")
private Long globalSessionTimeout;
@Value("${sessionValidationInterval}")
private String sessionValidationInterval;
@Value("${sessionsCacheName}")
private String sessionsCacheName;
@Value("${sessionIdCookieName}")
private String sessionIdCookieName;
@Bean
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
public ShiroFilterFactoryBean shirFilter() {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
//配置登录的url和登录成功的url
shiroFilterFactoryBean.setLoginUrl("/login");
shiroFilterFactoryBean.setSuccessUrl("/index");
// 未授权界面;
shiroFilterFactoryBean.setUnauthorizedUrl("/403");
shiroFilterFactoryBean.setSecurityManager(securityManager());
//配置访问权限
Map<String, String> chains = new LinkedHashMap<>();
// 配置不会被拦截的链接 顺序判断
chains.put("/favicon.ico", "anon");
chains.put("/static/**", "anon");
//映射到登录页面,不拦截
chains.put("/","anon");
//映射swagger文档
chains.put("/doc","anon");
//验证码
chains.put("/captcha","anon");
//swagger
chains.put("/v2/api-docs","anon");
chains.put("/swagger-resources","anon");
chains.put("/configuration/ui","anon");
chains.put("/configuration/security","anon");
//德鲁伊监控
chains.put("/druid","anon");
chains.put("/**", "authc");
//配置登录的url和登录成功的url
shiroFilterFactoryBean.setLoginUrl("/user/login");
// shiroFilterFactoryBean.setSuccessUrl("/index");
// 未授权界面;
shiroFilterFactoryBean.setUnauthorizedUrl("/403");
// chains.put("/favicon.ico", "anon");
// chains.put("/static/**", "anon");
// chains.put("/", "anon");
// chains.put("/doc", "anon");
// chains.put("/captcha", "anon");
// chains.put("/v2/api-docs", "anon");
// chains.put("/swagger-resources", "anon");
// chains.put("/configuration/ui", "anon");
// chains.put("/configuration/security", "anon");
// chains.put("/druid", "anon");
// chains.put("/**", "authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(chains);
System.out.println("Shiro拦截器工厂类注入成功");
return shiroFilterFactoryBean;
}