Basic认证方式访问url

时间:2022-09-30 16:21:12

同学们,今天我们来了解一下Basic认证。Basic认证在访问WebApi时需要验证账号密码,它是最基础的验证之一。通常我们裸奔一个服务的url,如果被别有用心的人拿到了,那么他就能无限调用接口操作数据库/获取数据,后果可以想象。同时认证可以有效保证数据安全。好了,废话不多说,咋们进入正题。

1.时间戳/密文传递验证
2.通过token验证
3.basic认证
……
无论是哪种方式,都是为了保证url的安全性,这个可以根据密级的提高采用不同的方式,同时还有一些其他的身份认证方式,大家有兴趣可以去研究。

在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。客户端在接收到HTTP服务器的身份认证要求后,雅思考试报名费会提示用户输入用户名及密码,然后将用户名及密码以BASE64加密,加密后的密文将附加于请求信息中, 如当用户名为anjuta,密码为:123456时,客户端将用户名和密码用“:”合并,并将合并后的字符串用BASE64加密为密文,并于每次请求数据 时,将密文附加于请求头(Request Header)中。HTTP服务器在每次收到请求包后,根据协议取得客户端附加的用户信息(BASE64加密的用户名和密码),解开请求包,对用户名及密码进行验证,
如果用 户名及密码正确,则根据客户端请求,返回客户端所需要的数据;否则,返回错误代码或重新要求客户端提供用户名及密码。

HTTP基本认证的目标是提供简单的用户验证功能,其认证过程简单明了,适合于对安全性要求不高的系统或设备中,如大家所用路由器的配置页面的认证,几乎都采取了这种方式。其缺点是没有灵活可靠的认证策略,如无法提供域(domain或realm)认证功能,另外,BASE64的加密强度非常低,可以说仅能防止sohu的搜索把它搜到了。当然,HTTP基本认证系统也可以与SSL或者Kerberos结合,实现安全性能较高(相对)的认证系统


实际上我用这个方法访问失败了,貌似时Authorization一直不能放到请求头里面,或者说是不能被解析,反正就是一直要我手动输入账号密码,还希望有懂的大神来为我解析一下,感激不尽。
因此才有了下面的java实现方式!

 

说到这,Basic认证客户端使用方式就说完了。下面来看看服务端的使用!

建议同学们可以把这一段单独抽离出来,可以作为aop的前置增强,每一次执行方法前进行调用。