Skip to content

Instantly share code, notes, and snippets.

@MACSkeptic
Last active December 10, 2015 22:08
Show Gist options
  • Save MACSkeptic/4499365 to your computer and use it in GitHub Desktop.
Save MACSkeptic/4499365 to your computer and use it in GitHub Desktop.
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, data = require('./routes/data')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set("view options", { layout: false })
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({cookie: {path: '/', maxAge: null}, secret: 'your secret code to encode the cookie'}));
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
//app.get('/', routes.index);
app.get('/users', user.list);
defaults = {
};
var cas = require('cas-sfu');
var casauth = cas.getMiddleware({
service: 'http://localhost:3000',
casHost: 'https://cas.thoughtworks.com',
casBasePath: '/cas',
loginPath: '/login',
logoutPath: '/logout',
validatePath: '/servicevalidate',
userObject: 'AUTH_USER'
});
var loggedin = function(req, res, next) {
var ticket = (req.session && req.session.ticket) || req.query.ticket;
new cas({
service: 'http://localhost:3000',
casHost: 'https://cas.thoughtworks.com',
casBasePath: '/cas',
loginPath: '/login',
logoutPath: '/logout',
validatePath: '/servicevalidate',
userObject: 'AUTH_USER'
}).validate(ticket, function (err, logged, resp) {
if(!err) {
req.session.ticket = ticket;
next();
return;
}
req.session.referer = req.url;
res.redirect('/login');
})
};
app.get('/login', casauth, function(req, res) {
req.session.AUTH_USER.logindate = new Date();
res.redirect(req.session.referer || '/');
});
app.get('/', loggedin, routes.index);
app.get('/data', data.read);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment