Shiro快速开始
进入官网,点击下载
点击最新版本的路径。
它让我们去GitHub上下载。
下载。
解压之后进入文件夹,打开例子目录
点击quickstart目录:
它的main里只有这一个代码。
我们新创建一个项目:
在我们下载的文件夹中,先把pom.xml的依赖复制粘贴到我们的项目中去:
全部没有版本号,我们就去官网去找一下它的版本号。
依赖导入之后,我们去做一些shiro的配置:
我们先把log4j的properties文件拷贝下来:
我们把ini文件也拷贝过来:
我们把java里面这个文件也拿过来。
这爆红了。
我们把爆红的包删除,可能是版本的问题。
打印出信息并且没什么报错。
我们快速入门这节课环境就搭建完了。
Shiro的Subject分析
这个类中,前三行是固定的写法,就要这么去写,然后我们会去获取到我们的Subject对象,接下来我们获取我们的Subject的session对象,去设置key和value值我们也可以取到key和value。
运行一下:
它之后是做了一个登陆和记住我的功能。
最开始我们是加载了这个文件,所以我们的用户名和密码都是在这个文件里。
这里定义了很多用户的用户名和密码。
我们现在去运行一下代码:
登陆成功。
我们去把用户名写一个文件里没有定义的:
运行:
控制台告诉我们这里没有叫这个用户名的用户。
这部分代码,它在这个try...catch中,定义了多个异常,用户名不存在,密码不对,用户被锁定都会报出对应的异常语句。
我们这里是对角色的一个验证,以及不同角色所分配的权限不一样。
我们的角色和每个角色都有哪些权限,在我们的Ini文件中都有定义,当然我们也可以自己去改。
我们在springboot中常用到的shiro的方法:
Subject currentUser = SecurityUtils.getSubject(); 获取Subject对象
Session session = currentUser.getSession(); 获取Session
currentUser.isAuthenticated() 用户是否被验证
currentUser.getPrincipal() 获取验证权限
currentUser.hasRole("schwartz") 用户是否拥有这个角色
currentUser.isPermitted("lightsaber:wield") 用户授权
currentUser.logout(); 注销
在springboot中重点就是如何去在springboot中去集成我们的shiro