当前位置:   article > 正文

java安全框架_Apache Shiro-Java安全框架

java安全框架

主要内容Shiro简介

Shiro架构原理

INI文件介绍

Shiro环境搭建及认证过程

第一个Shiro演示

授权

加密及凭证匹配器

自定义Realm

凭证匹配器

Spring Boot整合Shiro实现登录认证96f6fc1681d6bc02f0c3b7ad12c4c754.png

一、Shiro 简介

1、概述

权限体系在现代软件应用中有着非常重要的地位。一个应用如果没有权限体系都会显着这个系统“特别不安全”,无论是传统的MIS系统还是互联网项目出于对业务数据和应用自身的安全,都会设置自己的安全策略。

目前市场上专门的Java权限框架有Apache Shiro 和 Spring Security。相较于Spring Security 来说 Shiro更加老牌,所以就先讲解Shiro,在后面的阶段中讲解Spring Security。学习好Shiro对于以后市场上在出现新型权限框架的学习能带来很大便利。因为权限的概念是不变的,变得是框架的实现方式。当然了,对于第一次学习权限框架的人来说,相较于权限框架的应用,更难的就是权限方面的概念。96f6fc1681d6bc02f0c3b7ad12c4c754.png

2、Shiro官方解释854063b78f9bccd12d01631cc6523605.png

中文:Apache Shiro是一个强大的并且简单使用的java权限框架.主要应用认证(Authentication),授权(Authorization),cryptography(加密),和Session Manager.Shiro具有简单易懂的API,使用Shiro可以快速并且简单的应用到任何应用中,无论是从最小的移动app到最大的企业级web应用都可以使用。96f6fc1681d6bc02f0c3b7ad12c4c754.png

3、核心功能

在Shiro官网首页上占用了很大的篇幅说明了Shiro的核心功能。

Authentication 认证。如用户的登录。

Authorization授权。用户是否有权限访问指定URL等。

Cryptography密码学。如密码的加密。

Session Management Session 管理。

Web IntegrationWeb集成。Shiro不依赖于容器。75126842be306a35aba5ebb90a17418d.png

二、Shiro 架构原理

(必须会。Shiro学习的重中之重。)295219d5e230a1c8460e422092fff37d.png

1、第一行

第一行中示例出了一些语言。无论是什么语言都需要包含Subject

2、Subject

主体。每个用户登录成功后都会对应一个Subject对象,所有用户信息都存放在Subject中。可以理解:Subject就是Shiro提供的用户实体类。

3、Security Manager

Shiro最大的容器,此容器中包含了Shiro的绝大多数功能。在非Spring Boot项目中,获取Security Manager 是编写代码的第一步。而在Spring Boot中已经帮助我们自动化配置了。

4、Authenticator

认证器。执行认证过程调用的组件。里面包含了认证策略。96f6fc1681d6bc02f0c3b7ad12c4c754.png

5、Authorizer

授权器。执行授权时调用的组件。

6、Session Manager

Shiro被Web集成后,HttpSession对象会由Shiro的Session Manager进行管理。

7、Cache Manager

缓存管理。Shiro执行很多第三方缓存技术。例如:EHCache等。

8、Session DAO

操作Session内容的组件。96f6fc1681d6bc02f0c3b7ad12c4c754.png

9、Realms

Shiro框架实现权限控制不依赖于数据库,通过内置数据也可以实现权限控制。但是目前绝大多数应用的数据都存储在数据库中,所以Shiro提供了Realms组件,此组件的作用就是访问数据库。Shiro内置的访问数据库的代码,通过简单配置就可以访问数据库,也可以自定义Realms实现访问数据库逻辑(绝大多数都这么做)

三、INI文件介绍

INI英文名称(InitializationFile)

INI文件是Window系统配置文件的扩展名.

Shiro的全局配置文件就是.ini文件,ini中数据都是固定数据,后面会用数据库中数据替代下面users和roles(固定数据部分)

.ini文件内容的语法和.properties类似都是key=value,value格式.96f6fc1681d6bc02f0c3b7ad12c4c754.png

INI文件中包含了四个部分:

1、[main] 主体部分.

这部分配置类对象,或设置属性等操作.

内置了根对象:securityManager,注意对象名大小写。a3ed0a8fd240ff549aa0c9d048941977.png

4、[urls]

定义哪个控制器被哪个过滤器过滤.Shiro内置很多过滤器。此部分主要在WEB应用中使用。

下图是官网上提供的Shiro内置Filter及名称。01fb5f6546a677cad966b95de6121f2b.png

anon:不认证也可以访问。例如:/admin/**=anon /login=anon

authc:必须认证。 /**=authc ---所有的资源都认证

authcBasic:没有参数时表示httpBasic认证(客户端认证方式)。

logout:退出。

noSessionCreation:新增Filter,表示没有Session创建。

perms:判断是有具有指定权限。例如:/admin/user/**=perms[“per1”,”per2”]。必须同时具有给定权限才可以访问。如果只有一个权限可以省略双引号。

port:限制端口。例如:/admin/**=port[8081]。只要请求不是8081端口就重新发送URL到8081端口。

rest:请求方式和权限的简便写法。例如:/admin/**=rest[user],相当于/admin/** = perms[user:方式],方式是http请求的方式:post、get等。

roles:判断是否具有指定角色。/admin/**=roles[role1]

ssl:表示是安全的请求。协议为https

user:表示必须存在用户。f2fa647fd3018aa23ca961193e063983.png

96f6fc1681d6bc02f0c3b7ad12c4c754.png

作为IT人,我们也在不断地要求自己,为学员做出更多更好的视频课程;这次的课程我们集合了2020年所有新型的前端技术,整理出了适合广大学员学习的web前端课程,与以往相比,内容更加丰富,极力保证学员所学技术紧跟时代步伐!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/636152
推荐阅读
相关标签
  

闽ICP备14008679号