首页 > 其他分享 >Shiro框架

Shiro框架

时间:2024-07-02 17:58:22浏览次数:3  
标签:Web 框架 Spring 应用程序 Security 权限 Shiro

入门概述

1 shiro是什么?

Apache Shiro 是一个功能强大且易于使用的 Java 安全(权限)框架。Shiro 可以完成:认证、授权、加密、会话管理、与 Web 集成、缓存 等。借助 Shiro 您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的 Web 和企业应用程序。

简单来说,shiro是一个java的安全(权限)框架。

2 为什么要用shiro?

① 易于使用:使用 Shiro 构建系统安全框架非常简单。就算第一次接触也可以快速掌握。

② 全面:Shiro 包含系统安全框架需要的功能,满足安全需求的“一站式服务”。

③ 灵活:Shiro 可以在任何应用程序环境中工作。虽然它可以在 Web、EJB 和 IoC 环境中工作,但不需要依赖它们。Shiro 也没有强制要求任何规范,甚至没有很多依赖项。

④ 强力支持 Web:Shiro 具有出色的 Web 应用程序支持,可以基于应用程序 URL 和 Web 协议(例如 REST)创建灵活的安全策略,同时还提供一组 JSP 库来控制页面输出。

⑤ 兼容性强:Shiro 的设计模式使其易于与其他框架和应用程序集成。Shiro 与 Spring、Grails、Wicket、Tapestry、Mule、Apache Camel、Vaadin 等框架无缝集成。

⑥ 社区支持:Shiro 是 Apache 软件基金会的一个开源项目,有完备的社区支持,文档支持。如果需要,像 Katasoft 这样的商业公司也会提供专业的支持和服务

3 Shiro和SpringSecurity的区别?

① Spring Security 基于 Spring 开发,项目若使用 Spring 作为基础,配合 Spring Security 做权限更加方便,而 Shiro 需要和 Spring 进行整合开发;

② Spring Security 功能比 Shiro 更加丰富些,例如安全维护方面;

③ Spring Security 社区资源相对比 Shiro 更加丰富;

④ Shiro 的配置和使用比较简单,Spring Security 上手复杂些;

⑤ Shiro 依赖性低,不需要任何框架和容器,可以独立运行.Spring Security 依赖 Spring 容器;

⑥ shiro 不仅仅可以使用在 web 中,它可以工作在任何应用环境中。在集群会话时 Shiro 最重要的一个好处或许就是它的会话是独立于容器的。

4 基本功能

功能相关介绍:
① Authentication:身份认证/登录,验证用户是不是拥有相应的身份;

② Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户是否能进行什么操作,如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户 对某个资源是否具有某个权限;

③ Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的 所有 信息都在会话中;会话可以是普通 JavaSE 环境,也可以是 Web 环境的;

④ Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;

⑤ Web Support:Web 支持,可以非常容易的集成到 Web 环境;

⑥ Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可 以提高效率;

⑦ Concurrency:Shiro 支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;

⑧ Testing:提供测试支持;

⑨ Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;

⑩ Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了

标签:Web,框架,Spring,应用程序,Security,权限,Shiro
From: https://blog.csdn.net/qq_64064246/article/details/140133008

相关文章

  • MyBatis是什么以及为什么需要ORM框架、快速搭建
    MyBatis是什么MyBatis的前身是Ibatis,本质是一款半自动化的ORM框架,除了能对POJO进行ORM映射之外,还可以编写SQL脚本语句。主要是为了解决我们平时开发中经常写的JDBC代码,将繁琐的JDBC代码封装起来,化繁为简。MyBatis映射文件四要素:1.SQL语句2.映射规则3.POJO4.Mapper接口为......
  • 书城在线系统:基于Java和SSM框架的高效信息管理平台
    开头语:你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。开发语言:Java数据库:MySQL技术:SSM框架(Spring,SpringMVC,Mybatis)工具:MyEclipse,Tomcat,MySQL系统展示首页管理员功能模块用户功能模块前台首页功能模块摘要雅博书城在线系统,一......
  • .Net Core Web Api 框架搭建详细步骤
    1、建立.NetCoreWebApi项目2、新建类库,分类结构层 3、使用EFCORE链接数据库,关联实体创建表,添加以下Nuget包创建DbContext 实例  4、appsettings.json配置数据库链接字符串,我当前是链接的mysql数据库5、Program依赖关系注入DbContextbuilder.Services.Ad......
  • .Net Core Web Api 框架搭建简单步骤
    1、建立.NetCoreWebApi项目2、新建相关类库项目3、在EFCORE项目中,创建DbContext 上下文实例,并将所有的实体类写入DbSet,在Program.cs中注入创建的DbContext 实力及配置数据库链接信息4、封装DbContext 仓储类Repository5、新建服务类及服务接口,继承仓储类进行数据增......
  • 基于WPF+Halcon开发的机器视觉框架,参考easyvision开发
    基于WPF+Halcon开发的机器视觉框架,参考easyvision开发50多个模块,WPF+Halcon开发,是非常不错的学习框架,需要什么功能可以自己添加开发,插件式开发非常方便,代码开源可二次开发。整套源码,可学习参考,也可略做修改,用在自己的项目上。基于WPF+Halcon开发的机器视觉框架运行界面......
  • 11、 Django-模型基础-models-ORM框架-管理器对象
     #概述django根据属性的类型确定以下信息当前选择的数据库支持字段的类型渲染管理表单时使用的默认htm1控件在管理站点最低限度的验证django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后则django不会再生成默认的主键列#属性命......
  • 深入理解C# log4Net日志框架:功能、使用方法与性能优势
    文章目录1、log4Net的主要特性2、log4Net框架详解配置日志级别3、log4Net的使用示例4、性能优化与对比5、总结与展望在软件开发过程中,日志记录是一个不可或缺的功能。它可以帮助开发者追踪错误、监控应用程序性能,以及进行调试。在C#生态系统中,log4Net是一个流行的......
  • 自动驾驶新篇章:基于大模型的协作驾驶与终身学习框架
    自动驾驶技术受到了学术界和工业界的广泛关注,但当前的自动驾驶系统大多基于数据驱动的方法,存在可解释性、泛化能力和持续学习能力方面的显著不足。而且单车自动驾驶系统缺乏与其他车辆协作和协商的能力,这对于提高驾驶安全性和效率至关重要。交通路口的场景:其中车1(veh1)和......
  • pageHelper在Spring框架中pageSize无法修改的问题
    以前在Springboot中分页是使用pageHelper的,然后想当然的以为在老项目Spring框架上也可以完美复制粘贴进去,结果运行起来pageHelper的pageSize一直是全部列表的长度,即(total始终等于pagesize,page始终等于1)这就相当于没分页。后来发现,pageHelper在Spring中的写法和Springboot的是......
  • 使用Vue 2 + Element UI搭建后台管理系统框架实战教程
    后台管理系统作为企业内部的核心业务平台,其界面的易用性和功能性至关重要。Vue2作为一个成熟的前端框架,以其轻量级和高效著称,而ElementUI则是一套专为桌面端设计的Vue2组件库,它提供了丰富的UI元素和组件,大大简化了后台管理系统的开发过程。本篇博客将深入介绍如何利用Vue2......