七叶笔记 » java编程 » SpringBoot整合Shiro的方法详解

SpringBoot整合Shiro的方法详解

1.Shito简介

1.1 什么是shiro

Apache Shiro是一个java安全(权限)框架

Shiro可以非常容易的开发出足够好的应用,其不仅可以用在javase环境,也可以用在javaee环境

shiro可以完成,认证,授权,加密,会话管理,web集成,缓存等。

下载地址:http://shiro.apache.org/

1.2 有哪些功能

2.QuickStart

Git下载地址

官网下载的可能慢一些

首先新建一个普通的maven项目,然后在项目中导入新的maven项目模块,结构如下:

然后开始创建我们需要的文件,这些文件都可以在官网下载的文件中可以找到:

shiro.ini:

导入相关依赖 pom.xml,官网未给出详细的依赖,具体的参考给出的git下载的文件,然后做了一些简单的修改。

log4j.prop[erties:

最重要的配置文件:

QuickStart:

以上主要的几个关键部分代码:

对象初始化部分

获取当前用户

判断用户是否被认证

判断用户是否具有什么角色

判断用户是否拥有权限

注销

此时我们运行启动,项目如下,那么一个简单的shiro quickStart 就已经启动好了。

注意

shir最重要的三个部分:

subject 用户SecurityManager 管理所有的用户Realm 连接数据

3.SpringBoot中集成

1.导入shiro相关依赖

2.自定义UserRealm

3.定义shiroConfig

4.新建页面进行测试

index.html

user/add.html

user/update.html

此时一个简单的项目就搭建起来了,然后开始shiro的认证授权的操作。

我们只需要在配置中添加如下代码:

此时就对我们所有的页面请求进行了拦截,然后转发到login的页面

login.html:

此时在页面进行点击的时候,我们就无法正常进入页面,只能进入到我们的登录页面

进行登录验证的拦截,只有输入正确的账号密码才能够进入:

MyCOntroller中新增如下代码:

然后修改login页面的代码

然后在我们的UserRealm

中doGetAuthenticationInfo方法中新增代码

此时我们通过UsernamePasswordToken 获取我们封装好的账号和密码,但是我们只需要进行账号的认证,密码的认证交给我们的shiro去做就可以了。

具体的用户授权,我们可以进行连接数据库的设置,但是我为了偷懒,我就不去手动创建与数据库的链接啦。

下面我们来进行页面的授权操作

我们想要进行用户的授权操作

我们需要在shiroConfig中新增如下代码:

此时代表如果用户拥有user:add操作的话,可以显示,如果没有的话就不能正常显示

我们可以自定义一个页面来用于返回信息的显示:

当用户没有add权限的时候,我们就提示无法显示:

此时我们就完成了单个的用户授权的操作。此时我们再去进行具体的页面操作

shiro与thymeleaf的结合:

需要将我们进行验证的页面进行如下操作:

此时应用的方式和springsecurity的方式基本一致。

然后在我们的授权页面进行操作如下:

UserRealm中修改doGetAuthorizationInfo方法,如下:

此时我们赋予用户只有add的权限,那么按理说在页面中是无法显示update的按钮,那么我们进行测试下,是否可以正常使用:

此时认证授权部分已经成功啦,以上就是我们进行的一个小小的demo,更深入的学习,后续继续更新。

git源码地址

到此这篇关于SpringBoot整合Shiro的方法详解的文章就介绍到这了,更多相关SpringBoot整合Shiro内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章