This commit is contained in:
xiangwb
2018-03-28 17:43:44 +08:00
parent 614698b4ef
commit 3cb286f557
2 changed files with 22 additions and 15 deletions
@@ -72,7 +72,7 @@ public class MyShiroRealm extends AuthorizingRealm {
}
/**
* 验证用户身份
* 认证.登录
*
* @param authenticationToken
* @return
@@ -13,7 +13,7 @@ import java.util.Map;
* 项目名称: boot-module-demo
* 创建时间: 2018/3/28 14:06
* 作者: xiangwb
* 说明:
* 说明: anon,authc
*/
@Configuration
public class ShiroConfig {
@@ -21,24 +21,31 @@ public class ShiroConfig {
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
// 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面
//配置登录的url和登录成功的url
shiroFilterFactoryBean.setLoginUrl("/login");
// 登录成功后要跳转的链接
shiroFilterFactoryBean.setSuccessUrl("/index");
// 未授权界面;
shiroFilterFactoryBean.setUnauthorizedUrl("/403");
// 拦截器.
Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
//配置访问权限
Map<String, String> chains = new LinkedHashMap<>();
// 配置不会被拦截的链接 顺序判断
filterChainDefinitionMap.put("/static/**", "anon");
filterChainDefinitionMap.put("/ajaxLogin", "anon");
// 配置退出过滤器,其中的具体的退出代码Shiro已经替我们实现了
filterChainDefinitionMap.put("/logout", "logout");
filterChainDefinitionMap.put("/add", "perms[权限添加]");
// <!-- 过滤链定义,从上向下顺序执行,一般将 /**放在最为下边 -->:这是一个坑呢,一不小心代码就不好使了;
// <!-- authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问-->
filterChainDefinitionMap.put("/**", "authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
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");
shiroFilterFactoryBean.setFilterChainDefinitionMap(chains);
System.out.println("Shiro拦截器工厂类注入成功");
return shiroFilterFactoryBean;
}