Skip to content

Commit 5514a80

Browse files
committed
o Let derived SimpleAHC change realm settings
1 parent 10b8818 commit 5514a80

File tree

2 files changed

+371
-3
lines changed

2 files changed

+371
-3
lines changed

src/main/java/com/ning/http/client/SimpleAsyncHttpClient.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,18 @@ public class SimpleAsyncHttpClient {
7070
private final ErrorDocumentBehaviour errorDocumentBehaviour;
7171
private final SimpleAHCTransferListener listener;
7272
private final boolean derived;
73+
private Realm realm;
7374

74-
private SimpleAsyncHttpClient(AsyncHttpClientConfig config, RequestBuilder requestBuilder, ThrowableHandler defaultThrowableHandler, ErrorDocumentBehaviour errorDocumentBehaviour, boolean resumeEnabled, AsyncHttpClient ahc, SimpleAHCTransferListener listener) {
75+
private SimpleAsyncHttpClient(AsyncHttpClientConfig config, Realm realm, RequestBuilder requestBuilder, ThrowableHandler defaultThrowableHandler,
76+
ErrorDocumentBehaviour errorDocumentBehaviour, boolean resumeEnabled, AsyncHttpClient ahc, SimpleAHCTransferListener listener) {
7577
this.config = config;
7678
this.requestBuilder = requestBuilder;
7779
this.defaultThrowableHandler = defaultThrowableHandler;
7880
this.resumeEnabled = resumeEnabled;
7981
this.errorDocumentBehaviour = errorDocumentBehaviour;
8082
this.asyncHttpClient = ahc;
8183
this.listener = listener;
84+
this.realm = realm;
8285

8386
this.derived = ahc != null;
8487
}
@@ -271,6 +274,8 @@ private Future<Response> execute(RequestBuilder rb, BodyConsumer bodyConsumer, T
271274
throwableHandler = defaultThrowableHandler;
272275
}
273276

277+
rb.setRealm(realm);
278+
274279
Request request = rb.build();
275280
ProgressAsyncHandler<Response> handler = new BodyConsumerAsyncHandler(bodyConsumer, throwableHandler, errorDocumentBehaviour, request.getUrl(), listener);
276281

@@ -383,6 +388,20 @@ public interface DerivedBuilder {
383388

384389
DerivedBuilder setResumableDownload(boolean resume);
385390

391+
DerivedBuilder setRealmEnconding(String enc);
392+
393+
DerivedBuilder setRealmUsePreemptiveAuth(boolean usePreemptiveAuth);
394+
395+
DerivedBuilder setRealmName(String realmName);
396+
397+
DerivedBuilder setRealmScheme(Realm.AuthScheme scheme);
398+
399+
DerivedBuilder setRealmPassword(String password);
400+
401+
DerivedBuilder setRealmPrincipal(String principal);
402+
403+
DerivedBuilder setRealmDomain(String domain);
404+
386405
SimpleAsyncHttpClient build();
387406
}
388407

@@ -413,6 +432,10 @@ private Builder(SimpleAsyncHttpClient client) {
413432
this.enableResumableDownload = client.resumeEnabled;
414433
this.ahc = client.asyncHttpClient();
415434
this.listener = client.listener;
435+
436+
if (client.realm != null) {
437+
realm().clone(client.realm);
438+
}
416439
}
417440

418441
public Builder addBodyPart(Part part) throws IllegalArgumentException {
@@ -661,8 +684,10 @@ public Builder setMaxRequestRetry(int maxRequestRetry) {
661684

662685
public SimpleAsyncHttpClient build() {
663686

687+
Realm realm = null;
664688
if (realmBuilder != null) {
665-
configBuilder.setRealm(realmBuilder.build());
689+
realm = realmBuilder.build();
690+
configBuilder.setRealm(realm);
666691
}
667692

668693
if (proxyHost != null) {
@@ -671,7 +696,8 @@ public SimpleAsyncHttpClient build() {
671696

672697
configBuilder.addIOExceptionFilter(new ResumableIOExceptionFilter());
673698

674-
SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), requestBuilder, defaultThrowableHandler, errorDocumentBehaviour, enableResumableDownload, ahc, listener);
699+
SimpleAsyncHttpClient sc = new SimpleAsyncHttpClient(configBuilder.build(), realm, requestBuilder, defaultThrowableHandler,
700+
errorDocumentBehaviour, enableResumableDownload, ahc, listener);
675701

676702
return sc;
677703
}

0 commit comments

Comments
 (0)