Advertisement
Guest User

Untitled

a guest
Aug 1st, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. var SUFFIX = 'dc=vis,dc=net';
  2. var pfUsername = '<ADMINDN>';
  3. var pfPassword = '<ADMINPW>';
  4. var url = 'ldaps://vis.res.eq.edu.au';
  5. var filter = '(uid=mjwoo1)';
  6.  
  7. var oldPassword = "oldpw";
  8. var newPassword = "newpw";
  9.  
  10. var Client, testClient, anon_client;
  11.  
  12. var ldap = require('ldapjs'),
  13. _ = require('lodash'),
  14. fs = require('fs');
  15.  
  16.  
  17. function encodePassword(password) {
  18. return new Buffer('"' + password + '"', 'utf16le').toString();
  19. }
  20.  
  21. ldap.Attribute.settings.guid_format = ldap.GUID_FORMAT_B;
  22.  
  23. Client = ldap.createClient({
  24. url: url,
  25. tlsOptions: {
  26. ca: [
  27. fs.readFileSync('MPEROOTCA.pem'),
  28. fs.readFileSync('MPEINTPOLCA.pem'),
  29. fs.readFileSync('MPEINTISS1CA.pem')
  30. ]
  31. }
  32. });
  33.  
  34.  
  35. Client.bind(pfUsername, pfPassword, function (err, result) {
  36. if (err) {
  37. console.error('error: ' + err);
  38. } else {
  39. Client.search('dc=vis,dc=net', {
  40. filter: filter,
  41. attributes: 'dn',
  42. scope: 'sub'
  43. }, function(err, res) {
  44. res.on('searchEntry', function(entry) {
  45. var userDN = entry.object.dn;
  46. Client.modify(userDN, [
  47. new ldap.Change({
  48. operation: 'delete',
  49. modification: {
  50. unicodePwd: encodePassword(oldPassword)
  51. }
  52. }),
  53. new ldap.Change({
  54. operation: 'add',
  55. modification: {
  56. unicodePwd: encodePassword(newPassword)
  57. }
  58. })
  59. ], function(err) {
  60. if (err) {
  61. console.log(err.code);
  62. console.log(err.name);
  63. console.log(err.message);
  64. client.unbind();
  65. }
  66. else {
  67. console.log('Password changed!');
  68. }
  69. });
  70. });
  71. res.on('error', function(err) {
  72. console.error('error: ' + err.message);
  73. });
  74. res.on('end', function(result) {
  75. console.log('status: ' + result.status);
  76. });
  77. });
  78. }
  79. });
  80.  
  81.  
  82.  
  83. // Client.unbind(function (error) {
  84. // });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement