新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 站长技术 > 服务器

Shiro安全框架之基础原理和案例

时间:2019-09-06 10:26:33  来源:  作者:

学习Shiro的时候,阅读过很多优秀的文章,比如《跟我学Shiro》系列等等。于是结合自己的实际情况,自己整理了一部分。这是第一篇文章,旨在从基础案例出发了解其原理。

一、认识Shiro

1、简介

Shiro是Apache的一个安全权限框架,比如说我们都遇到过这样一种情况,我们下载完某个软件的时候,然后登陆。突然发现我们可以使用好几种身份去登陆。比如说游客、会员身份、普通用户等。

Shiro安全框架之基础原理和案例

 

我们使用的身份不同,展示的界面是不一样的。Shiro就是要完成这样一个功能,用户以不同的身份登陆,Shiro安全验证之后展示不同的界面。

他的重要性就不说了,只要是个好一点的网站或者是App都会使用到。

2、功能简介

上面的例子只是让我们认识一下Shiro。我们给出一张完整的功能图,整体来认识一下:

Shiro安全框架之基础原理和案例

 

从上面这张图我们可以看到,主要包含了两大部分。

第一部分:primary concerns(主要解决的问题)

(1)Authentication:身份认证/登录,验证用户是不是拥有相应的身份;

(2)Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限,比如说王者荣耀里面普通用户没有皮肤,交了钱就可以有使用会员皮肤的权限了。

(3)Session Manager:会话管理,用户登录就是一次会话,在没有退出之前,它的所有信息都在会话中;

(4)Cryptography:加密,保护数据的安全性。这个如何理解呢?平时自己学习的时候,往MySQL数据库里面都是存储的用户名和密码,但是真实情况下肯定就不是这样了,只保存加密后的密码。

第二部分:支持的技术

(1)Web Support:Web支持;

(2)Caching:缓存用户的登录、角色、权限信息;

(3)Concurrency:支持多线程并发验证,一个线程能把权限自动传播到另一个线程;

(3)Testing:测试支持;

(4)Run As:允许一个用户假装为另一个用户的身份进行访问;

(5)Remember Me:记住我,即一次登录后,下次再来的话不用登录了。淘宝网经常看到。

3、实现原理

上面我们知道了Shiro能干什么,这一小节主要解决的是如何做的问题。

Shiro安全框架之基础原理和案例

 

这张图结合了外部结构和内部结构,我们认识一下里面涉及到的概念。

(1)Subject

他指代的是当前用户,比如说游客、VIP等,当然可以不是具体的人。也可以某个机器。

(2)Security Manager

他表示的是安全管理器,用户使用Shiro不同的功能,安全管理器就调用不同的模块进行管理。比如说你想要验证当前用户是否有权限登录系统。安全管理区就会调用Authenticator。在比如说你想让当前的用户可以使用那些功能,安全管理器就会调用Authrizer

(3)Realm

realm表示数据源,比如说你要想验证用户身份是游客还是会员,realm就提前把这些用户和权限先保存了,Shiro然后调用realm里面的数据进行验证。

OK,这就是其基本原理很简单。下面我们就看一个例子,看看Shiro到底如何使用。

二、基础案例

第一步:添加jar包或者是依赖

我是在maven进行管理的,所以你只需要添加以下依赖即可

Shiro安全框架之基础原理和案例

 

如果你没有使用maven,那就直接在百度上搜索下列jar包导入eclipse中即可。

Shiro安全框架之基础原理和案例

 

第二步:在Src目录下面创建log4j.properties

这个文件是和日志相关的文件。直接复制粘贴即可

Shiro安全框架之基础原理和案例

 

第三步:在src下面创建shiro.ini文件

这个文件里面保存了Shiro的各种信息,他的作用就好比是realm(暂时先这样理解)。

Shiro安全框架之基础原理和案例

 

第四步:创建Test.JAVA用户登录,开始验证

Shiro安全框架之基础原理和案例

 


Shiro安全框架之基础原理和案例

 


Shiro安全框架之基础原理和案例

 

由于代码太长,我们分开来写,用户登录成功之后就可以做其他事情了

Shiro安全框架之基础原理和案例

 

这就是整个执行流程。我们只需要看上面的代码就能明白,不过在实际当中肯定是不会在SE中这样写的,一般都是要结合SpringBoot或者是SSM。下一篇文章,我们将直接介绍SpringBoot整合Shiro。然后对Shiro中的每一个功能,进行一个细致的介绍。如有问题还请指正。



Tags:Shiro   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
学习Shiro的时候,阅读过很多优秀的文章,比如《跟我学Shiro》系列等等。于是结合自己的实际情况,自己整理了一部分。这是第一篇文章,旨在从基础案例出发了解其原理。一、认识Shir...【详细内容】
2019-09-06   Shiro  点击:(2)  评论:(0)  加入收藏
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门