당 4.3 자격 증명이 나는에서 다이제스트 인증의 예를 살펴 가지고 있었다 : 내 시나리오에서아파치 HTTP 클라이언트가 요청
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();
[...]
은 검사 :
http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#d5e600
점 4.4의 코드 예제 (을 추구 4.4 HTTP 인증 및 실행 컨텍스트)은 HttpClientContext에 인증 캐시와 credenti가 주어 졌다고합니다. 공급자가 HTTP 요청에 전달됩니다. 그 옆에 요청이 실행되고 클라이언트가 HTTP 요청에서 호스트에 의해 자격 증명 필터링을받는 것으로 보입니다. 즉, 컨텍스트 (또는 캐시)에 현재 HTTP 요청의 대상 호스트에 대한 유효한 자격 증명이있는 경우이를 사용합니다. 문제는 다른 스레드가 동일한 호스트에 다른 요청을 수행한다는 것입니다.
HTTP 요청마다 사용자 지정 자격 증명을 제공 할 수있는 방법이 있습니까?
미리 감사드립니다. :)
[httpclient 4.x로 단일 요청 인증] 가능한 복제본 (http://stackoverflow.com/questions/2516345/authenticating-a-single-request-with-httpclient-4-x) – davidwebster48