@@ -50,14 +50,16 @@ public class Realm {
50
50
private final boolean messageType2Received ;
51
51
private final String domain ;
52
52
private final Charset charset ;
53
+ private final boolean useAbsoluteURI ;
54
+ private final boolean omitQuery ;
53
55
54
56
public enum AuthScheme {
55
57
DIGEST , BASIC , NTLM , SPNEGO , KERBEROS , NONE
56
58
}
57
59
58
60
private Realm (AuthScheme scheme , String principal , String password , String realmName , String nonce , String algorithm , String response ,
59
61
String qop , String nc , String cnonce , String uri , String method , boolean usePreemptiveAuth , String domain , String enc ,
60
- String host , boolean messageType2Received , String opaque ) {
62
+ String host , boolean messageType2Received , String opaque , boolean useAbsoluteURI , boolean omitQuery ) {
61
63
62
64
this .principal = principal ;
63
65
this .password = password ;
@@ -78,6 +80,8 @@ private Realm(AuthScheme scheme, String principal, String password, String realm
78
80
this .host = host ;
79
81
this .messageType2Received = messageType2Received ;
80
82
this .charset = enc != null ? Charset .forName (enc ) : null ;
83
+ this .useAbsoluteURI = useAbsoluteURI ;
84
+ this .omitQuery = omitQuery ;
81
85
}
82
86
83
87
public String getPrincipal () {
@@ -176,6 +180,14 @@ public boolean isNtlmMessageType2Received() {
176
180
return messageType2Received ;
177
181
}
178
182
183
+ public boolean isUseAbsoluteURI () {
184
+ return useAbsoluteURI ;
185
+ }
186
+
187
+ public boolean isOmitQuery () {
188
+ return omitQuery ;
189
+ }
190
+
179
191
@ Override
180
192
public boolean equals (Object o ) {
181
193
if (this == o )
@@ -207,15 +219,17 @@ public boolean equals(Object o) {
207
219
return false ;
208
220
if (uri != null ? !uri .equals (realm .uri ) : realm .uri != null )
209
221
return false ;
210
-
222
+ if (useAbsoluteURI != !realm .useAbsoluteURI ) return false ;
223
+ if (omitQuery != !realm .omitQuery ) return false ;
211
224
return true ;
212
225
}
213
226
214
227
@ Override
215
228
public String toString () {
216
229
return "Realm{" + "principal='" + principal + '\'' + ", scheme=" + scheme + ", realmName='" + realmName + '\'' + ", nonce='"
217
230
+ nonce + '\'' + ", algorithm='" + algorithm + '\'' + ", response='" + response + '\'' + ", qop='" + qop + '\'' + ", nc='"
218
- + nc + '\'' + ", cnonce='" + cnonce + '\'' + ", uri='" + uri + '\'' + ", methodName='" + methodName + '\'' + '}' ;
231
+ + nc + '\'' + ", cnonce='" + cnonce + '\'' + ", uri='" + uri + '\'' + ", methodName='" + methodName + '\'' + ", useAbsoluteURI='" + useAbsoluteURI + '\''
232
+ + ", omitQuery='" + omitQuery + '\'' +'}' ;
219
233
}
220
234
221
235
@ Override
@@ -261,6 +275,8 @@ public static class RealmBuilder {
261
275
private String enc = StandardCharsets .UTF_8 .name ();
262
276
private String host = "localhost" ;
263
277
private boolean messageType2Received = false ;
278
+ private boolean useAbsoluteURI = true ;
279
+ private boolean omitQuery = false ;
264
280
265
281
public String getNtlmDomain () {
266
282
return domain ;
@@ -397,6 +413,29 @@ public RealmBuilder setUsePreemptiveAuth(boolean usePreemptiveAuth) {
397
413
return this ;
398
414
}
399
415
416
+ public RealmBuilder setNtlmMessageType2Received (boolean messageType2Received ) {
417
+ this .messageType2Received = messageType2Received ;
418
+ return this ;
419
+ }
420
+
421
+ public boolean isUseAbsoluteURI () {
422
+ return useAbsoluteURI ;
423
+ }
424
+
425
+ public RealmBuilder setUseAbsoluteURI (boolean useAbsoluteURI ) {
426
+ this .useAbsoluteURI = useAbsoluteURI ;
427
+ return this ;
428
+ }
429
+
430
+ public boolean isOmitQuery () {
431
+ return omitQuery ;
432
+ }
433
+
434
+ public RealmBuilder setOmitQuery (boolean omitQuery ) {
435
+ this .omitQuery = omitQuery ;
436
+ return this ;
437
+ }
438
+
400
439
public RealmBuilder parseWWWAuthenticateHeader (String headerLine ) {
401
440
setRealmName (match (headerLine , "realm" ));
402
441
setNonce (match (headerLine , "nonce" ));
@@ -427,11 +466,6 @@ public RealmBuilder parseProxyAuthenticateHeader(String headerLine) {
427
466
return this ;
428
467
}
429
468
430
- public RealmBuilder setNtlmMessageType2Received (boolean messageType2Received ) {
431
- this .messageType2Received = messageType2Received ;
432
- return this ;
433
- }
434
-
435
469
public RealmBuilder clone (Realm clone ) {
436
470
setRealmName (clone .getRealmName ());
437
471
setAlgorithm (clone .getAlgorithm ());
@@ -574,7 +608,7 @@ public Realm build() {
574
608
}
575
609
576
610
return new Realm (scheme , principal , password , realmName , nonce , algorithm , response , qop , nc , cnonce , uri , methodName ,
577
- usePreemptive , domain , enc , host , messageType2Received , opaque );
611
+ usePreemptive , domain , enc , host , messageType2Received , opaque , useAbsoluteURI , omitQuery );
578
612
}
579
613
}
580
614
}
0 commit comments