小编Fra*_*her的帖子

每个请求的Apache HTTP客户端4.3凭据

我一直在查看摘要认证示例:

http://hc.apache.org/httpcomponents-client-4.3.x/examples.html

在我的场景中,有几个线程发出HTTP请求,并且每个线程都必须使用自己的一组凭据进行身份验证.另外,请考虑这个问题可能非常具体针对Apache HTTP客户端4.3以上,4.2可能以不同的方式处理身份验证,尽管我自己没有检查它.也就是说,实际问题就出现了.

我想只使用一个客户端实例(该类的静态成员,即线程安全)并为其提供连接管理器以支持多个并发请求.关键是每个请求都会提供不同的凭据,我没有看到为每个请求分配凭据的方法,因为在构建http客户端时设置了凭据提供程序.从上面的链接:

[...]

    HttpHost targetHost = new HttpHost("localhost", 80, "http");
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(
            new AuthScope(targetHost.getHostName(), targetHost.getPort()),
            new UsernamePasswordCredentials("username", "password"));
    CloseableHttpClient httpclient = HttpClients.custom()
            .setDefaultCredentialsProvider(credsProvider).build();
Run Code Online (Sandbox Code Playgroud)

[...]

检查:

http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#d5e600

第4.4点(寻求4.4.HTTP认证和执行上下文)中的代码示例似乎表示HttpClientContext被赋予auth高速缓存和凭证提供者,然后被传递给HTTP请求.在它旁边执行请求,似乎客户端将在HTTP请求中获得主机的凭据过滤.换句话说:如果上下文(或缓存)具有当前HTTP请求的目标主机的有效凭据,则他将使用它们.对我来说问题是不同的线程将对同一主机执行不同的请求.

有没有办法为每个HTTP请求提供自定义凭据?

在此先感谢您的时间!:)

http credentials digest apache-httpcomponents apache-httpclient-4.x

11
推荐指数
1
解决办法
2万
查看次数

阻止 S3 上的公共访问(可从 Cloudfront 访问)吗?

我刚刚收到一封电子邮件,通知我的 S3 存储桶可以公开访问,这很好,因为我在那里托管文件。

同时,我让 Cloudfront 为 S3 中存储的文件提供服务。

考虑到更安全的配置,出现了一个疑问:如果我在 S3 中禁用公共访问,Cloudfront 是否仍能正确提供文件?

感谢您提前抽出时间!

security amazon-s3 amazon-cloudfront

6
推荐指数
1
解决办法
4666
查看次数

Servlet 3.1 - 多部分异步处理

我正在测试Servlet 3.1 API来处理多部分请求.我感兴趣的处理部分零件同步(文本字段)和其他asyncronously(文件字段).乍一看它似乎不是(在异步上下文或处理多类似Apache的公地文件上传库要么完全异步通过request.getInputStream())的Servlet 3.1可用.

有没有办法使用Servlet 3.1获得此同步/异步处理?

在此先感谢您的时间!:)

java asynchronous servlets multipart

5
推荐指数
2
解决办法
1388
查看次数