Commit Graph

16 Commits

Author SHA1 Message Date
Patrick Mooney 69c72dc45f Clean up DN asserts and tests 2015-11-02 22:55:25 -06:00
Patrick Mooney 495ea2afce Overhaul DN parsing and formatting
Certain applications depend upon DN string formatting in a manner more
strict than specified in the RFC.  To enable format transcription and
reproduction, some changes were made to how DNs are converted to/from
strings.

- Store RDN strings raw instead of escaped
- Record formatting details during DN/RDN parsing
- Add DN.format method to control format recreation
- Remove DN.spaced method in favor of DN.setFormat

Fix mcavage/node-ldapjs#176
2015-02-17 15:35:06 -06:00
Patrick Mooney 408e7c9f99 Support invalid DNs in client/server
Some LDAP implementations (mainly AD and Outlook) accept and/or output
DNs that are not valid.  To support interaction with these invalid DNs a
strictDN flag (default: true) has been added to the client and server
constructors.  Setting this flag to false will allow use of
non-conforming DNs.

When disabling strictDN in the ldapjs client, strings which wouldn't
parse into a DN can then be passed to the ldap operation methods.  It
also means that some methods (such as search) may return results with
string-formatted DNs instead of DN objects.

When disabling strictDN in the ldapjs server, incoming requests that
contain invalid DNs will be routed to the default ('') handler for that
operation type.  It is your responsiblity to differentiate between
string-type and object-type DNs in those handlers.

Fix mcavage/node-ldapjs#222
Fix mcavage/node-ldapjs#146
Fix mcavage/node-ldapjs#113
Fix mcavage/node-ldapjs#104
2014-09-30 18:39:19 -05:00
Patrick Mooney 0d12eef3ff Improve DN formatting flexibility
- Add 'spaced' function to DN objects allowing toggle of inter-RDN when
  rendering to a string.  ('dc=test,dc=tld' vs 'dc=test, dc=tld')

- Detect RDN spacing when parsing DN.
2013-10-24 18:27:42 -05:00
Mark Cavage afeb354eac Initial setup for 0.5 (use eng.git layout) 2012-02-18 08:15:52 +00:00
Mark Cavage 8c212908a0 more dn/server cleanup 2011-11-07 17:23:38 -08:00
Mark Cavage 28ddaaad69 Minor cleanup of server handling and null DNs 2011-11-07 17:12:59 -08:00
Mark Cavage b8799d6a1e Don't be so strict about dn methods requiring a DN instance 2011-10-20 11:22:31 -07:00
Mark Cavage e0007f6f6a new DN methods 2011-10-18 08:50:44 -07:00
Mark Cavage 12356c5628 GH-20 case insensitive treatment of attribute names in a DN 2011-09-29 14:46:10 -07:00
Mark Cavage be3d5fa7fa GH-16: dn.equals broken on empty strings 2011-09-23 08:54:48 -07:00
Mark Cavage 7aa1bfe586 DTrace rework; now supporting a conn/message specific ID so you can track latency 2011-08-30 18:12:34 +00:00
Mark Cavage 51f944d834 dn parentof/childof fixes 2011-08-15 17:52:05 -07:00
Mark Cavage 120e0011a3 Rework server mount APIs 2011-08-15 09:44:31 -07:00
Mark Cavage 44bd29952e attribute was lowercasing vals, not attr name 2011-08-10 10:57:58 -07:00
Mark Cavage ca1443f102 Initial working client/server version 2011-08-04 13:32:01 -07:00