@@ -70,15 +70,18 @@ public class SimpleAsyncHttpClient {
70
70
private final ErrorDocumentBehaviour errorDocumentBehaviour ;
71
71
private final SimpleAHCTransferListener listener ;
72
72
private final boolean derived ;
73
+ private Realm realm ;
73
74
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 ) {
75
77
this .config = config ;
76
78
this .requestBuilder = requestBuilder ;
77
79
this .defaultThrowableHandler = defaultThrowableHandler ;
78
80
this .resumeEnabled = resumeEnabled ;
79
81
this .errorDocumentBehaviour = errorDocumentBehaviour ;
80
82
this .asyncHttpClient = ahc ;
81
83
this .listener = listener ;
84
+ this .realm = realm ;
82
85
83
86
this .derived = ahc != null ;
84
87
}
@@ -271,6 +274,8 @@ private Future<Response> execute(RequestBuilder rb, BodyConsumer bodyConsumer, T
271
274
throwableHandler = defaultThrowableHandler ;
272
275
}
273
276
277
+ rb .setRealm (realm );
278
+
274
279
Request request = rb .build ();
275
280
ProgressAsyncHandler <Response > handler = new BodyConsumerAsyncHandler (bodyConsumer , throwableHandler , errorDocumentBehaviour , request .getUrl (), listener );
276
281
@@ -383,6 +388,20 @@ public interface DerivedBuilder {
383
388
384
389
DerivedBuilder setResumableDownload (boolean resume );
385
390
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
+
386
405
SimpleAsyncHttpClient build ();
387
406
}
388
407
@@ -413,6 +432,10 @@ private Builder(SimpleAsyncHttpClient client) {
413
432
this .enableResumableDownload = client .resumeEnabled ;
414
433
this .ahc = client .asyncHttpClient ();
415
434
this .listener = client .listener ;
435
+
436
+ if (client .realm != null ) {
437
+ realm ().clone (client .realm );
438
+ }
416
439
}
417
440
418
441
public Builder addBodyPart (Part part ) throws IllegalArgumentException {
@@ -661,8 +684,10 @@ public Builder setMaxRequestRetry(int maxRequestRetry) {
661
684
662
685
public SimpleAsyncHttpClient build () {
663
686
687
+ Realm realm = null ;
664
688
if (realmBuilder != null ) {
665
- configBuilder .setRealm (realmBuilder .build ());
689
+ realm = realmBuilder .build ();
690
+ configBuilder .setRealm (realm );
666
691
}
667
692
668
693
if (proxyHost != null ) {
@@ -671,7 +696,8 @@ public SimpleAsyncHttpClient build() {
671
696
672
697
configBuilder .addIOExceptionFilter (new ResumableIOExceptionFilter ());
673
698
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 );
675
701
676
702
return sc ;
677
703
}
0 commit comments