Added new modules to help prevent Cross Site Request Forgery
[sdnc/oam.git] / admportal / server / router / routes / root.js
1 var express = require('express');
2 var router = express.Router();
3 var csp = require('./csp.js');
4 var dbRoutes = require('./dbRoutes.js');
5 var sla = require('./sla');
6 var os = require('os');
7 var async = require('async');
8 var OdlInterface = require('./OdlInterface');
9 var properties = require(process.env.SDNC_CONFIG_DIR + '/admportal.json');
10 var cookieParser = require('cookie-parser')
11 var csrf = require('csurf')
12 var bodyParser = require('body-parser')
13
14 var csrfProtection = csrf({cookie:true});
15 var parseForm = bodyParser.urlencoded({ extended: false })
16
17
18
19 router.use('/healthcheck', function(req,res){
20         res.render('pages/healthcheck');
21 });
22 router.get('/test', function(req,res){
23
24 //console.log('port='+ req.socket.localPort);
25 //console.log('port='+ req.protocol);
26
27         // pass host, username and password to ODL
28         var username = properties.odlUser;
29         var password = properties.odlPasswd;
30         var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64');
31
32         // target host for ODL request
33         var host = properties.odlHost;
34         var header = {'Host': host, 'Authorization': auth, 'Content-Type': 'application/yang.data+json'};
35         var c_header = {'Host': properties.odlConexusHost, 'Authorization': auth, 'Content-Type': 'application/yang.data+json'};
36
37 // path = '/restconf/config/SLI-API:healthcheck',
38         var _options = {
39                 method                    : 'POST',
40         host              : host,
41         headers           : header,
42         port              : '8443',
43                 path                      : '/restconf/operations/SLI-API:healthcheck',
44         rejectUnauthorized: false,
45         strictSSL         : false
46         };
47         var c_options = {
48                 method                    : 'POST',
49         host              : properties.odlConexusHost,
50         headers           : c_header,
51         port              : '8543',
52                 path                      : '/restconf/operations/SLI-API:healthcheck',
53         rejectUnauthorized: false,
54         strictSSL         : false
55         };
56
57
58     var tasks = [];
59     //tasks.push( function(callback) { dbRoutes.testdb(req,res,callback); } );
60
61         tasks.push ( createFunctionObj(_options) );
62
63         tasks.push ( createFunctionObj(c_options) );
64
65     async.series(tasks, function(err,result){
66         if(err) {
67                         res.status(400).send(err);
68                         return;
69         }
70                 res.status(200).send(result);
71                 return;
72         });
73 });
74
75 function createFunctionObj( loptions ) {
76         return function(callback) { OdlInterface.Healthcheck(loptions,callback); };
77 }
78
79 //router.get('/mytree', function(req,res) {
80 //      res.render('pages/tree');
81 //});
82 //router.get('/setuplogin', function(req,res) {
83 //      res.render('pages/setuplogin');
84 //});
85 //router.post('/formSetupLogin', function(req,res) {
86 //      dbRoutes.saveSetupLogin(req,res);
87 //});
88
89 router.get('/login', csrfProtection, function(req,res) {
90         var tkn = req.csrfToken();
91         res.render('pages/login', {csrfToken:tkn});
92         return;
93 });
94 router.post('/formlogin', csrfProtection, function(req,res) {
95         csp.login(req,res);
96 });
97
98 router.get('/signup', csrfProtection, function(req,res) {
99         var tkn = req.csrfToken();
100         res.render('pages/signup', {csrfToken:tkn});
101 });
102 router.post('/formSignUp', csrfProtection, function(req,res) {
103         dbRoutes.saveUser(req,res);
104 });
105
106 router.get('/info', function(req,res) {
107         // handle get
108         res.send("login info");
109 });
110 router.get('/logout', csp.logout, function(req,res) {
111     // handle get
112 });
113 router.get('/csplogout', function(req,res) {
114     // handle get
115         res.render("pages/csplogout", {result:{code:'success', msg:'You have been successfylly logged out.'},header:process.env.MAIN_MENU});
116 });
117 router.get('/getuser', function(req,res) {
118     // handle get
119     res.render("pages/home");
120 });
121
122 module.exports = router;