RestTemplate怎么通过HTTP Basic Auth认证


这篇“RestTemplate怎么通过HTTPBasicAuth认证”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“RestTemplate怎么通过HTTPBasicAuth认证”文章吧。首先,HttpBasic模式要求传输的用户名密码使用Base64模式进行加密。如果用户名是 “admin” ,密码是“ admin”,则将字符串”admin:admin”使用Base64编码算法加密。加密结果可能是:YWtaW46YWRtaW4=。然后,在Http请求中使用authorization作为一个HTTP请求头Header name,“Basic YWtaW46YWRtaW4=“作为H免费云主机域名eader的值,发送给服务端。(注意这里使用Basic+空格+加密串)服务器在收到这样的请求时,到达BasicAuthenticationFilter过滤器,将提取“authorization”的Header值,并使用用于验证用户身份的相同算法Base64进行解码。解码结果与登录验证的用户名密码匹配,匹配成功则可以继续过滤器后续的访问。如果你想自己搭建一个服务端,那么如何为Spring Boot 服务添加Basic Auth认证?请参考我的另外一篇文章:《Spring Security系列之Http Basic Auth登录认证模式》 。当然我们也可以不用自己去搭建服务端,给大家介绍一个提供免费在线的RESTful接口服务的网站:httpbin.com。这个网站为我们提供了Basic Auth认证测试服务接口。如果我们只是为了学习RestTemplate,直接用这个网站提供的服务就可以了。浏览器访问地址:http://www.httpbin.org/#/Auth/get_basic_auth__user___passwd_这个接口服务是通过OpenAPI(swagger)实现的,所以可以进行在线的访问测试。所以可以先通过页面操作测试一下,再开始下面学习使用RestTemplate访问服务端接口。在HTTP请求头中携带Basic Auth认证的用户名和密码,具体实现参考下文代码注释:测试用例执行成功,说明RestTemplate 正确的携带了Basic 认证信息,得到正常的响应结果:200。第三小节中的代码虽然实现了功能,但是不够好。因为每一次发送HTTP请求,我们都需要去组装HttpHeaders 信息,这样不好,造成大量的代码冗余。那么有没有一种方式可以实现可以一次性的为所有RestTemplate请求API添加Http Basic认证信息呢?答案就是:在RestTemplate Bean初始化的时候加入拦截器,以拦截器的方式统一添加Basic认证信息。下面的代码结合注释去看,如果看不懂,需要去参考:精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换在RestTemplate Bean初始化的时候加入拦截器之后,第三小节中的代码就可以省略HttpHeaders Basic Auth请求头携带信息的组装过程。发送请求,结果和第三小节中的效果是一样的。上面的方式使用了拦截器,但仍然是我们自己来封装HTTP headers请求头信息。进一步的简化方法就是,Spring RestTemplate 已经为我们提供了封装好的Basic Auth拦截器,我们直接使用就可以了,不需要我们自己去实现拦截器。下面的方法是在RestTemplate Bean实例化的时候使用RestTemplateBuilder,自带basicAuthentication。所以到这里拦截器也不需要了(实际底层代码实现仍然是拦截器,只是api层面不需要指定拦截器了)。发送请求,结果和第三小节中的效果是一样的。以上就是关于“RestTemplate怎么通过HTTPBasicAuth认证”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注百云主机行业资讯频道。

相关推荐: python如何实现命名切片

这篇文章给大家分享的是有关python如何实现命名切片的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。命名切片Python中,分割列表非常简单,各式各样优秀工具都能做到。特别好的一点是,它还能够给列表命名,这对于Python中的线性代…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/30 21:43
下一篇 03/30 21:43

相关推荐