shiro-demo 测试源码
话说前面,感觉不太好用,没有Security舒服。
在早年前,学过一次,都忘记了。
环境搭建
1)、导入依赖
2)、编写自定义Realm
3)、配写ShiroConfig,配置三个Bean
4)、此时我们测试一下,可以正常访问
添加拦截
1)、添加授权,给add,update添加,需要认证才可以访问。可以支持*
星号进行通配
注意:这里是LinkedHashMap,上面的优先级最大
2)、此时,我们再次访问,会发现此时的add,update都404失效了,URL会自动调整到login.jsp页面
自定义拦截页面
1)、添加login页面
2)、添加Controller中映射方法
3)、设置login页面
4)、未通过认证,会自动跳转至login页面,还可以自定义登录成功页面,未授权页面
认证
1)、编写login页面,修改提交地址,对登录失败进行消息捕获
2)、添加Controller中映射方法,封装账号密码做为Token,使用login进行登录,执行login方法会执行自定义认证方法
3)、编写自定义认证规则,判断模拟数据库查询到数据,进行校验账号,密码由shiro来处理。
4)、测试登录
整合MyBatis
1)、添加依赖:mybatis,druid,mysql,log4j,lombok
2)、添加User
3)、添加UserMapper,UserMapper.xml
4)、添加UserService,UserServiceImpl
5)、main中添加注解扫描
6)、配置yml:DataSource,Druid,MyBatis
7)、修改认证方法
8)、数据库
1 | /* |
9)、测试登录
授权
1)、添加权限控制之后,再进行访问,发现访问错误
注意:这里是LinkedHashMap,上面的优先级最大
2)、默认是报错太不友好了,我们可以让它跳转到指定的页面
3)、设置给予权限
4)、从数据库读取权限
5)、测试,权限
整合Thymeleaf
1)、导入依赖
2)、注入Bean
3)、登录成功把用户存入session
4)、修改index页面,导入命名空间
更多shiro标签的使用,查看 https://github.com/theborakompanioni/thymeleaf-extras-shiro
5)、测试