18
18
*/
19
19
20
20
/*
21
- * Copyright (c) 2016, 2017 , Oracle and/or its affiliates. All rights reserved.
21
+ * Copyright (c) 2016, 2020 , Oracle and/or its affiliates. All rights reserved.
22
22
*/
23
23
package opengrok .auth .plugin .ldap ;
24
24
@@ -48,17 +48,20 @@ public class LdapServer implements Serializable {
48
48
49
49
private static final Logger LOGGER = Logger .getLogger (LdapServer .class .getName ());
50
50
51
- private static final String LDAP_TIMEOUT_PARAMETER = "com.sun.jndi.ldap.connect.connectTimeout" ;
51
+ private static final String LDAP_CONNECT_TIMEOUT_PARAMETER = "com.sun.jndi.ldap.connect.timeout" ;
52
+ private static final String LDAP_READ_TIMEOUT_PARAMETER = "com.sun.jndi.ldap.read.timeout" ;
52
53
private static final String LDAP_CONTEXT_FACTORY = "com.sun.jndi.ldap.LdapCtxFactory" ;
53
- /**
54
- * Default connectTimeout for connecting.
55
- */
56
- private static final int LDAP_CONNECT_TIMEOUT = 5000 ; // ms
54
+
55
+ // default connectTimeout value in milliseconds
56
+ private static final int LDAP_CONNECT_TIMEOUT = 5000 ;
57
+ // default readTimeout value in milliseconds
58
+ private static final int LDAP_READ_TIMEOUT = 3000 ;
57
59
58
60
private String url ;
59
61
private String username ;
60
62
private String password ;
61
63
private int connectTimeout ;
64
+ private int readTimeout ;
62
65
private int interval = 10 * 1000 ;
63
66
64
67
private Hashtable <String , String > env ;
@@ -121,6 +124,15 @@ public LdapServer setConnectTimeout(int connectTimeout) {
121
124
return this ;
122
125
}
123
126
127
+ public int getReadTimeout () {
128
+ return readTimeout ;
129
+ }
130
+
131
+ public LdapServer setReadTimeout (int readTimeout ) {
132
+ this .readTimeout = readTimeout ;
133
+ return this ;
134
+ }
135
+
124
136
public int getInterval () {
125
137
return interval ;
126
138
}
@@ -248,7 +260,10 @@ private synchronized LdapContext connect() {
248
260
env .put (Context .SECURITY_CREDENTIALS , this .password );
249
261
}
250
262
if (this .connectTimeout > 0 ) {
251
- env .put (LDAP_TIMEOUT_PARAMETER , Integer .toString (this .connectTimeout ));
263
+ env .put (LDAP_CONNECT_TIMEOUT_PARAMETER , Integer .toString (this .connectTimeout ));
264
+ }
265
+ if (this .readTimeout > 0 ) {
266
+ env .put (LDAP_READ_TIMEOUT_PARAMETER , Integer .toString (this .readTimeout ));
252
267
}
253
268
254
269
try {
@@ -341,7 +356,8 @@ private static Hashtable<String, String> prepareEnv() {
341
356
Hashtable <String , String > e = new Hashtable <String , String >();
342
357
343
358
e .put (Context .INITIAL_CONTEXT_FACTORY , LDAP_CONTEXT_FACTORY );
344
- e .put (LDAP_TIMEOUT_PARAMETER , Integer .toString (LDAP_CONNECT_TIMEOUT ));
359
+ e .put (LDAP_CONNECT_TIMEOUT_PARAMETER , Integer .toString (LDAP_CONNECT_TIMEOUT ));
360
+ e .put (LDAP_READ_TIMEOUT_PARAMETER , Integer .toString (LDAP_READ_TIMEOUT ));
345
361
346
362
return e ;
347
363
}
@@ -353,12 +369,16 @@ public String toString() {
353
369
sb .append (getUrl ());
354
370
355
371
if (getConnectTimeout () > 0 ) {
356
- sb .append (" timeout: " );
372
+ sb .append (", connect timeout: " );
357
373
sb .append (getConnectTimeout ());
358
374
}
375
+ if (getReadTimeout () > 0 ) {
376
+ sb .append (", read timeout: " );
377
+ sb .append (getReadTimeout ());
378
+ }
359
379
360
380
if (getUsername () != null && !getUsername ().isEmpty ()) {
361
- sb .append (" username: " );
381
+ sb .append (", username: " );
362
382
sb .append (getUsername ());
363
383
}
364
384
0 commit comments