• 自动秒收录
  • 软件:1973
  • 资讯:57996|
  • 收录网站:278291|

IT精英团

[安全框架]快速了解安全框架

[安全框架]快速了解安全框架

浏览次数:
评论次数:
编辑: 泽洋
信息来源: ITPUB
更新日期: 2022-09-24 01:07:22
摘要

这篇文章就来说说市面上的安全框架,并没有详细解释。目录【安全框架】快速了解安全框架说说安全框架什么是安全框架?安全框架又有哪些?ShiroSpringSecuritySa-Token1|1说说安全框架

  • 正文开始
  • 相关阅读
  • 推荐作品

本文只说市面上的安全框架,不做详细解释。

目录【安全框架】快速了解安全框架。说说安全框架吧。什么是安全框架?什么是安全框架?ShiroSpringSecuritySa-令牌

1|1说说安全框架

1|2什么是安全框架?安全框架又有哪些?

简单来说就是控制访问权限,主要是用户认证和权限认证。安全框架中有许多角色。Shiro:它是一个早期的框架,一个轻量级的安全框架,提供了很多功能,并且很容易使用。SpringSecurity:这个安全框架很难构建,但它是最受欢迎的。现在基本都是以SpringSecurity作为安全框架,提供了很多过滤器,易于扩展。Sa-Token:这个安全框架是一个相对较新的开源框架,并且是一个易于使用的轻量级框架。你只需要使用注释。内置提供了很多方法和注释,也方便扩展。

Shiro

在这里插入图片描述

官方地址:https://shiro.apache.org/

阿帕奇希罗是一个强大而灵活的开源安全框架,可以完全处理认证、授权、加密和会话管理。

在这里插入图片描述

Authentication:认证/登录,以验证用户是否具有相应的身份;Authorization:授权,即权限验证,验证被认证的用户是否具有某种权限;即判断用户是否能做某件事,比如验证用户是否有某个角色。或者细粒度的验证用户是否对某个资源有某个权限;Session Management:会话管理,即用户登录后就是一个会话,其所有信息都在他注销前的会话中;会话可以在通用JavaSE环境中,也可以在Web环境中。Cryptography:加密,保护数据的安全,如密码加密存储在数据库中而不是明文存储;Web Support: Web支持,可以很容易地集成到Web环境中;Caching:缓存,比如用户登录后,用户信息和他拥有的角色/权限不用每次都检查,可以提高效率;Concurrency:shiro支持多线程应用的并发验证,即如果在一个线程中打开另一个线程,权限可以自动传递;Testing:提供测试支持;Run As:允许一个用户冒充另一个用户(如果他们允许的话)访问;Remember Me:记得我,这是一个很常见的功能,即登录一次后,下次就不需要登录了。查看更多关于Shiro-w3school。

SpringSecurity

在这里插入图片描述

官方地址:https://spring.io/projects/spring-security

中文文档:https://docs . git code . net/spring/guide/spring-security/overview . html

Spring security是一个提供认证、授权和防止常见攻击的框架,是Spring集成的安全框架。SpringSecurity入门比较难,整个架构比较复杂,但是提供了很多功能。相对于其他安全框架,是比较重量级的。SpringSecurity有两个核心功能,即认证和授权。Spring security是一个框架,它提供认证、授权和针对常见攻击的保护。它是保护基于Spring的应用程序的事实上的标准。

SpringSecurity通过一些过滤器和拦截器实现登录认证过程。我们可以将这些过滤器重写为

及一些方法从而达到我们自身想要的效果。SpringSecurity有内置登录界面,首先将maven坐标导入后,访问接口就会需要登录认证,而在没自定义登录界面的时候,SpringSecurity会有自带的登录界面,并且在后端控制台中会显示登录密码,当然也可以通过配置去设置好密码,就不用每次都是随机生成。当然,这样的场景远远不够我们的使用,我们需要自己去扩展完成自己想要的功能。

SpringSecurity通过长长的过滤器链完成认证与鉴权,具体看一下一张图片:
在这里插入图片描述
此图来自 _江南一点雨 文章地址:Spring Security 工作原理概览 写的非常详细

Sa-Token

在这里插入图片描述
官方地址:https://sa-token.dev33.cn/doc/index-backup.html#/
Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。
Sa-Token是一个近年来出来的开源安全框架,相比ShiroSpringSecurity来说是一个好用又简单的安全框架,只需要少少的配置就能完成SpringSecurity的相关功能,并且各种继承,方便好用。
可以简单看一下satoken的功能:

  • 登录认证 —— 单端登录、多端登录、同端互斥登录、七天内免登录
  • 权限认证 —— 权限认证、角色认证、会话二级认证
  • Session会话 —— 全端共享Session、单端独享Session、自定义Session
  • 踢人下线 —— 根据账号id踢人下线、根据Token值踢人下线
  • 账号封禁 —— 指定天数封禁、永久封禁、设定解封时间
  • 持久层扩展 —— 可集成Redis、Memcached等专业缓存中间件,重启数据不丢失
  • 分布式会话 —— 提供jwt集成、共享数据中心两种分布式会话方案
  • 微服务网关鉴权 —— 适配Gateway、ShenYu、Zuul等常见网关的路由拦截认证
  • 单点登录 —— 内置三种单点登录模式:无论是否跨域、是否共享Redis,都可以搞定
  • OAuth2.0认证 —— 轻松搭建 OAuth2.0 服务,支持openid模式
  • 二级认证 —— 在已登录的基础上再次认证,保证安全性
  • Basic认证 —— 一行代码接入 Http Basic 认证
  • 独立Redis —— 将权限缓存与业务缓存分离
  • 临时Token验证 —— 解决短时间的Token授权问题
  • 模拟他人账号 —— 实时操作任意用户状态数据
  • 临时身份切换 —— 将会话身份临时切换为其它账号
  • 前后台分离 —— APP、小程序等不支持Cookie的终端
  • 同端互斥登录 —— 像QQ一样手机电脑同时在线,但是两个手机上互斥登录
  • 多账号认证体系 —— 比如一个商城项目的user表和admin表分开鉴权
  • 花式token生成 —— 内置六种Token风格,还可:自定义Token生成策略、自定义Token前缀
  • 注解式鉴权 —— 优雅的将鉴权与业务代码分离
  • 路由拦截式鉴权 —— 根据路由拦截鉴权,可适配restful模式
  • 自动续签 —— 提供两种Token过期策略,灵活搭配使用,还可自动续签
  • 会话治理 —— 提供方便灵活的会话查询接口
  • 记住我模式 —— 适配[记住我]模式,重启浏览器免验证
  • 密码加密 —— 提供密码加密模块,可快速MD5、SHA1、SHA256、AES、RSA加密
  • 全局侦听器 —— 在用户登陆、注销、被踢下线等关键性操作时进行一些AOP操作
  • 开箱即用 —— 提供SpringMVC、WebFlux等常见web框架starter集成包,真正的开箱即用

看一下satoken的功能结构图
在这里插入图片描述
认证流程与SpringSecurity大同小异
在这里插入图片描述
Satoken封装了许多的api,只需要调用api就能够完成认证登录,通过拦截器进行权限验证,对于权限校验也可以使用注解方式,比较方便。权限判断通过实现StpInterface类并注入spring管理,实现其getPermissionList和getRoleList方法就能够得到权限。还有更多功能可以观看官方文档。

标签:框架 安全 权限
C' Chain Chain '念念不忘@有回音的双向链表
« 上一篇 2022-09-24
  • C' Chain Chain '念念不忘@有回音的双向链表
    0阅读 0条评论 个赞
    1.前言写过一篇与单链表相关的博文(https://blog.51cto.com/gkcode/5681771),实际应用中,双向循环链表的功能更强大。单链表中,查询一个已知结点的后驱结点的时间复杂……
  • 如何?NET核心Web APi类库内嵌运行?
    0阅读 0条评论 个赞
    话题我们知道在.NETFramework中可以嵌入运行WebAPi,那么在.NETCore(.NET6+称之为.NET)中如何内嵌运行WebApi呢,在实际项目中这种场景非常常见,那么我们本……
  • 尝试阅读和理解linux shell脚本
    0阅读 0条评论 个赞
    从头一二去阅读语法和命令说明,对于脚本小白来说比较枯燥,难以坚持,所以这里选择对一份完整的shell脚本代码来逐行逐段解读,希望可以一渡小白,帮助我们快速进入脚本的大门_。司机要开车了:#!/bin/……
  • NET通过代码部署多域Https(SSL)
    0阅读 0条评论 个赞
    在上一个文章中,传送门,给大家介绍了怎么在配置文件中使用Kestrel部署Https,正好今天有小伙伴稳问到:可以通过代码的方式实现Kestrel的Https的部署吗?答案是肯定的,我们这次……
  • SQL Server死锁
    0阅读 0条评论 个赞
    SQLServer死锁多个事务之间互相等待对方的资源,导致这些事务永久等待注意是永久等待,而非长事务死锁的4个条件互斥条件(Mutualexclusion):资源不能被共享,只能由一个进程使用。请……
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
  • 卡夫卡数据丢失问题优化总结及重复消费原因分析(一)
    0阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • [设计模式] Java设计模式-工厂模式
    9阅读 0条评论 个赞
    目录【设计模式】Java设计模式-工厂模式简介1、普通工厂(SimpleFactory)模式①、定义类②、定义简单的工厂类③、实例2、抽象工厂(AbstractFactory)模式①、定义类②、……
  • Web API版本控制 网络6
    0阅读 0条评论 个赞
    为了了解ASP.NETCoreWebAPI的版本控制,我们必须了解API中的一些版本控制策略,然后将API版本控制与OpenAPI集成,以便我们可以在SwaggerUI中看到版本化的API。1……
  • 与docker卷一起安装的注意事项
    0阅读 0条评论 个赞
    目录Content使用数据卷(volume)使用挂载点(共享宿主目录,bindmount)目录兼容性可移植性目录替代相关指定位置--volume与--mount区别镜像保存docker-compos……
  • 颤振| |理解什么是状态管理
    0阅读 0条评论 个赞
    目录1.什么是状态管理2.不同的状态管理分类3.Flutter中的有状态组件和无状态组件4.Flutter中有哪些可以做到状态管理5.为什么要使用状态管理6.常见的状态管理框架有哪些7.状态管理总结&……
  • SpringMVC 01: SpringMVC第一个SpringMVC项目
    0阅读 0条评论 个赞
    SpringMVCSpringMVC概述:是基于MVC开发模式的框架,用来优化控制器是Spring家族的一员,也具备IOC和AOP什么是MVC:它是一种开发模式,是模型视图控制器的简称,所有的web应……
  • 你知道信息架构图和功能架构图的区别吗?
    0阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • 如何获取Yarn和Spark UI的界面索引信息
    1阅读 0条评论 个赞
    .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
  • SQL Server死锁
    0阅读 0条评论 个赞
    SQLServer死锁多个事务之间互相等待对方的资源,导致这些事务永久等待注意是永久等待,而非长事务死锁的4个条件互斥条件(Mutualexclusion):资源不能被共享,只能由一个进程使用。请……
  • NET通过代码部署多域Https(SSL)
    0阅读 0条评论 个赞
    在上一个文章中,传送门,给大家介绍了怎么在配置文件中使用Kestrel部署Https,正好今天有小伙伴稳问到:可以通过代码的方式实现Kestrel的Https的部署吗?答案是肯定的,我们这次……
  • 卡夫卡开启简单认证和安全层认证【窗口e详细版】
    0阅读 0条评论 个赞
    一、JAAS配置#Zookeeper配置JAASzookeeper环境下新增一个配置文件,如zk_server_jass.conf,内容如下:Server{org.apache.kafka.comm……
  • 码头工人日常工作的常用命令
    0阅读 0条评论 个赞
    容器生命周期管理Docker创建新容器并运行[run]语法:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]OPTIONS说明:-astdin:指定标准输入……
  • 百度工程师教你玩设计模式(工厂模式)
    5阅读 0条评论 个赞
    作者|北极星小组想要写好代码,设计模式(DesignPattern)是必不可少的基本功,设计模式是对面向对象设计(ObjectOrientedDesign)中反复出现的问题的解决方案,本篇介绍……
  • 从0构建SQL Server AlwaysOn第3章(配置AlwaysOn)
    0阅读 0条评论 个赞
    第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnblogs.com/lyhabc/p/4682028.html第三篇htt……
  • 图系列中推荐算法的召回与粗排实践
    3阅读 0条评论 个赞
    一、转转推荐算法介绍1.1什么是推荐系统?1.2转转推荐主要场景及流程二、图算法原理介绍及转转实践2.1经典GraphEmbedding方法:DeepWalk2.2结构性与同质性:node2……
  • 企业操作和维护实践-丢弃docker构建
    15阅读 0条评论 个赞
    本章目录目录0x00前言简述快速介绍什么是Kaniko?为啥用Kaniko?Kaniko是如何工作的?Kaniko已知功能问题kaniko构建上下文kaniko缓存构建0x01部署使用环境……
  • 国产超级大脑———rk 3568核心板!
    13阅读 0条评论 个赞
    从1956年麦卡锡首次提出“人工智能(AI)”的概念至今,人工智能已有66年的历史,而人工智能真正的崛起却是在最近的10年。随着消费电子行业的快速发展和激烈竞争,人工智能再度流行起来,尽管许多企业对A……
  • 让自己更有价值的5种能力
    0阅读 0条评论 个赞
    如何让自己更值钱?回答这个问题,需要用到黄金圈理论。什么是黄金圈理论?黄金圈理论,是国际知名营销专家、作家SimonSinek在2011年提出的,这是一种由内向外的思维模式。黄金圈理论提倡由Why、……
  • SQL Server复制:事务发布
    0阅读 0条评论 个赞
    一、背景在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取……
  • 尝试阅读和理解linux shell脚本
    0阅读 0条评论 个赞
    从头一二去阅读语法和命令说明,对于脚本小白来说比较枯燥,难以坚持,所以这里选择对一份完整的shell脚本代码来逐行逐段解读,希望可以一渡小白,帮助我们快速进入脚本的大门_。司机要开车了:#!/bin/……
最近发布资讯
更多