1、Shiro认证过滤器
如果要配置认证后才能访问资源,就需要使用过滤器拦截请求。Shiro内置了很多过滤器:
过滤器 | 过滤器类 | 说明 |
---|---|---|
anon | AnonymousFilter | 配置不需要登录即可访问的资源 |
authc | FormAuthenticationFilter | 配置登录认证后才可以访问的资源 |
user | UserFilter | 配置登录认证或“记住我”认证后才可以访问的资源 |
// 认证过滤器
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager securityManager){
// 1、创建过滤器工厂
ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
// 2、过滤器工厂设置SecurityManager
factoryBean.setSecurityManager(securityManager);
// 3、设置Shiro拦截规则
// 不拦截的资源
Map<String,String> map=new HashMap<>();
map.put("/login.html","anon");
map.put("/fail.html","anon");
map.put("/user/login","anon");
map.put("/css/**","anon");
// 拦截的资源
map.put("/**","authc");
// 4、将拦截规则设置给过滤器工厂
factoryBean.setFilterChainDefinitionMap(map);
// 5、登录页面
factoryBean.setLoginUrl("/login.html");
return factoryBean;
}