Files
springboot-payment/boot-web/src/main/java/com/xwbing/shiro/ShiroConfig.java
T
2018-03-30 18:05:24 +08:00

77 lines
2.6 KiB
Java

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;
/**
* 项目名称: boot-module-demo
* 创建时间: 2018/3/28 14:06
* 作者: xiangwb
* 说明: 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() {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager());
//配置访问权限
Map<String, String> chains = new LinkedHashMap<>();
shiroFilterFactoryBean.setLoginUrl("/user/login");
shiroFilterFactoryBean.setSuccessUrl("/doc");
//静态资源
chains.put("/META-INF/resources/**", "anon");
chains.put("/resources/**", "anon");
chains.put("/static/**", "anon");
chains.put("/public/**", "anon");
chains.put("/*.*", "anon");
chains.put("/", "anon");
chains.put("/doc", "anon");
//验证码
chains.put("/captcha", "anon");
//swagger
chains.put("/webjars/**", "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);
return shiroFilterFactoryBean;
}
@Bean
public MyShiroRealm shiroRealm() {
return new MyShiroRealm();
}
@Bean
public SecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(shiroRealm());
return securityManager;
}
}