HTTP Basic Authentication基本认证机制
HTTP为认证提供了一种原生工具。
尽管我们可以在HTTP的认证形式和cookie的基础上运行自己的认证工具,但在很多情况下,HTTP的原生认证功能就可以很好的满足要求
HTTP的质询/响应认证框架
简化的质询/响应认证框架:
分为四步-请求、质询、认证、成功
认证协议与首部
认证协议是在HTTP认证首部中指定的。
请求:第一条请求没有认证信息
GET /family/jeff.jpg HTTP/1.1
质询:(服务器端的质询)首部是WWW-Authenticate服务器用401状态拒绝了请求,说明需要用户提供用户名和密码。认证算法是在WWW-Authenticate首部中指定的。
HTTP/1.1 401 Authorization Required
WWW-Authentication: Basic realm=”Family”
授权:首部是Authorization 客户端重新发送请求,但这一次会附加一个Authorization首部,用来说明认证算法,用户名和密码。
GET /family/jeff.jpg HTTP/1.1
Authorization: Basic YnssdjJlsdsdsdfsfsdfI
成功:首部是Authentication-Info 如果授权证书是正确的,服务器就会将200 OK文档返回。有些授权算法会在可选的Authentication-Info首部返回一些与授权会话相关的附加信息。
HTTP/1.0 200 OK
Content-Type:image/jpeg
<img data include>
Authorization - 授权
Authentication - 认证
以上摘自网友,下面介绍在工作中遇到的一个需求,项目中需要提供支持Basic Auth的实现。
在Spring中,配置和使用Spring Security,自定义验证过程中的主要实现接口(用户信息UserDetails,用户信息获取服务UserDetailsService,验证工具AuthenticationProvider)即可。其余的流程将由Spring自动接管,非常方便。
UserDetail