这部分提供了关于Spring Security如何为基于Servlet的应用程序提供基本HTTP认证支持的详细信息。
这部分描述了Spring Security中HTTP基本认证的工作原理。首先,我们看到WWW-Authenticate标头被发送回未经身份验证的客户端:
首先,用户对未经授权的资源 /private 发出未经身份验证的请求。
Spring Security 的 AuthorizationFilter 表明未经身份验证的请求被拒绝,通过抛出 AccessDeniedException 异常。
由于用户未经身份验证,ExceptionTranslationFilter 启动身份验证。配置的 AuthenticationEntryPoint 是 BasicAuthenticationEntryPoint 的实例,它发送一个 WWW-Authenticate 标头。RequestCache 通常是一个不保存请求的 NullRequestCache,因为客户端有能力重放其最初的请求。
当客户端收到WWW-Authenticate标头时,它知道应该使用用户名和密码进行重试。以下图片显示了用户名和密码处理的流程。
当用户提交他们的用户名和密码时,BasicAuthenticationFilter 通过从 HttpServletRequest 中提取用户名和密