1. ShiroConfig中添加授权过滤器
filterMap.put("/add", "perms[user:add]"); filterMap.put("/update", "perms[user:update]");
// 设置未授权页面 filterFactoryBean.setUnauthorizedUrl("/unAuth");
这个时候我们登录点击add或者update 就会跳转到未授权页面
2. 给用户授权
我们只需要一个 SimpleAhtuorizationInfo 并给他设置授权权限并返回即可
这样add页面就可以访问, update依旧没有权限
3. 关联数据库
数据库中写一个简单的权限
然后我们直接去获取用户的权限信息就可以实现权限拦截
数据库中有两个账号, admin这个账号只可以访问 add, 而 root 只可以访问 update
4. shiro和thymeleaf整合使用
1. 引入thymeleaf对shiro拓展的依赖
<!-- https://mvnrepository.com/artifact/com.github.theborakompanioni/thymeleaf-extras-shiro --> <dependency> <groupId>com.github.theborakompanioni</groupId> <artifactId>thymeleaf-extras-shiro</artifactId> <version>2.0.0</version> </dependency>
2. 在ShiroConfig中配置 ShiroDialect 用于 shiro和thymeleaf配合使用
/** * 配置 shiroDialect 用于thymeleaf和 * @return */ @Bean public ShiroDialect getShiroDialect() { return new ShiroDialect(); }
3. 在thymeleaf中使用shiro标签
首页分别用div套上加上shiro:hasPermission 即可实现,当我们用admin登录只有添加显示, root则只有update, 否则啥也没有