fedauth-info-parser.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _token = require("./token");
  7. const FEDAUTHINFOID = {
  8. STSURL: 0x01,
  9. SPN: 0x02
  10. };
  11. function fedAuthInfoParser(parser, _colMetadata, _options, callback) {
  12. parser.readUInt32LE(tokenLength => {
  13. parser.readBuffer(tokenLength, data => {
  14. let spn, stsurl;
  15. let offset = 0;
  16. const countOfInfoIDs = data.readUInt32LE(offset);
  17. offset += 4;
  18. for (let i = 0; i < countOfInfoIDs; i++) {
  19. const fedauthInfoID = data.readUInt8(offset);
  20. offset += 1;
  21. const fedAuthInfoDataLen = data.readUInt32LE(offset);
  22. offset += 4;
  23. const fedAuthInfoDataOffset = data.readUInt32LE(offset);
  24. offset += 4;
  25. switch (fedauthInfoID) {
  26. case FEDAUTHINFOID.SPN:
  27. spn = data.toString('ucs2', fedAuthInfoDataOffset, fedAuthInfoDataOffset + fedAuthInfoDataLen);
  28. break;
  29. case FEDAUTHINFOID.STSURL:
  30. stsurl = data.toString('ucs2', fedAuthInfoDataOffset, fedAuthInfoDataOffset + fedAuthInfoDataLen);
  31. break;
  32. // ignoring unknown fedauthinfo options
  33. default:
  34. break;
  35. }
  36. }
  37. callback(new _token.FedAuthInfoToken(spn, stsurl));
  38. });
  39. });
  40. }
  41. var _default = fedAuthInfoParser;
  42. exports.default = _default;
  43. module.exports = fedAuthInfoParser;