1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.common.lib;
20
21 import java.io.Serializable;
22 import java.time.Duration;
23 import java.util.List;
24 import java.util.stream.Collectors;
25 import java.util.stream.Stream;
26
27 public abstract class AbstractLDAPConf implements Serializable {
28
29 private static final long serialVersionUID = 3705514707899419599L;
30
31
32
33
34 public enum LdapType {
35
36
37
38
39 GENERIC,
40
41
42
43 AD,
44
45
46
47 FreeIPA,
48
49
50
51 EDirectory
52
53 }
54
55
56
57
58 public enum LdapConnectionPoolPassivator {
59
60
61
62
63 NONE,
64
65
66
67 BIND
68
69 }
70
71 public enum LdapConnectionStrategy {
72
73
74
75
76 ACTIVE_PASSIVE,
77
78
79
80 ROUND_ROBIN,
81
82
83
84 RANDOM,
85
86
87
88 DNS_SRV
89
90 }
91
92
93
94
95 public enum LdapHostnameVerifier {
96
97
98
99 DEFAULT,
100
101
102
103 ANY
104
105 }
106
107
108
109
110 public enum LdapTrustManager {
111
112
113
114 DEFAULT,
115
116
117
118 ANY
119
120 }
121
122
123
124
125
126
127
128
129 private String searchFilter;
130
131
132
133
134 private boolean subtreeSearch = true;
135
136
137
138
139
140
141
142 private int pageSize;
143
144
145
146
147
148
149
150
151
152
153 private String baseDn;
154
155 private String ldapUrl;
156
157
158
159
160 private LdapType ldapType = LdapType.GENERIC;
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177 private String bindDn;
178
179
180
181
182 private String bindCredential;
183
184
185
186
187 private boolean disablePooling;
188
189
190
191
192
193 private int minPoolSize = 3;
194
195
196
197
198 private int maxPoolSize = 10;
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231 private LdapConnectionPoolPassivator poolPassivator = LdapConnectionPoolPassivator.BIND;
232
233
234
235
236 private LdapHostnameVerifier hostnameVerifier = LdapHostnameVerifier.DEFAULT;
237
238
239
240
241
242
243 private LdapTrustManager trustManager;
244
245
246
247
248 private boolean validateOnCheckout = true;
249
250
251
252
253 private boolean validatePeriodically = true;
254
255
256
257
258 private Duration validateTimeout = Duration.parse("PT5S");
259
260
261
262
263 private Duration validatePeriod = Duration.parse("PT5M");
264
265
266
267
268
269 private boolean failFast = true;
270
271
272
273
274
275 private Duration idleTime = Duration.parse("PT10M");
276
277
278
279
280
281 private Duration prunePeriod = Duration.parse("PT2H");
282
283
284
285
286
287
288
289
290 private Duration blockWaitTime = Duration.parse("PT3S");
291
292
293
294
295
296
297
298
299
300
301
302 private LdapConnectionStrategy connectionStrategy;
303
304
305
306
307 private boolean useStartTls;
308
309
310
311
312 private Duration connectTimeout = Duration.parse("PT5S");
313
314
315
316
317 private Duration responseTimeout = Duration.parse("PT5S");
318
319
320
321
322
323 private boolean allowMultipleDns;
324
325
326
327
328 private boolean allowMultipleEntries;
329
330
331
332
333 private boolean followReferrals = true;
334
335
336
337
338
339 private List<String> binaryAttributes = Stream.of("objectGUID", "objectSid").collect(Collectors.toList());
340
341 public String getSearchFilter() {
342 return searchFilter;
343 }
344
345 public void setSearchFilter(final String searchFilter) {
346 this.searchFilter = searchFilter;
347 }
348
349 public int getPageSize() {
350 return pageSize;
351 }
352
353 public void setPageSize(final int pageSize) {
354 this.pageSize = pageSize;
355 }
356
357 public boolean isSubtreeSearch() {
358 return subtreeSearch;
359 }
360
361 public void setSubtreeSearch(final boolean subtreeSearch) {
362 this.subtreeSearch = subtreeSearch;
363 }
364
365 public LdapType getLdapType() {
366 return ldapType;
367 }
368
369 public void setLdapType(final LdapType ldapType) {
370 this.ldapType = ldapType;
371 }
372
373 public String getLdapUrl() {
374 return ldapUrl;
375 }
376
377 public void setLdapUrl(final String ldapUrl) {
378 this.ldapUrl = ldapUrl;
379 }
380
381 public String getBindDn() {
382 return bindDn;
383 }
384
385 public void setBindDn(final String bindDn) {
386 this.bindDn = bindDn;
387 }
388
389 public String getBindCredential() {
390 return bindCredential;
391 }
392
393 public void setBindCredential(final String bindCredential) {
394 this.bindCredential = bindCredential;
395 }
396
397 public String getBaseDn() {
398 return baseDn;
399 }
400
401 public void setBaseDn(final String baseDn) {
402 this.baseDn = baseDn;
403 }
404
405 public boolean isDisablePooling() {
406 return disablePooling;
407 }
408
409 public void setDisablePooling(final boolean disablePooling) {
410 this.disablePooling = disablePooling;
411 }
412
413 public int getMinPoolSize() {
414 return minPoolSize;
415 }
416
417 public void setMinPoolSize(final int minPoolSize) {
418 this.minPoolSize = minPoolSize;
419 }
420
421 public int getMaxPoolSize() {
422 return maxPoolSize;
423 }
424
425 public void setMaxPoolSize(final int maxPoolSize) {
426 this.maxPoolSize = maxPoolSize;
427 }
428
429 public LdapConnectionPoolPassivator getPoolPassivator() {
430 return poolPassivator;
431 }
432
433 public void setPoolPassivator(final LdapConnectionPoolPassivator poolPassivator) {
434 this.poolPassivator = poolPassivator;
435 }
436
437 public LdapHostnameVerifier getHostnameVerifier() {
438 return hostnameVerifier;
439 }
440
441 public void setHostnameVerifier(final LdapHostnameVerifier hostnameVerifier) {
442 this.hostnameVerifier = hostnameVerifier;
443 }
444
445 public LdapTrustManager getTrustManager() {
446 return trustManager;
447 }
448
449 public void setTrustManager(final LdapTrustManager trustManager) {
450 this.trustManager = trustManager;
451 }
452
453 public boolean isValidateOnCheckout() {
454 return validateOnCheckout;
455 }
456
457 public void setValidateOnCheckout(final boolean validateOnCheckout) {
458 this.validateOnCheckout = validateOnCheckout;
459 }
460
461 public boolean isValidatePeriodically() {
462 return validatePeriodically;
463 }
464
465 public void setValidatePeriodically(final boolean validatePeriodically) {
466 this.validatePeriodically = validatePeriodically;
467 }
468
469 public Duration getValidateTimeout() {
470 return validateTimeout;
471 }
472
473 public void setValidateTimeout(final Duration validateTimeout) {
474 this.validateTimeout = validateTimeout;
475 }
476
477 public Duration getValidatePeriod() {
478 return validatePeriod;
479 }
480
481 public void setValidatePeriod(final Duration validatePeriod) {
482 this.validatePeriod = validatePeriod;
483 }
484
485 public boolean isFailFast() {
486 return failFast;
487 }
488
489 public void setFailFast(final boolean failFast) {
490 this.failFast = failFast;
491 }
492
493 public Duration getIdleTime() {
494 return idleTime;
495 }
496
497 public void setIdleTime(final Duration idleTime) {
498 this.idleTime = idleTime;
499 }
500
501 public Duration getPrunePeriod() {
502 return prunePeriod;
503 }
504
505 public void setPrunePeriod(final Duration prunePeriod) {
506 this.prunePeriod = prunePeriod;
507 }
508
509 public Duration getBlockWaitTime() {
510 return blockWaitTime;
511 }
512
513 public void setBlockWaitTime(final Duration blockWaitTime) {
514 this.blockWaitTime = blockWaitTime;
515 }
516
517 public LdapConnectionStrategy getConnectionStrategy() {
518 return connectionStrategy;
519 }
520
521 public void setConnectionStrategy(final LdapConnectionStrategy connectionStrategy) {
522 this.connectionStrategy = connectionStrategy;
523 }
524
525 public boolean isUseStartTls() {
526 return useStartTls;
527 }
528
529 public void setUseStartTls(final boolean useStartTls) {
530 this.useStartTls = useStartTls;
531 }
532
533 public Duration getConnectTimeout() {
534 return connectTimeout;
535 }
536
537 public void setConnectTimeout(final Duration connectTimeout) {
538 this.connectTimeout = connectTimeout;
539 }
540
541 public Duration getResponseTimeout() {
542 return responseTimeout;
543 }
544
545 public void setResponseTimeout(final Duration responseTimeout) {
546 this.responseTimeout = responseTimeout;
547 }
548
549 public boolean isAllowMultipleDns() {
550 return allowMultipleDns;
551 }
552
553 public void setAllowMultipleDns(final boolean allowMultipleDns) {
554 this.allowMultipleDns = allowMultipleDns;
555 }
556
557 public boolean isAllowMultipleEntries() {
558 return allowMultipleEntries;
559 }
560
561 public void setAllowMultipleEntries(final boolean allowMultipleEntries) {
562 this.allowMultipleEntries = allowMultipleEntries;
563 }
564
565 public boolean isFollowReferrals() {
566 return followReferrals;
567 }
568
569 public void setFollowReferrals(final boolean followReferrals) {
570 this.followReferrals = followReferrals;
571 }
572
573 public List<String> getBinaryAttributes() {
574 return binaryAttributes;
575 }
576
577 public void setBinaryAttributes(final List<String> binaryAttributes) {
578 this.binaryAttributes = binaryAttributes;
579 }
580 }