96SEO 2026-02-19 12:42 0
就是用来判断系统中是否存在某用户#xff0c;并判断该用户的身份是否合法的过程#xff0c;解决的其实是用户登录的问题。

认证的存在#xff0c;是…一.简介
这篇文章来学习下security的认证方式其中的HTTP基本认证。
就是用来判断系统中是否存在某用户并判断该用户的身份是否合法的过程解决的其实是用户登录的问题。
认证的存在是为了保护系统中的隐私数据与资源只有合法的用户才可以访问系统中的资源。
Security中常见的认证方式可以分为HTTP层面和表单层面常见的认证方式如下:
4.x版本中默认采用的登录方式是Http基本认证该方式会弹出一个对话框要求用户输入用户名和密码。
在每次进行基本认证请求时都会在Authorization请求头中利用Base64对
字符串进行编码。
这种方式并不安全并不适合在Web项目中使用但它是一些现代主流认证的基础而且在Spring
Security的OAuth中内部认证的默认方式就是用的Http基本认证。
在基本认证时系统中所涉及到的各种核心API及其执行流程在这篇文章中我们先对这些有基本了解即可。
Filter-构造Token-AuthenticationManager-转给Provider处理-认证处理成功后续操作或者不通过抛异常3.3HTTP基本认证步骤(重点)
HTTP基本认证是在RFC2616标准中定义的一种认证模式它以一种很简单的方式与用户进行交互。
HTTP基本认证可以分为如下4个步骤
客户端首先发起一个未携带认证信息的请求然后服务器端返回一个401
Unauthorized的响应信息并在WWW-Authentication头部中说明认证形式当进行HTTP基本认证时WWW-Authentication会被设置为Basic
Unauthorized响应信息并弹出一个对话框询问用户名和密码。
当用户输入后客户端会将用户名和密码使用冒号进行拼接并用Base64编码然后将其放入到请求的Authorization头部并发送给服务器最后服务器端对客户端发来的信息进行解码得到用户名和密码并对该信息进行校验判断是否正确最终给客户端返回响应内容。
HTTP基本认证是一种无状态的认证方式与表单认证相比HTTP基本认证是一种基于HTTP层面的认证方式无法携带Session信息也就无法实现Remember-Me功能。
另外用户名和密码在传递时仅做了一次简单的Base64编码几乎等同于以明文传输极易被进行密码窃听和重放攻击。
所以在实际开发中很少会使用这种认证方式来进行安全校验。
创建SecurityConfig类继承自WebSecurityConfigurerAdapter父类代码如下:
org.springframework.security.config.annotation.web.builders.HttpSecurity;
org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;EnableWebSecurity
{//1.配置基本认证方式http.authorizeRequests()//对任意请求都进行认证.anyRequest().authenticated().and()//开启basic认证.httpBasic();}}这段代码中httpBasic()方法就是用来开启基本认证的而且默认采用的就是基本认证
org.springframework.web.bind.annotation.GetMapping;
org.springframework.web.bind.annotation.RestController;RestController
接着把项目启动起来打开浏览器及调试窗口然后访问/hello接口这时候就可以看到浏览器中弹出了一个登陆窗口截图如下
提示输入自己的用户名和密码认证成功后即可访问自己的web接口。
此时我们在自己的浏览器调试窗口中查看响应头可以看到WWW-Authenticate认证信息:
指认证域名为RealmHttpBasic默认的realm名为Realm。
在未认证用户请求不同的接口时后台会根据分配给该接口的域响应不同的realm名称并且用不同的用户名/密码进行认证。
所以用户每请求一个新的Realm的url都会弹框要求使用新的Realm的用户名/密码进行认证就好比不同的角色登录只能请求属于该角色的url。
格式中间是一个冒号并利用Base64编码成加密字符串xxx然后在请求头中附加
信息发送给后台认证后台需要利用Base64来进行解码xxx得到用户名和密码再校验
如果认证错误浏览器会保持弹框如果认证成功浏览器会缓存有效的Base64编码在之后的请求中浏览器都会在请求头中添加该有效编码。
在成功认证之后Basic认证会把Authorization认证信息缓存在浏览器中一段时间之后每次请求接口时都会自动带上所以直到
用户关闭浏览器才会销毁认证信息也就是说我们无法在服务端进行有效的注销。
在请求头配置一个错误的Authorization或者在浏览器的命令行执行
document.execuCommand(“ClearAuthenticationCache”)方法
来清空认证信息但该方式对Chrome浏览器无效。
我们在调试基本认证时可以直接开启无痕模式避免很多因为缓存造成的问题。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback