我一直在查看摘要认证示例:
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
我刚刚收到一封电子邮件,通知我的 S3 存储桶可以公开访问,这很好,因为我在那里托管文件。
同时,我让 Cloudfront 为 S3 中存储的文件提供服务。
考虑到更安全的配置,出现了一个疑问:如果我在 S3 中禁用公共访问,Cloudfront 是否仍能正确提供文件?
感谢您提前抽出时间!
我正在测试Servlet 3.1 API来处理多部分请求.我感兴趣的处理部分零件同步(文本字段)和其他asyncronously(文件字段).乍一看它似乎不是(在异步上下文或处理多类似Apache的公地文件上传库要么完全异步通过request.getInputStream())的Servlet 3.1可用.
有没有办法使用Servlet 3.1获得此同步/异步处理?
在此先感谢您的时间!:)
amazon-s3 ×1
asynchronous ×1
credentials ×1
digest ×1
http ×1
java ×1
multipart ×1
security ×1
servlets ×1