您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

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   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
序言大家好,我是老马。前面我们学习了 5 分钟入门 shiro 安全框架实战笔记,让大家对 shiro 有了一个最基本的认识。shiro 还有其他优秀的特性,今天我们就一起来学习一下,为后续...【详细内容】
2020-12-28  Tags: Shiro  点击:(153)  评论:(0)  加入收藏
之间工作中曾经用到过shiro这个权限控制的框架,之前一直都是停留在用的方面,没有过多的 去理解这方面的知识,现在有时间,专门研究了一下这个Shiro权限的框架使用。Shiro是什么?Ap...【详细内容】
2020-12-24  Tags: Shiro  点击:(143)  评论:(0)  加入收藏
在实际项目中,经常需要用到角色权限区分,以此来为不同的角色赋予不同的权利,分配不同的任务。比如,普通用户只能浏览;会员可以浏览和评论;超级会员可以浏览、评论和看视频课等;实际...【详细内容】
2020-09-04  Tags: Shiro  点击:(65)  评论:(0)  加入收藏
声明由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。雷神众测拥有对此文章的修改和解释...【详细内容】
2020-08-24  Tags: Shiro  点击:(132)  评论:(0)  加入收藏
本文首发于“合天智汇”公众号 作者:Fortheone看了好久的文章才开始分析调试java的cc链,这个链算是java反序列化漏洞里的基础了。分析调试的shiro也是直接使用了cc链。首先先...【详细内容】
2020-07-30  Tags: Shiro  点击:(28)  评论:(0)  加入收藏
写在前面今天收到运维人员的反馈,说程序有漏洞,如下图: 哎,不查不知道,一查吓一跳。发现两个问题!!Apache Shiro是一个强大且易用的Java安全框架,被用来执行身份验证、授权、密码...【详细内容】
2020-07-30  Tags: Shiro  点击:(3314)  评论:(0)  加入收藏
源码分享:关注转发文章之后私信回复【源码】即可免费获取到!框架说明 基于springboot+shiro+freemarker的快速开发框架,代码结构清晰,快速上手使用! 配置代码生成器,减少70%开发...【详细内容】
2020-07-26  Tags: Shiro  点击:(52)  评论:(0)  加入收藏
学习Shiro的时候,阅读过很多优秀的文章,比如《跟我学Shiro》系列等等。于是结合自己的实际情况,自己整理了一部分。这是第一篇文章,旨在从基础案例出发了解其原理。一、认识Shir...【详细内容】
2019-09-06  Tags: Shiro  点击:(165)  评论:(0)  加入收藏
▌简易百科推荐
阿里云镜像源地址及安装网站地址https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b111kK44P更新源之前把之前的国外的镜像先备份一下 切换到yumcd...【详细内容】
2021-12-27  干程序那些事    Tags:CentOS7镜像   点击:(1)  评论:(0)  加入收藏
前言在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? 如何实现断线后重...【详细内容】
2021-12-24  程序猿阿嘴  CSDN  Tags:Netty   点击:(12)  评论:(0)  加入收藏
一. 配置yum源在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repovim /etc/yum.repos.d/google-chrome.repo按i进入编辑模式写入如下内容:[google-chrome]name=googl...【详细内容】
2021-12-23  有云转晴    Tags:chrome   点击:(7)  评论:(0)  加入收藏
一. HTTP gzip压缩,概述 request header中声明Accept-Encoding : gzip,告知服务器客户端接受gzip的数据 response body,同时加入以下header:Content-Encoding: gzip:表明bo...【详细内容】
2021-12-22  java乐园    Tags:gzip压缩   点击:(9)  评论:(0)  加入收藏
yum -y install gcc automake autoconf libtool makeadduser testpasswd testmkdir /tmp/exploitln -s /usr/bin/ping /tmp/exploit/targetexec 3< /tmp/exploit/targetls -...【详细内容】
2021-12-22  SofM    Tags:Centos7   点击:(7)  评论:(0)  加入收藏
Windows操作系统和Linux操作系统有何区别?Windows操作系统:需支付版权费用,(华为云已购买正版版权,在华为云购买云服务器的用户安装系统时无需额外付费),界面化的操作系统对用户使...【详细内容】
2021-12-21  卷毛琴姨    Tags:云服务器   点击:(6)  评论:(0)  加入收藏
参考资料:Hive3.1.2安装指南_厦大数据库实验室博客Hive学习(一) 安装 环境:CentOS 7 + Hadoop3.2 + Hive3.1 - 一个人、一座城 - 博客园1.安装hive1.1下载地址hive镜像路径 ht...【详细内容】
2021-12-20  zebra-08    Tags:Hive   点击:(9)  评论:(0)  加入收藏
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1、设置复杂密码服务器设置大写、小写、特殊字符、数字...【详细内容】
2021-12-20  网安人    Tags:服务器   点击:(7)  评论:(0)  加入收藏
项目中,遇到了一个问题,就是PDF等文档不能够在线预览,预览时会报错。错误描述浏览器的console中,显示如下错误:nginx代理服务报Mixed Content: The page at ******** was loaded...【详细内容】
2021-12-17  mdong    Tags:Nginx   点击:(7)  评论:(0)  加入收藏
转自: https://kermsite.com/p/wt-ssh/由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录 以及 通过密钥实现免密码登录Dec 15, 2021阅读时长: 6 分钟简介Windo...【详细内容】
2021-12-17  LaLiLi    Tags:SSH连接   点击:(16)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条