Spring Security3.0.1版本
前言:
抽象Spring Security3.0上一篇
在上一篇中,我们完成了对Security导入,快速入门,和对自动配置的简单验证
对登录流程的分析和Security基本原理
补充:
先解决上一篇留下的问题,端口和端点的区别
端点的英文是end-point
端口的英文是port
在官方文档中,任何端点官方定义,点进去后↓
大标题叫授权 HttpServletRequest
端点的定义问题就解决了,我们采用官方对端点的定义是HttpServletRequest
端点是个名,它的核心所描述的是HttpServletRequest,一种标准下请求路径
端口所描述的是什么呢?
上一篇说过用bug补充定义
这期解释下怎么用bug补充,而不是单单看bug
首先这个bug需要可以复刻,不能复刻你连怎么发生的都不知道
其次就是日志内容,idea里的日志和浏览器F12的网路配置要会看
还记得我们是怎么找到端口的吗?
拜托,你肯定早忘了,所以下面的内容是让你回忆起如何找到端口,并通过端口进入Security官方提供的登录页面
第一步,启动项目
第二步,查看日志,找到端口的英文单词
这两个日志对应的内容是一样的
然后我们用这个端口去访问Security的页面
127.0.0.1:8084(port) / localhost:8084(port)
第一步,随便打开一个浏览器
第二步,输入127.0.0.1:8084(port) / localhost:8084(port) 其中一个
ps:确保你的项目是启动的
它会自动跳转到login端点
试试看, 把port删掉,再运行
回车
哦!
拒绝访问了,再加上它port,注意是冒号:后面跟port
这个东西有它可以访问端点,没有它不能访问端点,这个像什么呢?
钥匙~
不知道你们有没有玩过这种游戏,就是那种可以选节点然后触发不同剧情的游戏
开局,就是我们使用端口进入游戏,后面的每个节点步骤就是端点
几乎所有游戏都可能这么去理解,开启客户端调用端口,选择模式选用端点
想更进一步了解的可以看看这篇文章访问百度的过程详解_访问百度网站查询资料时,计算机网络经过了哪些步骤来获取资料?-CSDN博客
总结:端点与端口是钥匙和门的关系
正片:
到了这里Security官方的入门已经完成了,进入下一页,才怪
@EnableWebSecurity
@Configuration
public class DefaultSecurityConfig {@Bean@ConditionalOnMissingBean(UserDetailsService.class)InMemoryUserDetailsManager inMemoryUserDetailsManager() { String generatedPassword = // ...;return new InMemoryUserDetailsManager(User.withUsername("user").password(generatedPassword).roles("ROLE_USER").build());}@Bean@ConditionalOnMissingBean(AuthenticationEventPublisher.class)DefaultAuthenticationEventPublisher defaultAuthenticationEventPublisher(ApplicationEventPublisher delegate) { return new DefaultAuthenticationEventPublisher(delegate);}
}
这串代码还没看呢。。。
Spring Boot Security Auto Configuration
Spring Boot安全自动配置 - - - - - 这个是官方的小标题
配置的内容是什么?对应上面的那一大坨Hello Spring Security :: Spring Security Reference (springdoc.cn)官方文档
好了,现在才是真正意义上完成了第二步(了解Security的自动配置)
第三步(认识架构)
第一步,还是打开官方文档
架构 :: Spring Security Reference (springdoc.cn)
第二步,看大标题
架构
第三步,开始看内容
本节讨论了 Spring Security 在基于 Servlet 的应用程序中的高级架构。我们在参考资料中的 认证(Authentication)、授权(Authorization) 和 防止漏洞 部分建立了这种高层次的理解。
这段话的核心只有一个,Spring Security 在基于Servlet(Java Web)的应用程序中的高级架构。只要看懂了这句话,整篇的文章易如反掌
先拆分:
原文:This section discusses Spring Security’s high-level architecture within Servlet based applications
Spring Security
Service应用程序
高级架构
将他们在组合一次
Spring Security基于Service应用程序的高级架构
这个翻译一点都不信达雅(吐槽)
This section discusses Spring Security’s high-level architecture within Servlet based applications
看看原文,我们来一下离谱的中文翻译版本
本节将讨论 Spring Security 的高层架构 基于 Servlet 的应用程序
这些就没那么绕了,把上面的图片更新一下
奥~原来这句话的核心只有一个,那就是Z高级架构(high-level architecture)
所谓的Spring Security,Servlet 的应用程序 只不过是对高层架构的形容,障眼法
high-level architecture 高层架构,哇哦~
单看中文好简单!一点都不难~
拷贝啦,真的好难啊,又是高级架构又是高层架构,这他丫谁懂啊,家人们!
有时候真经只有寥寥几字但是却包含了全部内容,实际上high-level architecture这个词是一个计算机应用术语,是一个专有名词——高层体系结构才是它最贴近原文的翻译
高层体系结构(High Level Architecture,HLA)是从体系结构上建立这样一个框架,它能尽量涵盖M&S领域中所涉及的各种不同类型的仿真系统,并利于它们之间的互操作和重用。同时能适应不断发展中的新技术,来满足复杂大系统的仿真需要。对采用HLA体系结构的仿真系统,仿真系统的运行和仿真成员之间的交互和协调都是通过运行支撑系统RTI (Run Time Infrastructure)来实现的。 RTI的实现及其运行的性能好坏,是分布交互仿真系统实现的关键。
就这么一段,没错就这么一段,这么一看貌似更复杂了,方向选错路白走。
很显然这个描述需要有一定悟性,我悟性有点低,悟不出,所以换个方向,我们直接用他们的总结,如果您有水平,可以试着从这段句话分析出总结
HLA体系结构是一个开放的、支持面向对象的体系结构。它采用面向对象的方法学来分析系统,建立不同层次和粒度的对象模型,从而促进了仿真系统和仿真部件的重用。 HLA的关键组成部分是接口规范,它定义了在一个联邦演练中,支持联邦成员通过RTI实现成员之间相互交互、协调和协同作业的标准服务。它的最显著的特点就是通过提供通用的、相对独立支撑服务程序,将应用层同其底层支撑环境功能分离开,即将具体的仿真功能实现、仿真运行管理和底层传输三者分离开来,隐蔽了各自的实现细节,可以使各部分相对独立的开发,最大程度地利用各自领域的最新技术来实现标准的功能和服务,适应新技术的发展。同时,可实现应用系统的即插即用,易于新的仿真系统的集成和管理,并针对不同的用户需求和不同的应用目的,实现联邦快速、灵活的组合和重配置,保证了联邦范围内的互操作和重用。
RTI作为联邦执行的核心,其功能类似于某种特殊目的的分布式操作系统,跨计算机平台、操作系统和网络系统,为联邦成员提供运行所需的服务。 RTI提供六种服务,即联邦管理、声明管理、对象管理、所有权管理、时间管理和数据分布管理等服务。
哦↑乌↓
这段特点就清晰多了
HLA体系结构是一个开放的、支持面向对象的体系结构。
我们的Servlet 的应用程序就是一个体系结构,剩下的内容都在描述这个体系结构是怎么样的
HLA的关键组成部分是接口规范,它定义了在一个联邦演练中,支持联邦成员通过RTI实现成员之间相互交互、协调和协同作业的标准服务。
这样看太抽象了,换个方向
到了这里,站长感觉这个简介也不算难,还真可以通过简介退出结论
这期先到这里
相关文章:

Spring Security3.0.1版本
前言: 抽象Spring Security3.0上一篇 在上一篇中,我们完成了对Security导入,快速入门,和对自动配置的简单验证 对登录流程的分析和Security基本原理 补充: 先解决上一篇留下的问题,端口和端点的区别 端…...

网络报文协议头学习
vxlan:就是通过Vxlan_header头在原始报文前面套了一层UDPIP(4/6)Eth_hdr 需求背景:VXLAN:简述VXLAN的概念,网络模型及报文格式_vxlan报文格式-CSDN博客 如果服务器作为VTEP,那从服务器发送到接…...
颜色与纹理
1 将非坐标数据传入顶点着色器 当执行gl.drawArrays()函数时,存储在缓冲区对象中的数据将按照其在缓冲区中的顺序依次传给对应的attribute变量。在顶点着色器中,我们将这两个attribute变量分别赋值给的gl_Position和gl_PointSize,就在指定的位置绘制出指定大小的点了。 1.…...
pytest-playwright 插件的使用
引言 在自动化测试领域,Playwright 是一个强大的工具,它支持 Chromium、Firefox 和 WebKit 三大浏览器引擎。Playwright 提供了与 Pytest 集成的插件,使得编写端到端测试变得更加简单和高效。本文将介绍如何使用 Pytest Playwright 插件来编…...

基于springboot实现智慧校园之家长子系统项目【项目源码】计算机毕业设计
基于springboot实现智慧校园之家长子系统演示 SpringBoot框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SpringBoot,在JavaWeb开发中使用的流行框架有SSH、SpringBoot、SpringMVC等,作为一个课题程序采用SSH框架也可以,…...
云WAF的安全审计功能
云WAF(Cloud Web Application Firewall)是一种部署在云端的专业网络安全解决方案,它为Web应用程序提供强力的保护,通过检测和阻止恶意流量、攻击和漏洞,确保Web应用程序的安全性和可用性。在安全审计方面,云…...
第十七章 创建Web客户端 - 其他调整
文章目录 第十七章 创建Web客户端 - 其他调整其他调整使用生成的 Web 客户端类示例 1:使用使用包装消息的客户端示例 2:使用使用未包装消息的客户端 第十七章 创建Web客户端 - 其他调整 其他调整 如果 WSDL 未指定 Web 服务的位置,则 SOAP …...

学习java的日子 Day52 多表联合查询,DCL,数据类型,约束,索引,视图
Day52 1.DML-多表联合查询(重要) 1.1 一对一情况 略 1.2 一对多情况 当需要查询多个表中的字段时,就可以使用表连接来实现。表联接分为内连接和外连接 内连接:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结 外连接:…...
计算机视觉(CV)的教程、相关项目
计算机视觉(CV)是一个广泛而深入的领域,其教程和项目众多。以下是针对计算机视觉(CV)的教程和相关项目的一个清晰概述: 教程 入门教程: OpenCV入门:OpenCV是一个开源的计算机视觉库,提供了大量用于图像和视频处理的函数。可以通过OpenCV的官方文档或在线教程来学习其…...
mysql in 逗号分隔_数据库字段是逗号分隔的查询(FIND_IN_SET(str,strlist)方法的使用)
使用函数FIND_IN_SET(str,strlist)--(推荐) 函数介绍:返回在strlist中str字符串通过“,”分隔成列表后所在的位置(索引),如 SELECT FIND_IN_SET("c", "a,b,c,d,e"); 返回3(索引从1开始) 有了这个方法再回到之前的sql语句可以变成如下: select name,bra…...

【Python】 将日期转换为 datetime 对象在 Python 中
基本原理 在 Python 中,处理日期和时间的库是 datetime,它提供了广泛的功能来处理日期和时间。datetime 模块中有一个 datetime 类,它可以用来表示日期和时间。有时,我们可能会遇到需要将日期字符串转换为 datetime 对象的情况&a…...
dpdk-19.11 arm64 环境适配 Mellanox CX4 网卡
环境信息 cpu: arm64 架构 dpdk 版本:19.11 glibc 版本:2.17 网卡型号: Mellanox CX4 网卡,详细 pci 信息如下: 02:00.0 Ethernet controller: Mellanox Technologies MT27710 Family [ConnectX-4 Lx] 02:00.1 Ether…...
1141. 查询近30天活跃用户数
1141. 查询近30天活跃用户数 题目链接:1141. 查询近30天活跃用户数 代码如下: # Write your MySQL query statement below select activity_date as day,count(distinct user_id) as active_users from Activity where activity_date between 2019-06-…...

11_JavaWeb监听器
文章目录 监听器1.监听器的分类2.application域监听器案例 监听器 概念:后端要发生一些事情的时候,自动触发一些代码的执行; 1.监听器的分类 web中定义八个监听器接口作为监听器的规范,这八个接口按照不同的标准可以形成不同的分类 按监听的…...

jmeter常用的断言
包括(Contains):响应内容包括需要匹配的内容即代表响应成功,支持正则表达式 匹配(Matches):响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达…...

Opencv Python图像处理笔记二:图像变换、卷积、形态学变换
文章目录 前言一、几何变换1.1 缩放1.2 平移1.3 旋转1.4 翻转1.5 仿射1.6 透视 二、低通滤波2.1 均值滤波2.2 高斯滤波2.3 中值滤波2.4 双边滤波2.5 自定义滤波 三、高通滤波3.1 Sobel3.2 Scharr3.3 Laplacian3.4 Canny 四、图像金字塔4.1 高斯金字塔4.2 拉普拉斯金字塔 五、形…...
使用若依框架RuoYi前后端分离版+运行+自动生成页面进行导入进行开发+工具(完整版)
若依后台预览 摘要: 随着前后端分离开发模式的流行,越来越多的开发者开始将项目的前端和后端分离开发,以提高开发效率和项目的灵活性。若依框架作为一款优秀的开源后台管理系统,提供了强大的权限管理和代码生成功能,非常适合前后端分离开发。 一、若依框架介绍 若依框架…...

开源博客项目Blog .NET Core源码学习(29:App.Hosting项目结构分析-17)
本文学习并分析App.Hosting项目中后台管理页面的按钮管理页面。 按钮管理页面用于显示、新建、编辑、删除页面按钮数据,以便配置后台管理页面中每个页面的工具栏、操作栏、数据列中的按钮的事件及响应url。按钮管理页面附带一新建及编辑页面,以支撑新…...

2021 hnust 湖科大 计组课设 包含multisim14连线文件,报告,指导书
2021 hnust 湖科大 计组课设 包含multisim14连线文件,报告,指导书 描述 hnust计组课设要用到的东西都在里面了 下载链接 https://pan.baidu.com/s/1tHooJmhkrwX47JCqsg379g?pwd1111...

CHATGPT升级plus(已有账号前提下)
注册wildcard(虚拟卡) 注册号账号后先进行充值,充值后选择CHATGPT一键升级按照他的流程来即可 Wildcard网址:Wildcard跳转注册 填写邀请码充值时少两美金合计14¥ 邀请码:OL3QXTRH...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...

Xcode 16 集成 cocoapods 报错
基于 Xcode 16 新建工程项目,集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...