一文上手SpringSecurity【一】

news2024/11/18 7:57:35

一、概述

1.1 安全框架概述

作为企业级应用,都存在着各式各样的认证(用户基本信息认证、第三方认证、LDAP认证)与权限(访问权限、数据权限)需求,他们作为系统整体架构的基础建设部分,决定了产品的稳定性与安全性。随着技术的发展,针对系统攻击的各种技术以及机器性能不断提升,在社区中也催生了大量的安全框架,其中 Shiro 和 Spring Security 就是 J2EE 方向典型的代表。

Spring 是非常流行和成功的 Java 应用开发框架, Spring Security 正是 Spring 家族中的成员。 Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。

安全方面的两个主要区域是“认证” 和“授权” (或者访问控制), 一般来说, Web 应用的安全性包括用户认证(Authentication)和用户授权( Authorization) 两个部分, 这两点也是 Spring Security 重要核心功能。

  1. 用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问
    该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。 通俗点说就是系统认为用户是否能登录。
  2. 用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户
    所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。 通俗点讲就是系统判断用户是否有权限去做某些事情。

1.2 Spring Security简介

趋势

作为 Apache 的顶级项目的 Shiro 差不多能够满足企业级应用系统对于安全性以及稳定性的要求,但是因为出身的问题,关注度持续走低。其关注度以及市场使用率远远不及 Spring Security。

1.3 认证与授权概念

认证与授权是所有的权限控制都有的概念,并不是 Spring Security 所独有的概念。

1.3.1 认证【Authentication】

认证解决的是【我是谁】的问题.

认证

1.3.2 授权【Authorization】

授权解决的是【能干啥】的问题

授权

1.4 权限管理中的相关概念

1.4.1 认证主体

英文单词: principal
使用系统的用户或设备或从其他系统远程登录的用户等等。简单说就是谁使用系统谁就是主体。

1.4.2 认证

英文单词: authentication
权限管理系统确认一个主体的身份,允许主体进入系统。简单说就是“主体”证
明自己是谁。笼统的认为就是以前所做的登录操作。

1.4.3 授权

英文单词: authorization
将操作系统的“权力”“授予”“主体”,这样主体就具备了操作系统中特定功能的能力。所以简单来说,授权就是给用户分配权限。

二、Spring Security入门示例

2.1 版本说明

  • Java 17
  • Spring boot 3.2.4
  • IDEA 2024.x

【说明】: 之后,若无其它说明,所采用的版本号都是如此.

2.2 测试环境搭建

新建一个spring boot工程, 然后编写一个接口,用于测试, 如下所示:

@RestController
public class UserController {

    @GetMapping("/hello")
    public String hello(){
        return "hello, spring security!";
    }
}

启动服务,测试接口是否正常

启动服务
访问接口
访问接口

引入spring security依赖, 再次访问

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

再次访问接口:
2
生成的密码在控制台所输出的日志当中:
password
输入用户名称和密码
input
登录之后,就可以访问接口了

认证成功

三、小总结

本文对安全框架作做了介绍,演示了spring security的入门程序,之后的文章当中,逐步学习spring security其它知识.

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

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

相关文章

[通信原理]确知信号1:傅里叶分析 × 确知信号

傅里叶分析 对于周期函数可以用直流分量、正弦函数和余弦函数构成的无穷级数来表示&#xff0c;这些函数是正交的&#xff0c;意味着它们之间没有任何相关性。‌ 必须指出&#xff0c;并非任意周期信号都能进行傅里叶级数展开&#xff0c;函数需满足狄利赫里条件才能被展开。…

npj Climate and Atmospheric Science I 新疆生地所陈亚宁研究员团队孙帆博士后发表最新研究进展

题目&#xff1a;The dominant warming season shifted from winter to spring in the arid region of Northwest China 主导中国西北干旱区升温的季节已从冬季转变为春季 期刊&#xff1a;npj Climate and Atmospheric Science IF及分区&#xff1a;实时IF/JCR分区/中科院分…

土耳其阿纳多卢通讯社 (土耳其官方通讯社AnadoluAgency)发布新闻稿-新闻媒体分发平台

土耳其阿纳多卢通讯社 &#xff08;土耳其官方通讯社AnadoluAgency&#xff09;发布新闻稿-分发 大舍传媒 土耳其阿纳多卢通讯社&#xff08;Anadolu Agency&#xff09;创建于1920年&#xff0c;是土耳其的主要通讯社之一。它不仅在国家层面上发挥重要作用&#xff0c;还通过…

React学习笔记(2.0)

React事件绑定 语法&#xff1a;在对应标签上书写on事件&#xff08;比如onClick,onChange&#xff09;&#xff0c;注意和原生的事件区分&#xff0c;React的事件首字母要大写。 const handleChange(e:any)>{console.log(e);console.log(change事件触发);// e不是原生事件…

2、Spring Boot 3.x 集成 Feign

一、前言 本篇主要是围绕着两个点&#xff0c;1、集成 Feign&#xff0c;2、分离feign接口层&#xff0c;独立服务&#xff1b; 还有一点就是上篇文章的服务 iot-channel、system-server 服务名称调整成为了 chain-iot-channel、chain-system二、搭建 chain-common 服务 pom.…

推荐5款ai论文写作常用软件分享!轻松一键生成

在当前的学术研究和写作领域&#xff0c;AI论文写作工具的应用越来越广泛。这些工具不仅能够提高写作效率&#xff0c;还能帮助研究人员快速生成高质量的论文内容。以下是五款值得推荐的AI论文写作软件&#xff0c;它们可以帮助你轻松一键生成高质量的论文初稿。 一、千笔-AIP…

【IEEE PDF eXpress】格式不对

目录 一、问题二、解决方法 一、问题 word的文档&#xff0c;用IEEE PDF eXpress网站生成pdf后&#xff0c;提交论文出现错误&#xff1a; Document validation failed due to the following errors: Content exceeds IEEE template margins for its format (Page 1:Bottom).…

猫咪掉毛太严重,有什么好办法?不踩雷宠物空气净化器选购、测评指南

我家是勤梳毛空气净化器吸猫毛&#xff0c;我家三只猫&#xff0c;但来我家的朋友都说是感受不到我家有猫的。进门没毛、没味的&#xff0c;你可以试试。 现在到换毛季了&#xff0c;掉毛情况会更加严重&#xff0c;为了自己的呼吸道健康&#xff0c;千万要重视起来。 猫身上…

具身智能综述:鹏城实验室中大调研近400篇文献,深度解析具身智能

具身智能是实现通用人工智能的必经之路&#xff0c;其核心是通过智能体与数字空间和物理世界的交互来完成复杂任务。近年来&#xff0c;多模态大模型和机器人技术得到了长足发展&#xff0c;具身智能成为全球科技和产业竞争的新焦点。然而&#xff0c;目前缺少一篇能够全面解析…

Redis-常见数据类型(修改ing)

1. 预备知识 redis按照键值对的方式存储数据 1.1 基本全局命令 KEYS 返回所有满⾜样式&#xff08;pattern&#xff09;的key,⽀持如下统配样式: h?llo 匹配hello,hallo,hxlloh*llo 匹配hllo,heeeelloh[ae]llo 只匹配hallo helloh[^e]llo 匹配除hello,heee..llo以外的h[a…

【笔记】数据结构12

文章目录 2013年408应用题41方法一方法二 看到的社区的一个知识总结&#xff0c;这里记录一下。 知识点汇总 2013年408应用题41 解决方法&#xff1a; 方法一 &#xff08;1&#xff09;算法思想 算法的策略是从前向后扫描数组元素&#xff0c;标记出一个可能成为主元素的元…

Learn OpenGL In Qt之炫酷进度条

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~ 公众号&#xff1a; C学习与探索 | 个人主页&#xff1a; rainInSunny | 个人专栏&#xff1a; Learn OpenGL In Qt 文章目录 设计实现目录结构需要哪些类接口设计关键函数 实现效果Shader解析GLSL基本函数clampsmoothstep 实现分析效…

【Python】Beaker:轻量级缓存与会话管理的解决方案

Beaker 是一个简单、灵活的 Python 库&#xff0c;主要用于缓存管理和会话管理。作为一个开源项目&#xff0c;Beaker 提供了多种缓存存储后端&#xff0c;帮助开发者在应用中高效管理缓存数据&#xff0c;同时支持会话存储&#xff0c;适合 Web 应用中的用户状态管理。其轻量级…

WebAPI编程(第一天,第二天)

WebAPI编程&#xff08;第一天&#xff0c;第二天&#xff09; day01 - Web APIs1.1. Web API介绍1.1.1 API的概念1.1.2 Web API的概念1.1.3 API 和 Web API 总结 1.2. DOM 介绍1.2.1 什么是DOM1.2.2. DOM树 1.3. 获取元素1.3.1. 根据ID获取1.3.2. 根据标签名获取元素1.3.3. H5…

端侧多模态 | 不到10亿参数的端侧Agent竟媲美GPT-4V?AI手机不远了!

引言 简介 相关工作 模型 编码视觉信息 函数token 多阶段训练 模型评估 发送邮件 发送短信 Google搜索 Amazon购物 智能回收 失物招领 室内设计 Instacart购物 DoorDash(外卖平台)示例 动物护理 总结 引言 青山一道同云雨&#xff0c;明月何曾是两乡。 小伙…

王道-数据结构

1 设数组data[m]作为循环队列的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为____ 答案:D 解析:队列的头指针指向队首元素的实际位置,因此出队操作后,头指针需向上移动一个元素的位置。循环队列的容量为m,所以头指针front加1以后,需…

CVPR论文《DSVT: Dynamic Sparse Voxel Transformer with Rotated Sets》

1、整体思维导图 2、个人收获 这篇论文在理论上对于我来说可能就是让我大致了解了这个领域&#xff08;因为我的研究方向不是这方面&#xff09;&#xff0c;看完以后也没有看得特别懂&#xff08;说实话&#xff09;。 更多的收获应该是在论文的写作思路上吧 3、下面欣赏论…

分享几个可以免费使用GPT的网站【2024年必备】

1、ChatGPT 链接&#xff1a;点击直达 这个网站可以免费使用GPT4.0和GPT-4o模型&#xff0c;反应速度也很快&#xff0c;还有AI绘画可以体验喔~ 推荐指数&#xff1a;⭐⭐⭐⭐⭐ 2、AI智慧岛 链接&#xff1a;点击直达 推荐指数&#xff1a;⭐⭐⭐⭐⭐ 这个网站可以免费使…

Linux基础(四):文件权限与目录配置

1.使用者、群组、其他人概念 linux下每个文件都有三种权限类别&#xff0c;分别为使用者&#xff08;User&#xff09;、群组&#xff08;Group&#xff09;、其他人&#xff08;Others&#xff09;。这三种权限类别针对的是账号&#xff0c;也就是登录这个Linux系统的用户的账…

告别盲目推广!Xinstall为社交App带来精准流量

在移动互联网时代&#xff0c;社交类App如雨后春笋般涌现&#xff0c;但如何在众多竞争者中脱颖而出&#xff0c;成为用户首选&#xff1f;这不仅是开发者们面临的难题&#xff0c;也是推广者必须攻克的难关。今天&#xff0c;我们就来揭秘一种全新的社交类App推广策略&#xf…