文章

http basic认证流程

Http Basic Auth 认证流程

image-20240412165146151

spring security 配置

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests(authorizerequest -> authorizerequest.anyRequest().authenticated())
                .httpBasic(basic -> basic.realmName("my-basic-realm"));
    }

http basic认证流程解析

客户端开始请求服务器,然后服务端会返回一个401未授权。不能让你访问。并在响应里头加一个www-authenticate。这个header,后边对应的是一个basic

这个basic就代表说服务器到底是一个什么样的认证方式?
这里面就是basic的意思是给出一个realm这个东西,其实,按标准来讲应该这么写。但是服务器后端是可以自定义这个header。
在标准流程下。浏览器收到这个响应之后。它会重定向到一个表单页面。或者如果你什么都不做的话,其实浏览器自己会弹出来一个窗口,这样填写用户名和密码。
然后就把这个用户密码提交,用户密码提交之后,在这个请求再次请求的时候,它会把这个用户名密码做一下base64,然后将处理后的数据填写在这个basic后面。
这个时候请求里边会有一个叫认证头,比如说这个Authentication这样一个header,以Authentication为key的一个header。然后,value为basic dxnlcjoxmjmonty30a==
后边写其他的形式,比如说bearer也是一样,后边加一个空格,然后接token。这个形式都跟basic类似,然后服务端去检查用户名,密码或者返回200。

License:  CC BY 4.0