Httpclient处理摘要认证

虽然摘要认证的安全性比BASIC认证提高了不少,但是从接口调用上来看,并不比BASIC认证复杂,而且Realm和Scheme参数都可以为空,这时候就和BASIC认证的调用方式一模一样了。

import java.net.URI;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.methods.RequestBuilder;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class DigestTest {
    public static void main(String[] args) throws Exception {
        CredentialsProvider credsProvider = new BasicCredentialsProvider();
        credsProvider.setCredentials(new AuthScope("10.0.0.90", 8080, "favourite digest realm", AuthScope.ANY_SCHEME),
                new UsernamePasswordCredentials("admin", "password"));
        CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
        HttpUriRequest login = RequestBuilder.post()
                .setUri(new URI("http://10.0.0.100:8080/hibaby/getBabiesByGender"))
                .addParameter("appKey", "BEST")
                .addParameter("gender", "boy").build();
        CloseableHttpResponse response = httpclient.execute(login);
        System.out.println("响应状态:" + response.getStatusLine());
        String result = EntityUtils.toString(response.getEntity(), "UTF-8");
        System.out.println("Result: " + result);
    }
}
时间: 2024-10-16 16:19:58

Httpclient处理摘要认证的相关文章

详解摘要认证

1. 什么是摘要认证 摘要认证与基础认证的工作原理很相似,用户先发出一个没有认证证书的请求,Web服务器回复一个带有WWW-Authenticate头的响应,指明访问所请求的资源需要证书.但是和基础认证发送以Base 64编码的用户名和密码不同,在摘要认证中服务器让客户端选一个随机数(称作"nonce"),然后浏览器使用一个单向的加密函数生成一个消息摘要(message digest),该摘要是关于用户名.密码.给定的nonce值.HTTP方法,以及所请求的URL. 2. 摘要认证算法

HTTP - 摘要认证

基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种 HTTP 认证协议,它与基本认证兼容,但却更为安全.摘要认证试图修复基本认证协议的严重缺陷.具体来说,摘要认证进行了如下改下: 永远不会以明文方式在网络上发送密码. 可以防止恶意用户捕获并重放认证的握手过程. 可以有选择地防止对报文内容的篡改. 防范其他几种常见的攻击方式. 摘要认证并不是最安全的协议.摘要认证并不能满足安

asp.net权限认证:摘要认证(digest authentication)

asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证:摘要认证(digest authentication) 一.摘要认证由来 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry 贡献的博文:ASP.NET Web API(三):安全验证之使用摘要认证(dige

ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)

在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看另一种验证的方式:digest authentication,即摘要认证. 系列文章列表 ASP.NET Web API(一):使用初探,GET和POST数据ASP.NET Web API(二):安全验证之使用HTTP基本认证ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication) 摘要认证原理 在基本认证的方式中,主

常用的加密算法--摘要认证和签名认证的实现

摘要认证的实现 摘要认证实现主要包含四个方面:客户端参数摘要生成.服务端参数摘要检验.服务端响应摘要生成和客户端响应摘要检验. 1.客户端参数摘要生成过程: a.请求参数: b.参数排序: c.将参数串接起来,加上secret,生成待摘要字符串: d.使用MD5等摘要算法生成摘要字符串: e.摘要串.  /**      * @param params 需要传递到服务端的参数      * @return      * @throws Exception      */     private 

简简单单谈下摘要认证

SIP认证过程源自HTTP摘要式认证(HTTP Digest Authentication),它是一种基于质询的安全机制:当服务器收到一个请求,将质询请求的发起者,要求提供相应的身份信息.服务器发出的质询中会包含生成的唯一字符串序列,仅可用于本次质询.请求者和服务器共享同一密码,请求者使用该密码和临时生成的字符串序列得到一个响应值.当请求者再次发送包含这个响应值的请求时,服务器就可以用来对请求进行认证.利用这种机制,密码就可以不用明文的方式传送. 第一次读是否感觉都感觉拗口?看图说话最直接(我随

对SIP摘要认证方案的理解

一.口令认证常见机制 基于口令认证的系统一般有以下几种口令验证方式: 1.客户端以明文形式将用户名密码通过网络发送到服务器,服务器与已经保存在服务端的用户名密码进行比较,一致则通过验证: HTTP基本鉴别方案即采用这种方式,它不会对以明文方式在物理网络中传输的实体进行任何形式的保护,显然这不是安全的用户鉴别方式. 2.客户端对用户名和密码进行加密,服务端解密后在验证: 这种方式有一定的安全性,但无论加密方式采用对称加密方式(如DES),还是非对称加密方式(如:MD5),都不足够安全. 对称加密方

[转]asp.net权限认证:摘要认证(digest authentication)

本文转自:http://www.cnblogs.com/lanxiaoke/p/6357501.html 摘要认证简单介绍 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry 贡献的博文:ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication) 我是觉得真心不错,让我少走很多弯路.这篇文章主要是对上边引用文章的讲解,老司机可以略过. 老规矩,上摘认证的工作流

前端学HTTP之摘要认证

前面的话 上一篇介绍的基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与SSL配合使用 摘要认证与基本认证兼容,但却更为安全.本文将详细介绍绍摘要认证的原理和实际应用 工作原理 摘要认证是另一种HTTP认证协议,它试图修复基本认证协议的严重缺陷.具体来说,摘要认证进行了如下改进:永远不会以明文方式在网络上发送密码:可以防止恶意用户捕获并重放认证的握手过程:可以有选择地防止对报文内容的篡改:防范其他几种常见的攻击