forked from spring-projects/spring-ldap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
613 lines (426 loc) · 24.9 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
Spring LDAP CHANGELOG
=====================
http://www.springframework.org/ldap
http://www.ietf.org/rfc/rfc1960.txt
http://www.ietf.org/rfc/rfc2251.txt
http://www.ietf.org/rfc/rfc2252.txt
http://www.ietf.org/rfc/rfc2253.txt
http://www.ietf.org/rfc/rfc2254.txt
http://www.ietf.org/rfc/rfc2255.txt
http://www.ietf.org/rfc/rfc2256.txt
http://www.ietf.org/rfc/rfc2696.txt
http://www.ietf.org/rfc/rfc2829.txt
Changes in version 1.3.2 (Not released yet)
-------------------------------------------
* Changed log level to debug for missing 'returnObjFlag'. (LDAP-181)
Changes in version 1.3.1 (November 2010)
-------------------------------------------
* Added an object-directory mapping framework (ODM). Contributed by Paul
Harvey.
* Added an LDIF parsing framework. Contributed by Keith Barlow.
* Added an extension to ContextMapperCallbackHandler that can provide the
associated mapper with an indication that the response is different for
each search result. (LDAP-185)
* AbstractTlsDirContextAuthenticationStrategy now provides a setter for
customizing SSLSocketFactory used for TLS negotiation. (LDAP-180)
* DirContextAdapter.getObjectAttribute now returns null if the attribute
exists but with no value. Added method attributeExists for cases where
it has to be detected whether it was one or the other. (LDAP-215)
* Added LookupAttemptingCallback for performing operation in authenticated
context. (LDAP-203)
* Added utility methods for converting a Windows security identifier (SID)
between a binary format and a slightly more readable string format.
http://msdn.microsoft.com/en-us/library/aa379571%28VS.85%29.aspx
(LDAP-187)
* Added authentication methods that provide a possible authentication
exception through an AuthenticationErrorCallback. (LDAP-192)
* Authentication methods now treat a search result of more than one user as
an error and throw IncorrectResultSizeDataAccessException. (LDAP-170)
* Authentication methods now log problems at level INFO rather than ERROR.
(LDAP-170)
* It's now possible to control the case folding of attribute keys in
DistinguishedName by setting the system property
DistinguishedName.KEY_CASE_FOLD_PROPERTY to one of "lower", "upper", or
"none". (LDAP-188)
* DIGEST-MD5 SASL authentication mechanism is now supported, as specified by
RFC 2829 (see http://www.ietf.org/rfc/rfc2829.txt, section 4). (LDAP-173)
Contributed by Marvin S. Addison.
* DefaultDirObjectFactory calls a Java5 version of the IllegalArgumentException
constructor. (LDAP 196)
* DirContextAdapter JavaDoc now states clearly that several methods are not
implemented on purpose. (LDAP-208)
* Class-level JavaDoc for OrFilter no longer uses AndFilter in sample code. (LDAP-217)
* Upgraded Spring to 2.5.6.SEC02 and 3.0.3.RELEASE. (LDAP-210)
* Upgraded Spring to 2.5.6.SEC01. (LDAP-194)
* Build is no longer using the default platform encoding, but UTF-8. (LDAP-201)
Changes in version 1.3.0 (Jan 2009)
-------------------------------------------
* Added methods for simple LDAP 'bind' authentication in LdapOperations and
SimpleLdapOperations. The methods will perform a search given a supplied
filter, call ContextSource#getContext(dn, password), and optionally callback
to a supplied instance to perform an LDAP operation on the context.
* Re-used the same fix for LDAP-109 and LDAP-50 that was used in
DefaultDirObjectFactory to secure the DirContextAdapter constructors from
invalid CompositeNames.
* Made sure DirContextOperations#addAttributeValue(String, Object) does not add
any duplicate values per default; added alternate method:
DirContextOperations#addAttributeValue(String, Object, boolean) to enable
behavior other than the default (i.e. allowing duplicates).
* Made sure that DirContextAdapter#setDn() throws exception if in update mode
(The value is not set anyway, and this was previously silently ignored).
* Improved more search methods that take handlers so that they will work
with handlers that use ContextMappers, e.g. ContextMapperCallbackHandler.
(LDAP-162)
* Made sure article sample tests are possible to run without running web
application (i.e. tests automatically start internal LDAP server). (LDAP-143)
* SortControlDirContextProcessor no longer has hard dependencies to controls in
LDAP Booster Pack. (LDAP-159)
* Common code in DirContextProcessor implementations has been pulled up to a
base class called AbstractFallbackRequestAndResponseControlDirContextProcessor.
(LDAP-161)
* PagedResultsRequestControl has been deprecated in favor of
PagedResultsDirContextProcessor, which takes advantage of the new
AbstractFallbackRequestAndResponseControlDirContextProcessor. (LDAP-160)
* Added spring-tx as required dependency (the DataAccessExceptions require
this).
* Added demo projects to simplify refactoring demonstrations. (LDAP-154)
* Added LdapEntryIdentification, a simple bean containing the DNs of an LDAP
entry, relative to the base context as well as absolute. Also added
special ContextMapper implementation producing these entries;
LdapEntryIdentificationContextMapper. (LDAP-149)
* Added LdapTemplate#searchForObject(base, filter, mapper) and
SimpleLdapTemplate#searchForObject(base, filter, mapper); methods
to search for a single object, analogous to JdbcTemplate#queryForObject().
(LDAP-150)
* DistinguishedName (LdapRdnComponent really) now correctly calculates the
hashCode for names where case differs, and now correctly adheres to the
equals/hashCode contract. (LDAP-151)
* Various improvements to immutability of DistinguishedNames throughout the
framework. DistinguishedName#immutableDistinguishedName now produces a truly
immutable copy of the original. Also made sure that it is not possible to
accidentally alter the internal state of e.g. DirContextAdapter by modifying
its DistinguishedName - copies are now returned in DirContextAdapter#getDn()
and DirContextAdapter#getBase(). (LDAP-146)
* Added LdapTemplate#rebind(DirContextOperations). (LDAP-144)
* Added PresentFilter and NotPresentFilter to simplify searching for presence
or absence of an attribute. (LDAP-152)
* Added DirContextAdapter constructor that takes its DN as a String. (LDAP-145)
Changes in version 1.3.0.RC1 (Oct 2008)
-------------------------------------------
* TLS connections are now supported using the DefaultTlsDirContextAuthenticationStrategy
and ExternalTlsDirContextAuthenticationStrategy. (LDAP-8)
* NameNotFound is no longer silently ignored in searches. It is possible
to use the old behavior by setting the ignoreNameNotFoundException property
to true in LdapTemplate. (LDAP-134)
* Referrals can now be handled by setting the property 'Context.REFERRAL'
to 'follow' in the base context supplied to AbstractContextSource, provided
that name servers are set up properly. Any DirContextAdapter instances
resulting from referrals will provide the URL of the referred server in
getReferralUrl(). (LDAP-136, LDAP-9)
* The hard dependency on LDAP Booster Pack has now been completely removed,
preventing NoClassDefFoundErrors when using Paged Results without that
library on the classpath. (LDAP-110, LDAP-118)
* The dreaded problem with '\' in Distinguished Names is now resolved.
(LDAP-50, LDAP-109)
* Added bind method that takes a DirContextOperations instance as parameter,
performing the bind using the DN and Attributes from the DirContextOperations
instance. (LDAP-140)
* DistinguishedName now returns compactly formatted String representations
from toString, e.g.:
cn=John Doe,ou=Company,c=Sweden
rather than
cn=John Doe, ou=Company, c=Sweden
To keep using the old formatting (for backward compatibility) set the
system property org.springframework.ldap.core.spacedDnFormat to true.
(LDAP-138, LDAP-112, LDAP-91)
* Changed default of 'pooling' flag in AbstractContextSource.
This now defaults to false; consider the Spring LDAP PoolingContextSource
as the preferred alternative to using the built-in Java Connection Pooling.
* Added configuration property to AbstractContextSource to specify referral
behavior. Setting this property to 'follow' will enable referrals to be
automatically followed, provided that the name server environment is properly
set up.
* Now using Maven for building internally. (LDAP-80, LDAP-82, LDAP-95)
* Added HardcodedFilter class and corresponding PropertyEditor FilterEditor,
to allow for easily working with pre-encoded search filters
e.g. in configuration files. (LDAP-28)
* Added ContextSourceAndHibernateTransactionManager to enable integration
of client-side LDAP Transactions in a Hibernate environment. (LDAP-115)
* Added append method to BinaryLogicalFilter allowing client code to use
and/or filters from the same code. (LDAP-116)
* Introduced DirContextAuthenticationStrategy to AbstractContextSource
to enable more flexible context authentication strategies, e.g.
TLS and Proxy Auth. (LDAP-124)
* Corrected reference doc claiming DataAccessException hierarchy. (LDAP-106)
* Probably the most requested feature of all - a plain method for simple
authentication is now provided in the ContextSource interface.
(LDAP-39, LDAP-103)
* The order of multi-valued attributes is now properly preserved by
DirContextAdapter#getModificationItems(). (LDAP-96)
* ContextSourceTransactionManager now properly throws a
CannotCreateTransactionException if anything goes wrong in doBegin(). (LDAP-122)
* It is now possible to set the criticality on PagedResultsControl.
(LDAP-126)
* DirContextAdapter now has a getObjectAttributes method, as stated in
reference docs. (LDAP-137)
* DirContextAdapter#getStringAttributes, getObjectAttributes, and
getAttributeSortedStringSet now all return null if the requested Attribute
is not present, and an empty result (array or set) if present but empty.
(LDAP-130)
* SimpleLdapOperations/SimpleLdapTemplate now has mirrored methods that take
Name parameters. (LDAP-139)
* Fixed documentation glitch regarding ContextSourceAndDataSourceTransactionManager.
(LDAP-99)
* Added the possibility to configure the search scope on DefaultDirContextValidator.
Changed the default to OBJECT_SCOPE. (LDAP-121)
* Fixed DistinguishedName parsing error; \r is now allowed in Distinguished Names,
complying with LDAP v3 DN RFC. (LDAP-97)
* Moved SingleContextSource from an obscure inner class to a top-level
class. This class doesn't close the DirContext, but reuses the same.
Useful for scenarios like Paged Results. (LDAP-114)
* Removed deprecated method setUserName() in AbstractContextSource.
* Added a method DistinguishedName.toCompactString that returns a more
compact String representation without blanks. (LDAP-91)
* Improved search methods that take handlers so that they will work
with handlers that use ContextMappers, eg ContextMapperCallbackHandler.
(LDAP-107)
* Fixed a problem where the narrowest possible exception subclass was
not always found in the exception translation. (LDAP-100)
* Made changes required for paged results to work when using Spring LDAP
connection pool with a single connection. (LDAP-114)
* Removed AcegiAuthenticationSource - use SpringSecurityAuthenticationSource
(included with Spring Security) instead.
* Upgraded commons-lang to 2.3.
* Upgraded Spring to 2.5.6. (LDAP-125)
Changes in version 1.2.1 (Dec 2007)
-------------------------------------------
* Added pooling library which features flexible connection validation
and better configuration than the built-in pooling. (LDAP-85)
* Fixed a problem in AbstractContextSource which led to an unnecessary
reference to the LDAP Booster Pack (ldapbp). (LDAP-88, LDAP-89)
* Added missing package description and updated copyright. (LDAP-92)
* Added build instructions. (LDAP-27)
* Fixed bug in SimpleLdapTemplate where the wrong target method was being
called. (LDAP-93)
* Made createContext in AbstractContextSource protected rather than
package private. (LDAP-94)
Changes in version 1.2 (Oct 2007)
-------------------------------------------
A number of API-breaking changes have been made in the 1.2 release compared to version 1.1.2.
Consequently this is NOT a drop-in replacement for Spring LDAP 1.1.2,
though upgrading should not present all that much work. Please see
the supplied upgrade guide for details.
* Added getContextSource on LdapTemplate.
* The following getters on AbstractContextSource have been added:
getContextFactory
getDirObjectFactory
getAuthenticationSource
getUrls (was protected)
isPooled
isAnonymousReadOnly
* Upgraded to Spring 2.0.6 internally. Spring 1.2.x is still supported.
* Reviewed all javadoc.
* Revised reference manual.
* AbstractConnection source now actively removes pooling flag from context environment
if pooling is set to 'false'. (LDAP-83)
* AcegiAuthenticationSource now supports anonymous authentication. (LDAP-67)
* Added BaseLdapPathSource, BaseLdapPathAware and BaseLdapNameBeanPostProcessor to be used
if the ContextSource base path is needed by beans. There is now also a DistinguishedNameEditor
available for directly injecting DistinguishedName instances to beans. (LDAP-86)
* Added immutableDistinguishedName() method in DistinguishedName to get an immutable
copy of the instance. (LDAP-87)
* Added easier access methods for RDN attributes and values. (LDAP-71)
* Added lookupContext() and alternate modifyAttributes() in LdapOperations/LdapTemplate
to simplify updates. (LDAP-78)
* Modified append() method in DistinguishedName. This method now returns the instance, to
enable more fluent building of DistinguishedNames. (LDAP-74)
* Added SimpleLdapTemplate providing Java 5 generics support. (LDAP-72)
* Added AbstractContextMapper implementation. (LDAP-76)
Changes in version 1.2-RC1 (5.12.2007)
-------------------------------------------
A number of API-breaking changes have been made in this release,
mainly package restructuring stuff (LDAP-33). Consequently this is
NOT a drop-in replacement for Spring LDAP 1.1.2, though upgrading
should not present all that much work. Please see the supplied
upgrade guide for details.
* Restructured packages (LDAP-33):
- Moved the core classes into the package ldap.core.
- Moved subpackages of ldap.support to top level.
- Moved most classes in ldap.support to ldap.core or ldap.core.support.
- Moved classes in ldap.utils to ldap.support and removed ldap.utils.
* Changed the exception hierarchy to be an unchecked mirror of the JNDI
NamingException hierarchy (LDAP-4).
* Deprecated the userName property in AbstractContextSource and changed
it to the more correct userDn (LDAP-18).
* Fixed bug causing PagedResultsRequestControl processing to fail against AD
in the case of a PartialResultsException (LDAP-32).
* Fixed bug causing NullPointerException in some environments when performing
PagedResultsRequestControl search (LDAP-37).
* Implemented client-side transaction support for Spring LDAP. See reference
documentation for further information (LDAP-29).
* DirContextAdapter.setAttribute() now properly updates updatedAttrs in update mode
(resulting in ModificationItems if applicable) (LDAP-15).
* Exceptions thrown by Spring LDAP are now always Serializable, regardless of whether
the wrapped NamingException is (which is not always the case) (LDAP-14).
* LdapRdnComponent now implements Serializable (LDAP-45).
* Rewrote LdapEncoder.nameDecode() to solve problem with national characters and
remove regular expression used in parsing, drastically improving Distinguished Name
parsing performance as a bonus (LDAP-30).
* The DefaultDirObjectFactory.JNDI_ENV_BASE_PATH_KEY has been deprecated. If the base
property needs to be accessed from a subclass to AbstractContextSource, use the new
protected method getBase (LDAP-55).
* LdapContextSource.getAnonymousEnv no longer sets a broken ResponseControlFactory in
the environment (LDAP-64).
* Upgraded ApacheDS to 1.0.0 (LDAP-32).
* Upgraded to Acegi Security 1.0.3 (LDAP-61).
* Upgraded to ApacheDS 1.0.0 (LDAP-32).
* Upgraded to Spring 2.0.4 internally. Spring 1.2.x is still supported (LDAP-35, LDAP-51).
* Upgraded to Spring WebFlow 1.0.2 in the Person sample (LDAP-60).
* Fixed a number of documentation errors and typos (LDAP-41, LDAP-40, LDAP-47, LDAP-48).
* Extracted useful inner classes from LdapTemplate to top-level classes (LDAP-42).
* Implemented addAttributeValue and removeAttributeValue in DirContextAdapter (LDAP-5).
* Modified DirContextOperations interface so that getNameInNamespace doesn't throw NamingException.
* Fixed NullPointerException when getting PagedResultsRequestControl response (LDAP-66).
* Rewrote logic i DirContextAdapter.getModificationItems(). The JNDI provider's Attribute
comparison logic is now used internally. Also, REMOVE_ATTRIBUTE items are placed
first in the ModificationItem array, in order to prevent ATTRIBUTE_ALREADY_EXIST errors
(LDAP-13, LDAP-46).
* In internal integration tests, each test now runs on a clean LDAP database (LDAP-43).
* DirContextProcessor#postProcess() is now called in searches regardless of whether an
exception is thrown (LDAP-26).
* Moved SortControlDirContextProcessor to spring-ldap from sandbox (LDAP-68).
Changes in version 1.1.2 (1.12.2006)
-------------------------------------------
* Fixed problem with DirContextAdapter.getNameInNameSpace. Now it really
returns the full DN.
* There is now a wrapper class called PagedResult, which can be used to
wrap the resulting list and the PagedResultsCookie after using
PagedResultsRequestControl.
* The actual cookie in PagedResultsCookie is now immutable.
* The person sample is now a Spring WebFlow application, where the user
can manage persons and standard LDAP access groups.
* Improved javadoc for DefaultDirObjectFactory and DistinguishedName.
* Upgraded Spring to 2.0.1 internally. Spring 1.2.8 is still supported.
Changes in version 1.1.1 (18.11.2006)
-------------------------------------------
* Added capability to use server-side controls in search by leveraging
DirContextProcessor.
* Added generic DirContextProcessor that is run before and after a search.
* Added paged search result functionality in PagedResultsRequestControl,
which is an implementation of DirContextProcessor.
* Fixed problem with DirContextAdapter, where the wrong change was applied
when a change was followed by a reset to the original values.
* DirContextAdapter.getNameInNamespace() now returns the full DN, as per the
documentation for javax.naming.Context.
* The parsing of DistinguishedName has been changed from using regexp to
a JavaCC parser, which means improved performance (5-6 times faster) and
better error messages.
* DistinguishedName now supports multi-valued RDNs separated by a '+' sign,
like "cn=Rod+sn=Johnson", for example. All according to spec 2253.
* LdapRdn is now Serializable.
* Added lookup methods that take an array of return attribute names.
* Made DistinguishedName.EMPTY_NAME an immutable DistinguishedName instance.
* Separated integration tests that require OpenLDAP from the other integration
tests that run the in-JVM Apache DS server.
* Changed the spring-ldap-person sample application to authenticate and
authorize against groups rather than role attributes.
* Upgraded Spring to 2.0 internally. Spring 1.2.8 is still supported.
Changes in version 1.1 (28.8.2006)
-------------------------------------------
* Changed base package from net.sf.ldaptemplate to org.springframework.ldap
* Changed package ...support.acegi to ...support.authentication
* Replaced SearchResultCallbackHandler with NameClassCallbackHandler
to enable its use in all search operations (search, list, listBindings).
Changed all references and implementing classes accordingly,
including name changes where applicable:
** CollectingSearchResultCallbackHandler was replaced by CollectingNameClassPairCallbackHandler.
** CountSearchResultCallbackHandler was replaced by CountNameClassPairCallbackHandler
* Added NameClassPairMapper for use with list operations
* Added DefaultNameClassPairCallbackHandler.
* Added DefaultValuesAuthenticationSourceDecorator to enable default authentication
information when AuthenticationSource returns empty values.
* ContextSource implementations now creates authenticated Contexts by default,
since the previous behaviour has proven to be confusing.
The authenticatedReadOnly flag was replaced by an anonymousReadOnly flag.
* AbstractContextSource now defaults the dirObjectFactory property to DefaultDirObjectFactory.
* Added search methods to LdapTemplate for specifying return attributes.
* Added list and listBindings methods to LdapTemplate.
* Fixed bug in AbstractContextSource regarding java version number and base path.
* Improved javadocs.
* Upgraded Spring to 2.0-rc3.
* Added full reference documentation.
Changes in version 1.0.2 (LdapTemplate) (26.6.2006)
------------------------------------
* Added methods in LdapTemplate to unbind recursively.
* Added rename() method to LdapTemplate.
* Fixed bug in getPrefix() of DistinguishedName.
* Fixed bug in getModificationItems() of DirContextAdapter.
The method now correctly handles changes of individual vales in
multi-value attributes.
* Introduced AbstractContextSource, moved the code from LdapContextSource there
and made LdapContextSource and DirContextSource inherit from this.
* Upgraded to Acegi 1.0.0. Removed classes no longer needed:
LdapTemplateLdapAuthenticationProvider
LdapTemplateUserDetails
*NOTE*:
This means that configuration needs to be changed if using Acegi,
since the API and package structure has changed in Acegi between
versions 1.0.0-RC2 and 1.0.0 final.
Changes in version 1.0.1 (LdapTemplate) (5.5.2006)
-----------------------------------
* Now checking whether the first argument to getObjectInstance in
DefaultDirObjectFactory is a Context, and if so, closing it properly.
* Fixed reference to non-existent ContextSourceImpl in ldaptemplate-person.
* Upgraded Spring to 2.0-m4.
* Upgraded DDSteps to 1.1-rc1 and EasyMock to 1.2.
Changes in version 1.0 (LdapTemplate) (24.4.2006)
----------------------------------
* Introduced the AuthenticationSource interface to enable other strategies for
retrieving principal and credentials than a hard-coded username/password.
* Added the AcegiAuthenticationSource implementation for retrieving a previously
authenticated principal and credentials using Acegi.
* Added a 'cacheEnvironmentProperties' property that enables the user to choose
whether to cache the environment HashMap or to re-create it each time a new
Context is created.
* Added an ignorePartialResultException to LdapTemplate which causes all
PartialResultExceptions to be ignored during searches, for use when working
against Active Directory, which cannot handle referrals correctly.
* Added search methods in LdapOperations (and LdapTemplate) that take a
parameter for SearchControls.
* The methods getNamesOfModifiedAttributes, update, and getAttributeSortedStringSet
in DirContextOperations (and DirContextAdapter) no longer throw NamingException.
Instead, they throw unchecked DataAccessExceptions.
* The method getModificationItems in AttributeModificationsAware no longer throws
NamingException. Instead, it throws unchecked DataAccessExceptions.
* Removed the (unused) 'task' parameter to NamingExceptionTranslator.translate.
* Removed the deprecated ContextSourceImpl class.
* Integration tests now run using an in-memory version of Apache Directory Server,
rather than requiring a working installation of a directory server.
* Integration tests now run together with pure unit tests under the 'tests' Ant target.
* The ldaptemplate-person sample web application now uses an in-memory version of Apache
Directory Server, rather than requiring a working installation of a directory server.
* Upgraded Spring to 2.0-m3.
* The build now uses Ivy 1.3.1.
Changes in version 1.0-RC2 (LdapTemplate) (22.2.2006)
--------------------------------------
* LdapV2 is now supported.
ContextSourceImpl has been deprecated. In stead the new
LdapContextSource should be used for LdapV3 and a DirContextSource
has been added for LdapV2 compatibility.
* Ability has been added in LdapContextSource and DirContextSource
to specify that an authenticated context should be used for
read-only operations as well. Use property 'authenticatedReadOnly'
in LdapContextSource/DirContextSource.
* The Filter classes have been cleaned up.
* DirContextAdapter has been cleaned up. Most important to note is that
in this operation the 'setStringAttribute/setStringAttributes' methods
have been removed and replaced by 'setAttributeValue/setAttributeValues'.
* Base DNs are now correctly URL encoded when building the connection String.
This means that spaces and other 'unsafe' characters in base DNs should no
longer be manually URL encoded.
* An AttributesIntegrityViolationException has been added and is thrown when
an InvalidAttributesException is encountered.
* More unit tests have been added.
Changes in version 1.0-RC1 (LdapTemplate) (27.1.2006)
--------------------------------------
* First public release candidate.