在整合的基础上添加shiro的内置过滤器
权限标识
anon: 无需认证就可以访问
authc:必须认证了才能访问
user:必须拥有 “记住我” 功能才能访问
perms:拥有某个角色权限才能访问
ShiroConfig.java
package com.star.config;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.LinkedHashMap;
import java.util.Map;
@Configuration
public class ShiroConfig {
//ShiroFilterFactoryBean:第三步
@Bean
public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") DefaultWebSecurityManager defaultWebSecurityManager){
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
//设置安全管理器
bean.setSecurityManager(defaultWebSecurityManager);
//添加shiro的内置过滤器
/**
* anon: 无需认证就可以访问
* authc:必须认证了才能访问
* user:必须拥有 “记住我” 功能才能访问
* perms:拥有某个角色权限才能访问
*
*/
Map<String, String> filterMap = new LinkedHashMap<>();
//拦截
filterMap.put("/user/add","authc");
filterMap.put("/user/update","perms");
//支持通配符
// filterMap.put("/user/*","authc");
bean.setFilterChainDefinitionMap(filterMap);
//设置登录的请求
bean.setLoginUrl("/toLogin");
return bean;
}
//DafaultWebSecurityManager:第2步
@Bean(name="securityManager")
public DefaultWebSecurityManager getDefaultWebSecurityManager(@Qualifier("userRealm") UserRealm userRealm){
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
//关联UserRealm
securityManager.setRealm(userRealm);
return securityManager;
}
//创建realm对象,需要自定义类:第1步
@Bean
public UserRealm userRealm(){
return new UserRealm();
}
}