在一个系统中,不同的用户会对应着不同的角色,不同的角色会被赋予不同的权限。不同角色的用户登陆会看到不同的界面,也就是意味着可以使用不同的功能。可以使用Spring security或者Shiro,但是Shiro相对于Spring security来说更轻量一些,更容易上手,因此选择了后者。
首先,在Springboot工程的pom文件里添加shiro依赖,如下:
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.2.5</version>
</dependency>
接下来,对Shiro进行配置,使用注解@Configuration,主要代码如下:
@Configuration
public class ShiroConfiguration {
@Bean
public ShiroFilterFactoryBean shiroFilter(org.apache.shiro.mgt.SecurityManager securityManager){
System.out.println("ShiroConfiguration.shirFilter()");
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//设置SecurityManager
shiroFilterFactoryBean.setSecurityManager(securityManager);
//拦截器
Map<String,String> filterChainDefinitionMap = new LinkedHashMap<String,String>();
//所有匿名用户均可访问到Controller层的该方法下
filterChainDefinitionMap.put("/login","anon");
filterCh