Facebook
From Beefy Gibbon, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 130
  1. import pify from 'pify';
  2. import SimpleKerberosError from './simple-kerberos-error';
  3.  
  4. let kerberos;
  5.  
  6. try {
  7.   const kerberosModule = require('kerberos');
  8.  
  9.   kerberos = new kerberosModule.Kerberos();
  10. }
  11. catch (err) {
  12.   throw new SimpleKerberosError('Simple Kerberos failed to load the "kerberos" module', err);
  13. }
  14.  
  15.  
  16. export default pify((token, cb) => {
  17.   kerberos.authGSSServerInit('HTTP', (err, context) => {
  18.     if (err) {
  19.       return cb(new SimpleKerberosError('Simple Kerberos failed at "init" stage', err));
  20.     }
  21.  
  22.     kerberos.authGSSServerStep(context, token, err => {
  23.       if (err) {
  24.         return cb(new SimpleKerberosError('Simple Kerberos failed at "step" stage', err));
  25.       }
  26.  
  27.       const {username} = context;
  28.  
  29.       kerberos.authGSSServerClean(context, err => {
  30.         if (err) {
  31.           return cb(new SimpleKerberosError('Simple Kerberos failed at "clean" stage', err));
  32.         }
  33.  
  34.         cb(null, username);
  35.       });
  36.     });
  37.   });
  38. });