Spring Security简介

什么是Spring Security  

         Spring Security是 Spring提供的安全认证服务的框架。 使用Spring Security可以帮助我 们来简化认证和授权的过程

        官网:Spring Security

对应的maven坐标:

<!--security启动器-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>

权限控制

认证和授权概念

问题1:在生产环境下我们如果不登录后台系统就可以完成这些功能操作吗?

答案显然是否定的,要操作这些功能必须首先登录到系统才可以。

问题2:是不是所有用户,只要登录成功就都可以操作所有功能呢?

答案是否定的,并不是所有的用户都可以操作这些功能。不同的用户可能拥有不同的权限,这就需要进行授权了。

认证:系统提供的用于识别用户身份的功能,通常提供用户名和密码进行登录其实就是在进行认证,认证的目的是让系统知道你是谁。

授权:用户认证成功后,需要为用户授权,其实就是指定当前用户可以操作哪些功能。

权限模块数据模型(5张表和七张表)

        前面已经分析了认证和授权的概念,要实现最终的权限控制,需要有一套表结构支撑:

        用户表user、权限表permission、角色表role、菜单表menu、用户角色关系表 user_role、角色权限关系表role_permission、角色菜单关系表role_menu。

5张表

用户表user(name,password):阿三,阿五
        用户角色关联表user_role(user_id,role_id)
角色表role(name):院长,医生,护士
        角色权限许可关联表relo_permission(role_id,permission_id)
权限许可表permission(name):(菜单)检查项管理,检查组管理;(菜单内按钮)删除检查项,编辑检查组

7张表

用户表user(name,password):阿三,阿五
        用户角色关联表user_role(user_id,role_id)
角色表role(name):院长,医生,护士
        角色菜单许可关联表roel_menu(role_id,menu_id)
菜单许可表menu(name): 检查项管理,检查组管理
        角色按钮许可关联表role_permission(role_id,permission_id)
按钮许可表表permission(name):删除检查项,编辑检查组

认证过程:只需要用户表就可以了,在用户登录时可以查询用户表user进行校验,判断用户输入的用户名和密码是否正确。

授权过程:用户必须完成认证之后才可以进行授权,首先可以根据用户查询其角色,再根据角色查询对应的菜单,这样就确定了用户能够看到哪些菜单。然后再根据用户的角 色查询对应的权限,这样就确定了用户拥有哪些权限。所以授权过程会用到上面5张表或者7张表。

同款产品对比

常用的权限框架除了Spring Security,还有Apache的shiro框架。

SpringSecurity

特点:

⚫ 和 Spring 无缝整合。

⚫ 全面的权限控制。

⚫ 专门为 Web 开发而设计。

​ ◼旧版本不能脱离 Web 环境使用。

​ ◼新版本对整个框架进行了分层抽取,分成了核心模块和 Web 模块。单独引入核心模块就可以脱离 Web 环境。

⚫ 重量级。

Shiro

Apache 旗下的轻量级权限控制框架。

特点:

⚫ 轻量级。Shiro 主张的理念是把复杂的事情变简单。针对对性能有更高要求

的互联网应用有更好表现。

⚫ 通用性。

​ ◼好处:不局限于 Web 环境,可以脱离 Web 环境使用。

​ ◼缺陷:在 Web 环境下一些特定的需求需要手动编写代码定制。

        Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用的并不多,安全管理这个领域,一直是 Shiro 的天下。

        相对于 Shiro,在 SSM 中整合 Spring Security 都是比较麻烦的操作,所以,Spring Security 虽然功能比 Shiro 强大,但是使用反而没有 Shiro 多(Shiro 虽然功能没有Spring Security 多,但是对于大部分项目而言,Shiro 也够用了)。

        自从有了 Spring Boot 之后,Spring Boot 对于 Spring Security 提供了自动化配置方案,可以使用更少的配置来使用 Spring Security。

        因此,一般来说,常见的安全管理技术栈的组合是这样的:

• SSM + Shiro

• Spring Boot/Spring Cloud + Spring Security

以上只是一个推荐的组合而已,如果单纯从技术上来说,无论怎么组合,都是可以运行的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++大学教程(第九版)7.28 回文(递归和非递归实现)

文章目录 题目代码运行截图 题目 &#xff08;回文&#xff09;回文是一种字符串&#xff0c;正读和反读该字符都会得到同样的结果。回文的例子包括“radar”和able was ierei saw elba”等。请编写一个递归函数testPalindrome,如果一个字符串是回文&#xff0c;则返回true;否…

Python入门到精通(五)——Python数据容器

Python数据容器 前言 一、list 列表 1、定义 2、列表的下标索引 3、常用操作 4、列表的遍历 二、tuple 元组 1、定义 2、常用操作 三、str 字符串 1、定义 2、常用操作 四、容器序列的切片 五、set 集合 1、定义 ​编辑 2、常用操作 六、dict 字典、映射 1、…

Celery入门

Celery 官网&#xff1a;Celery - Distributed Task Queue — Celery 5.3.6 documentation Celery 官方文档英文版&#xff1a;Celery - Distributed Task Queue — Celery 5.4.0rc1 documentation Celery 官方文档中文版&#xff1a;Celery - 分布式任务队列 — Celery 3.1.…

AUTOSAR内存篇 -内存访问(MemAcc)

文章目录 功能介绍关键特性功能元素内存地址转换内存映射限制内存访问协调Job管理Job处理Job状态Job结果硬件特定的服务Burst模式支持通用锁机制动态内存驱动处理动态内存驱动激活服务调用模块处理

chronyd

chronyd https://chrony-project.org/doc/4.1/chrony.conf.html 无时钟源配置可参考 : Isolated networks 通过互联网同步的两台机器之间的典型精度在几毫秒内&#xff1b; 在 LAN 上&#xff0c;精度通常为数十微秒。 使用硬件时间戳或硬件参考时钟&#xff0c;亚微秒精度…

地图不仅引路:深探Java中Map接口的藏宝图

在Java编程中&#xff0c;处理键值对数据结构的需求十分普遍。Java集合框架&#xff08;Java Collections Framework&#xff09;提供了一个强大的接口Map&#xff0c;专门用来存储和操作一组键值对。本文将带你深入理解Java中的Map接口&#xff0c;包括它的工作原理、常用实现…

Linux网络编程——网络初识

文章目录 1. 网络协议初识1.1 为什么要有网络协议1.2 协议分层 2. OSI七层模型3. TCP/IP五层&#xff08;或四层&#xff09;模型4. 网络传输基本流程5. 以太网通信 1. 网络协议初识 1.1 为什么要有网络协议 早期计算机是独立的&#xff0c;如果要进行数据交互&#xff0c;就…

Jtti:怎么使用shell脚本查询数据库输出文件

在使用 Shell 脚本查询数据库并输出结果到文件时&#xff0c;通常会使用 sqlcmd&#xff08;对于 Microsoft SQL Server&#xff09;或 mysql&#xff08;对于 MySQL&#xff09;等命令行工具。下面是一个简单的示例&#xff0c;演示如何使用 Shell 脚本查询数据库并将结果输出…

超越人类上限的策划:百度输入法在候选词区域植入广告

一位 V2EX 用户最新发帖称&#xff0c;百度输入法的最新版本中引入了一个新功能&#xff0c;将广告直接植入到候选词区域。 具体表现为&#xff0c;当用户输入某些关键词时&#xff0c;候选词区域会显示与输入内容相关的广告链接。例如&#xff0c;用户输入“招商”时&#xf…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树(代码python实践)

文章目录 第5章 决策树—python 实践书上题目5.1利用ID3算法生成决策树,例5.3scikit-learn实例《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树 第5章 决策树—python 实践 import numpy as np import pandas as pd import matplotlib.pyplot as plt …

手动throw异常对象

手动throw异常对象 1.为什么需要手动抛出异常对象&#xff1f;2.如何理解"自动 vs 手动"抛出异常对象&#xff1f;3.如何实现手动抛出异常&#xff1f;4.注意点&#xff1a;throw后的代码不难执行&#xff0c;编译不通过。5.面试题&#xff1a;throw和throws的区别&a…

能源巨头施耐德电气遭遇勒索软件攻击

Bleeping Computer 网站消息&#xff0c;媒体透露能源管理和自动化巨头施耐德电气公司近期遭到 Cactus 勒索软件攻击&#xff0c;导致公司大量数据被盗。 施耐德电气是一家法国跨国公司&#xff0c;主要生产能源和自动化产品&#xff0c;从大卖场的家用电气元件到企业级工业控制…

后序遍历的线索化二叉树

对于后序遍历&#xff0c;需要明确&#xff0c;往往叶子结点&#xff0c;只能指向右子树&#xff08;如果右子树存在的情况&#xff09;&#xff0c;或者指向该结点&#xff08;因为这才是后序遍历&#xff09;&#xff0c;同样在进行退出到前一次递归的时候&#xff0c;我们要…

怎么控制Element的数据树形表格展开所有行;递归操作,打造万能数据表格折叠。

HTML <el-button type"success" size"small" click"expandStatusFun"> <span v-show"expandStatusfalse"><i class"el-icon-folder-opened"></i>展开全部</span><span v-show"expan…

THM学习笔记——Nmap

Nmap是一款用于网络发现和安全审计的网络安全工具&#xff0c;通常情况下&#xff0c;Nmap用于&#xff1a; 列举网络主机清单 管理服务升级调度 监控主机 服务运行状况 Nmap可以检测目标主机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类…

如何使用Python+Flask搭建本地Web站点并结合内网穿透公网访问?

文章目录 前言1. 安装部署Flask并制作SayHello问答界面2. 安装Cpolar内网穿透3. 配置Flask的问答界面公网访问地址4. 公网远程访问Flask的问答界面 前言 Flask是一个Python编写的Web微框架&#xff0c;让我们可以使用Python语言快速实现一个网站或Web服务&#xff0c;本期教程…

将Vue2中的console.log调试信息移除

前端项目构建生产环境下的package时&#xff0c;咱们肯定要去掉development环境下的console.log&#xff0c;如果挨个注释可就太费劲了&#xff0c;本文介绍怎么使用 babel-plugin-transform-remove-console 移除前端项目中所有的console.log. 1. 安装依赖 npm install babel-…

OpenAI发布新模型!ChatGPT性能重磅提升,API大幅降价,GPT-4 「变懒」被修复

OpenAI 对ChatGPT进行了大更新&#xff1a;推出了新一代的嵌入模型&#xff0c;对GPT-4 Turbo模型进行了更新&#xff0c;并将很快对GPT-3.5 Turbo的API进行大幅降价&#xff0c;GPT-4「变懒」行为也被修复。 接下来二狗就带大家看看ChatGPT的这次详细更新。 推出新的嵌入模型…

2024年华为OD机试真题-API集群负载统计-Python-OD统一考试(C卷)

题目描述: 某个产品的RESTful API集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。 RESTful API的由多个层级构成,层级之间使用 / 连接,如 /A/…

电脑护眼模式怎么设置?4个有效方法保护眼睛!

“我感觉每天使用电脑的时间久了&#xff0c;眼睛总是不太舒服。电脑护眼模式怎么设置呢&#xff1f;有什么比较好用的方法可以推荐吗&#xff1f;” 如果长时间使用电脑&#xff0c;或许会让我们感到用眼疲劳。电脑护眼模式是现代人常用的电脑设置之一&#xff0c;它能有效地减…