Skip to content

Instantly share code, notes, and snippets.

@Casm82
Created December 14, 2018 18:38
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save Casm82/ffed0a7b365ad5b988dcfdfdbdf0eef2 to your computer and use it in GitHub Desktop.
const kerberos = require("kerberos");
const express = require("express");
const app = express();
const krbSvc = "HTTP@centos.domain.org";
const SegfaultHandler = require('segfault-handler');
SegfaultHandler.registerHandler("crash.log");
app.get('/', function (req, res) {
console.log('-----request-----');
console.log(req.headers);
if (!req.headers.authorization) {
res.set( 'WWW-Authenticate', 'Negotiate' );
console.log('-----response-----');
console.log(res._headers);
res.status(401).send();
} else {
//cut phrase "Negotiate "
let ticket = req.headers.authorization.substring(10);
//init server
kerberos.initializeServer(krbSvc, function(err, krbServer) {
if (err) console.error(err);
//check ticket
krbServer.step(ticket, function(err) {
if (err) console.error(err);
console.log(krbServer);
let response = 'User login: ' + krbServer.username;
res.send(response);
});
});
}
});
app.listen(3005);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment