跳到主要内容

04--实现HTTP基本认证

前言

在上一章节中,一一哥 带大家搭建了第一个Spring Security项目,相信小伙伴已经学会了如何利用Spring Security来保护我们的Java Web项目。但是第一个案例只是属于HelloWorld入门级别的项目,关于SpringSecurity的具体使用细节,我们还有很多不了解的。接下来,一一哥 从认证方式开始,与各位一起学习如何进行各种认证。

一. Spring Security的认证方式

1. 认证概念

在进行编码之前,我们还是老规矩,先了解一下"认证"的概念,不能连认证是啥意思都不知道,就去撸码,撸了半天都不知道撸的是什么,这有个什么劲啊。

认证: 所谓的认证,就是用来判断系统中是否存在某用户,并判断该用户的身份是否合法的过程,解决的其实是用户登录的问题。认证的存在,是为了保护系统中的隐私数据与资源,只有合法的用户才可以访问系统中的资源。

2. 认证方式

在Spring Security中,常见的认证方式可以分为HTTP层面和表单层面,常见的认证方式如下:

  • ①. HTTP基本认证;
  • ②. Form表单认证
  • ③. HTTP摘要认证;

二. HTTP基本认证

1. 基本认证概述

在3种认证方式中,一一哥 先带各位小伙伴来学习最简单的基本认证方式,看看基本认证又是个什么情况。

在Spring Security 4.x版本中,默认采用的登录方式是Http基本认证,该方式会弹出一个对话框,要求用户输入用户名和密码。在每次进行基本认证请求时,都会在Authorization请求头中利用Base64对 “用户:密码” 字符串进行编码。这种方式并不安全,并不适合在Web项目中使用,但它是一些现代主流认证的基础,而且在Spring Security的OAuth中,内部认证的默认方式就是用的Http基本认证。

2. 基本认证核心API

我们知道了基本认证的概念之后,还可以再了解一下基本认证时,系统中所涉及到的各种核心API及其执行流程,在本章节中,我们先对这些有基本了解即可,等后面我跟各位分析源码时,再对这些细说。