接上一期内容关于 Shiro 的介绍与项目中集成,另外,学习 Shiro 时推荐对比 Spring Security 一起学习,Shiro 和 Spring Security 都是如今市场上比较有名且常用的 Java安全框架。


四、Shiro 实现请求授权


运行项目查看效果

设置未授权请求页面
controller
@RequestMapping("/unauth")@ResponseBodypublic String unauthorized(){return "未经授权无法访问此页面!";}
ShiroConfig
......//设置登录的请求,没有认证的会自动跳到该页面bean.setLoginUrl("/toLogin");// 设置未授权时,请求页面bean.setUnauthorizedUrl("/unauth");return bean;
给用户授权(perms[user:add])
在UserRealm自定义realm 对象中,给所有用户添加 user:add 权限,正常 user:add 要从数据库中查出来

运行项目,此时能正常访问 /addUser 请求下的页面了

从数据库中查出用户对应的权限
1、给user表添加一个 permission 字段,保存用户对应的权限(字符串)

2、在 UserRealm 中给用户设置对应的权限(这里的权限是从数据库中查出的 permission)

根据数据库,这里的用户 “编程之外”只有 user:add 权限,只能访问请求 /addUser,用户“张三”只有 user:update 权限,只能访问 /updateUser,实际项目中 permission 权限信息要单独一张表

五、Shiro 整合 Thymeleaf


<dependency><groupId>com.github.theborakompanioni</groupId><artifactId>thymeleaf-extras-shiro</artifactId><version>2.0.0</version></dependency>


运行项目测试
分析:前端只显示所登陆用户,拥有的权限对应的东西


END

文章转载自遇见0和1,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




