001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2008 Sun Microsystems, Inc.
015 */
016package org.forgerock.opendj.server.config.client;
017
018
019
020import java.net.InetAddress;
021import java.util.Collection;
022import java.util.SortedSet;
023import org.forgerock.opendj.config.ManagedObjectDefinition;
024import org.forgerock.opendj.config.PropertyException;
025import org.forgerock.opendj.ldap.DN;
026import org.forgerock.opendj.ldap.schema.AttributeType;
027import org.forgerock.opendj.server.config.meta.LDAPPassThroughAuthenticationPolicyCfgDefn.MappingPolicy;
028import org.forgerock.opendj.server.config.server.LDAPPassThroughAuthenticationPolicyCfg;
029
030
031
032/**
033 * A client-side interface for reading and modifying LDAP Pass Through
034 * Authentication Policy settings.
035 * <p>
036 * An authentication policy for users whose credentials are managed by
037 * a remote LDAP directory service.
038 */
039public interface LDAPPassThroughAuthenticationPolicyCfgClient extends AuthenticationPolicyCfgClient {
040
041  /**
042   * Get the configuration definition associated with this LDAP Pass Through Authentication Policy.
043   *
044   * @return Returns the configuration definition associated with this LDAP Pass Through Authentication Policy.
045   */
046  ManagedObjectDefinition<? extends LDAPPassThroughAuthenticationPolicyCfgClient, ? extends LDAPPassThroughAuthenticationPolicyCfg> definition();
047
048
049
050  /**
051   * Gets the "cached-password-storage-scheme" property.
052   * <p>
053   * Specifies the name of a password storage scheme which should be
054   * used for encoding cached passwords.
055   * <p>
056   * Changing the password storage scheme will cause all existing
057   * cached passwords to be discarded.
058   *
059   * @return Returns the value of the "cached-password-storage-scheme" property.
060   */
061  String getCachedPasswordStorageScheme();
062
063
064
065  /**
066   * Sets the "cached-password-storage-scheme" property.
067   * <p>
068   * Specifies the name of a password storage scheme which should be
069   * used for encoding cached passwords.
070   * <p>
071   * Changing the password storage scheme will cause all existing
072   * cached passwords to be discarded.
073   *
074   * @param value The value of the "cached-password-storage-scheme" property.
075   * @throws PropertyException
076   *           If the new value is invalid.
077   */
078  void setCachedPasswordStorageScheme(String value) throws PropertyException;
079
080
081
082  /**
083   * Gets the "cached-password-ttl" property.
084   * <p>
085   * Specifies the maximum length of time that a locally cached
086   * password may be used for authentication before it is refreshed
087   * from the remote LDAP service.
088   * <p>
089   * This property represents a cache timeout. Increasing the timeout
090   * period decreases the frequency that bind operations are delegated
091   * to the remote LDAP service, but increases the risk of users
092   * authenticating using stale passwords. Note that authentication
093   * attempts which fail because the provided password does not match
094   * the locally cached password will always be retried against the
095   * remote LDAP service.
096   *
097   * @return Returns the value of the "cached-password-ttl" property.
098   */
099  long getCachedPasswordTTL();
100
101
102
103  /**
104   * Sets the "cached-password-ttl" property.
105   * <p>
106   * Specifies the maximum length of time that a locally cached
107   * password may be used for authentication before it is refreshed
108   * from the remote LDAP service.
109   * <p>
110   * This property represents a cache timeout. Increasing the timeout
111   * period decreases the frequency that bind operations are delegated
112   * to the remote LDAP service, but increases the risk of users
113   * authenticating using stale passwords. Note that authentication
114   * attempts which fail because the provided password does not match
115   * the locally cached password will always be retried against the
116   * remote LDAP service.
117   *
118   * @param value The value of the "cached-password-ttl" property.
119   * @throws PropertyException
120   *           If the new value is invalid.
121   */
122  void setCachedPasswordTTL(Long value) throws PropertyException;
123
124
125
126  /**
127   * Gets the "connection-timeout" property.
128   * <p>
129   * Specifies the timeout used when connecting to remote LDAP
130   * directory servers, performing SSL negotiation, and for individual
131   * search and bind requests.
132   * <p>
133   * If the timeout expires then the current operation will be aborted
134   * and retried against another LDAP server if one is available.
135   *
136   * @return Returns the value of the "connection-timeout" property.
137   */
138  long getConnectionTimeout();
139
140
141
142  /**
143   * Sets the "connection-timeout" property.
144   * <p>
145   * Specifies the timeout used when connecting to remote LDAP
146   * directory servers, performing SSL negotiation, and for individual
147   * search and bind requests.
148   * <p>
149   * If the timeout expires then the current operation will be aborted
150   * and retried against another LDAP server if one is available.
151   *
152   * @param value The value of the "connection-timeout" property.
153   * @throws PropertyException
154   *           If the new value is invalid.
155   */
156  void setConnectionTimeout(Long value) throws PropertyException;
157
158
159
160  /**
161   * Gets the "java-class" property.
162   * <p>
163   * Specifies the fully-qualified name of the Java class which
164   * provides the LDAP Pass Through Authentication Policy
165   * implementation.
166   *
167   * @return Returns the value of the "java-class" property.
168   */
169  String getJavaClass();
170
171
172
173  /**
174   * Sets the "java-class" property.
175   * <p>
176   * Specifies the fully-qualified name of the Java class which
177   * provides the LDAP Pass Through Authentication Policy
178   * implementation.
179   *
180   * @param value The value of the "java-class" property.
181   * @throws PropertyException
182   *           If the new value is invalid.
183   */
184  void setJavaClass(String value) throws PropertyException;
185
186
187
188  /**
189   * Gets the "mapped-attribute" property.
190   * <p>
191   * Specifies one or more attributes in the user's entry whose
192   * value(s) will determine the bind DN used when authenticating to
193   * the remote LDAP directory service. This property is mandatory when
194   * using the "mapped-bind" or "mapped-search" mapping policies.
195   * <p>
196   * At least one value must be provided. All values must refer to the
197   * name or OID of an attribute type defined in the directory server
198   * schema. At least one of the named attributes must exist in a
199   * user's local entry in order for authentication to proceed. When
200   * multiple attributes or values are found in the user's entry then
201   * the behavior is determined by the mapping policy.
202   *
203   * @return Returns the values of the "mapped-attribute" property.
204   */
205  SortedSet<AttributeType> getMappedAttribute();
206
207
208
209  /**
210   * Sets the "mapped-attribute" property.
211   * <p>
212   * Specifies one or more attributes in the user's entry whose
213   * value(s) will determine the bind DN used when authenticating to
214   * the remote LDAP directory service. This property is mandatory when
215   * using the "mapped-bind" or "mapped-search" mapping policies.
216   * <p>
217   * At least one value must be provided. All values must refer to the
218   * name or OID of an attribute type defined in the directory server
219   * schema. At least one of the named attributes must exist in a
220   * user's local entry in order for authentication to proceed. When
221   * multiple attributes or values are found in the user's entry then
222   * the behavior is determined by the mapping policy.
223   *
224   * @param values The values of the "mapped-attribute" property.
225   * @throws PropertyException
226   *           If one or more of the new values are invalid.
227   */
228  void setMappedAttribute(Collection<AttributeType> values) throws PropertyException;
229
230
231
232  /**
233   * Gets the "mapped-search-base-dn" property.
234   * <p>
235   * Specifies the set of base DNs below which to search for users in
236   * the remote LDAP directory service. This property is mandatory when
237   * using the "mapped-search" mapping policy.
238   * <p>
239   * If multiple values are given, searches are performed below all
240   * specified base DNs.
241   *
242   * @return Returns the values of the "mapped-search-base-dn" property.
243   */
244  SortedSet<DN> getMappedSearchBaseDN();
245
246
247
248  /**
249   * Sets the "mapped-search-base-dn" property.
250   * <p>
251   * Specifies the set of base DNs below which to search for users in
252   * the remote LDAP directory service. This property is mandatory when
253   * using the "mapped-search" mapping policy.
254   * <p>
255   * If multiple values are given, searches are performed below all
256   * specified base DNs.
257   *
258   * @param values The values of the "mapped-search-base-dn" property.
259   * @throws PropertyException
260   *           If one or more of the new values are invalid.
261   */
262  void setMappedSearchBaseDN(Collection<DN> values) throws PropertyException;
263
264
265
266  /**
267   * Gets the "mapped-search-bind-dn" property.
268   * <p>
269   * Specifies the bind DN which should be used to perform user
270   * searches in the remote LDAP directory service.
271   *
272   * @return Returns the value of the "mapped-search-bind-dn" property.
273   */
274  DN getMappedSearchBindDN();
275
276
277
278  /**
279   * Sets the "mapped-search-bind-dn" property.
280   * <p>
281   * Specifies the bind DN which should be used to perform user
282   * searches in the remote LDAP directory service.
283   *
284   * @param value The value of the "mapped-search-bind-dn" property.
285   * @throws PropertyException
286   *           If the new value is invalid.
287   */
288  void setMappedSearchBindDN(DN value) throws PropertyException;
289
290
291
292  /**
293   * Gets the "mapped-search-bind-password" property.
294   * <p>
295   * Specifies the bind password which should be used to perform user
296   * searches in the remote LDAP directory service.
297   *
298   * @return Returns the value of the "mapped-search-bind-password" property.
299   */
300  String getMappedSearchBindPassword();
301
302
303
304  /**
305   * Sets the "mapped-search-bind-password" property.
306   * <p>
307   * Specifies the bind password which should be used to perform user
308   * searches in the remote LDAP directory service.
309   *
310   * @param value The value of the "mapped-search-bind-password" property.
311   * @throws PropertyException
312   *           If the new value is invalid.
313   */
314  void setMappedSearchBindPassword(String value) throws PropertyException;
315
316
317
318  /**
319   * Gets the "mapped-search-bind-password-environment-variable" property.
320   * <p>
321   * Specifies the name of an environment variable containing the bind
322   * password which should be used to perform user searches in the
323   * remote LDAP directory service.
324   *
325   * @return Returns the value of the "mapped-search-bind-password-environment-variable" property.
326   */
327  String getMappedSearchBindPasswordEnvironmentVariable();
328
329
330
331  /**
332   * Sets the "mapped-search-bind-password-environment-variable" property.
333   * <p>
334   * Specifies the name of an environment variable containing the bind
335   * password which should be used to perform user searches in the
336   * remote LDAP directory service.
337   *
338   * @param value The value of the "mapped-search-bind-password-environment-variable" property.
339   * @throws PropertyException
340   *           If the new value is invalid.
341   */
342  void setMappedSearchBindPasswordEnvironmentVariable(String value) throws PropertyException;
343
344
345
346  /**
347   * Gets the "mapped-search-bind-password-file" property.
348   * <p>
349   * Specifies the name of a file containing the bind password which
350   * should be used to perform user searches in the remote LDAP
351   * directory service.
352   *
353   * @return Returns the value of the "mapped-search-bind-password-file" property.
354   */
355  String getMappedSearchBindPasswordFile();
356
357
358
359  /**
360   * Sets the "mapped-search-bind-password-file" property.
361   * <p>
362   * Specifies the name of a file containing the bind password which
363   * should be used to perform user searches in the remote LDAP
364   * directory service.
365   *
366   * @param value The value of the "mapped-search-bind-password-file" property.
367   * @throws PropertyException
368   *           If the new value is invalid.
369   */
370  void setMappedSearchBindPasswordFile(String value) throws PropertyException;
371
372
373
374  /**
375   * Gets the "mapped-search-bind-password-property" property.
376   * <p>
377   * Specifies the name of a Java property containing the bind
378   * password which should be used to perform user searches in the
379   * remote LDAP directory service.
380   *
381   * @return Returns the value of the "mapped-search-bind-password-property" property.
382   */
383  String getMappedSearchBindPasswordProperty();
384
385
386
387  /**
388   * Sets the "mapped-search-bind-password-property" property.
389   * <p>
390   * Specifies the name of a Java property containing the bind
391   * password which should be used to perform user searches in the
392   * remote LDAP directory service.
393   *
394   * @param value The value of the "mapped-search-bind-password-property" property.
395   * @throws PropertyException
396   *           If the new value is invalid.
397   */
398  void setMappedSearchBindPasswordProperty(String value) throws PropertyException;
399
400
401
402  /**
403   * Gets the "mapped-search-filter-template" property.
404   * <p>
405   * If defined, overrides the filter used when searching for the
406   * user, substituting %s with the value of the local entry's
407   * "mapped-attribute".
408   * <p>
409   * The filter-template may include ZERO or ONE %s substitutions. If
410   * multiple mapped-attributes are configured, multiple renditions of
411   * this template will be aggregated into one larger filter using an
412   * OR (|) operator. An example use-case for this property would be to
413   * use a different attribute type on the mapped search. For example,
414   * mapped-attribute could be set to "uid" and filter-template to
415   * "(samAccountName=%s)".
416   *
417   * @return Returns the value of the "mapped-search-filter-template" property.
418   */
419  String getMappedSearchFilterTemplate();
420
421
422
423  /**
424   * Sets the "mapped-search-filter-template" property.
425   * <p>
426   * If defined, overrides the filter used when searching for the
427   * user, substituting %s with the value of the local entry's
428   * "mapped-attribute".
429   * <p>
430   * The filter-template may include ZERO or ONE %s substitutions. If
431   * multiple mapped-attributes are configured, multiple renditions of
432   * this template will be aggregated into one larger filter using an
433   * OR (|) operator. An example use-case for this property would be to
434   * use a different attribute type on the mapped search. For example,
435   * mapped-attribute could be set to "uid" and filter-template to
436   * "(samAccountName=%s)".
437   *
438   * @param value The value of the "mapped-search-filter-template" property.
439   * @throws PropertyException
440   *           If the new value is invalid.
441   */
442  void setMappedSearchFilterTemplate(String value) throws PropertyException;
443
444
445
446  /**
447   * Gets the "mapping-policy" property.
448   * <p>
449   * Specifies the mapping algorithm for obtaining the bind DN from
450   * the user's entry.
451   *
452   * @return Returns the value of the "mapping-policy" property.
453   */
454  MappingPolicy getMappingPolicy();
455
456
457
458  /**
459   * Sets the "mapping-policy" property.
460   * <p>
461   * Specifies the mapping algorithm for obtaining the bind DN from
462   * the user's entry.
463   *
464   * @param value The value of the "mapping-policy" property.
465   * @throws PropertyException
466   *           If the new value is invalid.
467   */
468  void setMappingPolicy(MappingPolicy value) throws PropertyException;
469
470
471
472  /**
473   * Gets the "primary-remote-ldap-server" property.
474   * <p>
475   * Specifies the primary list of remote LDAP servers which should be
476   * used for pass through authentication.
477   * <p>
478   * If more than one LDAP server is specified then operations may be
479   * distributed across them. If all of the primary LDAP servers are
480   * unavailable then operations will fail-over to the set of secondary
481   * LDAP servers, if defined.
482   *
483   * @return Returns the values of the "primary-remote-ldap-server" property.
484   */
485  SortedSet<String> getPrimaryRemoteLDAPServer();
486
487
488
489  /**
490   * Sets the "primary-remote-ldap-server" property.
491   * <p>
492   * Specifies the primary list of remote LDAP servers which should be
493   * used for pass through authentication.
494   * <p>
495   * If more than one LDAP server is specified then operations may be
496   * distributed across them. If all of the primary LDAP servers are
497   * unavailable then operations will fail-over to the set of secondary
498   * LDAP servers, if defined.
499   *
500   * @param values The values of the "primary-remote-ldap-server" property.
501   * @throws PropertyException
502   *           If one or more of the new values are invalid.
503   */
504  void setPrimaryRemoteLDAPServer(Collection<String> values) throws PropertyException;
505
506
507
508  /**
509   * Gets the "secondary-remote-ldap-server" property.
510   * <p>
511   * Specifies the secondary list of remote LDAP servers which should
512   * be used for pass through authentication in the event that the
513   * primary LDAP servers are unavailable.
514   * <p>
515   * If more than one LDAP server is specified then operations may be
516   * distributed across them. Operations will be rerouted to the
517   * primary LDAP servers as soon as they are determined to be
518   * available.
519   *
520   * @return Returns the values of the "secondary-remote-ldap-server" property.
521   */
522  SortedSet<String> getSecondaryRemoteLDAPServer();
523
524
525
526  /**
527   * Sets the "secondary-remote-ldap-server" property.
528   * <p>
529   * Specifies the secondary list of remote LDAP servers which should
530   * be used for pass through authentication in the event that the
531   * primary LDAP servers are unavailable.
532   * <p>
533   * If more than one LDAP server is specified then operations may be
534   * distributed across them. Operations will be rerouted to the
535   * primary LDAP servers as soon as they are determined to be
536   * available.
537   *
538   * @param values The values of the "secondary-remote-ldap-server" property.
539   * @throws PropertyException
540   *           If one or more of the new values are invalid.
541   */
542  void setSecondaryRemoteLDAPServer(Collection<String> values) throws PropertyException;
543
544
545
546  /**
547   * Gets the "source-address" property.
548   * <p>
549   * If specified, the server will bind to the address before
550   * connecting to the remote server.
551   * <p>
552   * The address must be one assigned to an existing network
553   * interface.
554   *
555   * @return Returns the value of the "source-address" property.
556   */
557  InetAddress getSourceAddress();
558
559
560
561  /**
562   * Sets the "source-address" property.
563   * <p>
564   * If specified, the server will bind to the address before
565   * connecting to the remote server.
566   * <p>
567   * The address must be one assigned to an existing network
568   * interface.
569   *
570   * @param value The value of the "source-address" property.
571   * @throws PropertyException
572   *           If the new value is invalid.
573   */
574  void setSourceAddress(InetAddress value) throws PropertyException;
575
576
577
578  /**
579   * Gets the "ssl-cipher-suite" property.
580   * <p>
581   * Specifies the names of the SSL cipher suites that are allowed for
582   * use in SSL based LDAP connections.
583   *
584   * @return Returns the values of the "ssl-cipher-suite" property.
585   */
586  SortedSet<String> getSSLCipherSuite();
587
588
589
590  /**
591   * Sets the "ssl-cipher-suite" property.
592   * <p>
593   * Specifies the names of the SSL cipher suites that are allowed for
594   * use in SSL based LDAP connections.
595   *
596   * @param values The values of the "ssl-cipher-suite" property.
597   * @throws PropertyException
598   *           If one or more of the new values are invalid.
599   */
600  void setSSLCipherSuite(Collection<String> values) throws PropertyException;
601
602
603
604  /**
605   * Gets the "ssl-protocol" property.
606   * <p>
607   * Specifies the names of the SSL protocols which are allowed for
608   * use in SSL based LDAP connections.
609   *
610   * @return Returns the values of the "ssl-protocol" property.
611   */
612  SortedSet<String> getSSLProtocol();
613
614
615
616  /**
617   * Sets the "ssl-protocol" property.
618   * <p>
619   * Specifies the names of the SSL protocols which are allowed for
620   * use in SSL based LDAP connections.
621   *
622   * @param values The values of the "ssl-protocol" property.
623   * @throws PropertyException
624   *           If one or more of the new values are invalid.
625   */
626  void setSSLProtocol(Collection<String> values) throws PropertyException;
627
628
629
630  /**
631   * Gets the "trust-manager-provider" property.
632   * <p>
633   * Specifies the name of the trust manager that should be used when
634   * negotiating SSL connections with remote LDAP directory servers.
635   *
636   * @return Returns the value of the "trust-manager-provider" property.
637   */
638  String getTrustManagerProvider();
639
640
641
642  /**
643   * Sets the "trust-manager-provider" property.
644   * <p>
645   * Specifies the name of the trust manager that should be used when
646   * negotiating SSL connections with remote LDAP directory servers.
647   *
648   * @param value The value of the "trust-manager-provider" property.
649   * @throws PropertyException
650   *           If the new value is invalid.
651   */
652  void setTrustManagerProvider(String value) throws PropertyException;
653
654
655
656  /**
657   * Gets the "use-password-caching" property.
658   * <p>
659   * Indicates whether passwords should be cached locally within the
660   * user's entry.
661   *
662   * @return Returns the value of the "use-password-caching" property.
663   */
664  boolean isUsePasswordCaching();
665
666
667
668  /**
669   * Sets the "use-password-caching" property.
670   * <p>
671   * Indicates whether passwords should be cached locally within the
672   * user's entry.
673   *
674   * @param value The value of the "use-password-caching" property.
675   * @throws PropertyException
676   *           If the new value is invalid.
677   */
678  void setUsePasswordCaching(boolean value) throws PropertyException;
679
680
681
682  /**
683   * Gets the "use-ssl" property.
684   * <p>
685   * Indicates whether the LDAP Pass Through Authentication Policy
686   * should use SSL.
687   * <p>
688   * If enabled, the LDAP Pass Through Authentication Policy will use
689   * SSL to encrypt communication with the clients.
690   *
691   * @return Returns the value of the "use-ssl" property.
692   */
693  boolean isUseSSL();
694
695
696
697  /**
698   * Sets the "use-ssl" property.
699   * <p>
700   * Indicates whether the LDAP Pass Through Authentication Policy
701   * should use SSL.
702   * <p>
703   * If enabled, the LDAP Pass Through Authentication Policy will use
704   * SSL to encrypt communication with the clients.
705   *
706   * @param value The value of the "use-ssl" property.
707   * @throws PropertyException
708   *           If the new value is invalid.
709   */
710  void setUseSSL(Boolean value) throws PropertyException;
711
712
713
714  /**
715   * Gets the "use-tcp-keep-alive" property.
716   * <p>
717   * Indicates whether LDAP connections should use TCP keep-alive.
718   * <p>
719   * If enabled, the SO_KEEPALIVE socket option is used to indicate
720   * that TCP keepalive messages should periodically be sent to the
721   * client to verify that the associated connection is still valid.
722   * This may also help prevent cases in which intermediate network
723   * hardware could silently drop an otherwise idle client connection,
724   * provided that the keepalive interval configured in the underlying
725   * operating system is smaller than the timeout enforced by the
726   * network hardware.
727   *
728   * @return Returns the value of the "use-tcp-keep-alive" property.
729   */
730  boolean isUseTCPKeepAlive();
731
732
733
734  /**
735   * Sets the "use-tcp-keep-alive" property.
736   * <p>
737   * Indicates whether LDAP connections should use TCP keep-alive.
738   * <p>
739   * If enabled, the SO_KEEPALIVE socket option is used to indicate
740   * that TCP keepalive messages should periodically be sent to the
741   * client to verify that the associated connection is still valid.
742   * This may also help prevent cases in which intermediate network
743   * hardware could silently drop an otherwise idle client connection,
744   * provided that the keepalive interval configured in the underlying
745   * operating system is smaller than the timeout enforced by the
746   * network hardware.
747   *
748   * @param value The value of the "use-tcp-keep-alive" property.
749   * @throws PropertyException
750   *           If the new value is invalid.
751   */
752  void setUseTCPKeepAlive(Boolean value) throws PropertyException;
753
754
755
756  /**
757   * Gets the "use-tcp-no-delay" property.
758   * <p>
759   * Indicates whether LDAP connections should use TCP no-delay.
760   * <p>
761   * If enabled, the TCP_NODELAY socket option is used to ensure that
762   * response messages to the client are sent immediately rather than
763   * potentially waiting to determine whether additional response
764   * messages can be sent in the same packet. In most cases, using the
765   * TCP_NODELAY socket option provides better performance and lower
766   * response times, but disabling it may help for some cases in which
767   * the server sends a large number of entries to a client in response
768   * to a search request.
769   *
770   * @return Returns the value of the "use-tcp-no-delay" property.
771   */
772  boolean isUseTCPNoDelay();
773
774
775
776  /**
777   * Sets the "use-tcp-no-delay" property.
778   * <p>
779   * Indicates whether LDAP connections should use TCP no-delay.
780   * <p>
781   * If enabled, the TCP_NODELAY socket option is used to ensure that
782   * response messages to the client are sent immediately rather than
783   * potentially waiting to determine whether additional response
784   * messages can be sent in the same packet. In most cases, using the
785   * TCP_NODELAY socket option provides better performance and lower
786   * response times, but disabling it may help for some cases in which
787   * the server sends a large number of entries to a client in response
788   * to a search request.
789   *
790   * @param value The value of the "use-tcp-no-delay" property.
791   * @throws PropertyException
792   *           If the new value is invalid.
793   */
794  void setUseTCPNoDelay(Boolean value) throws PropertyException;
795
796}