@sassoftware/viya-serverjs 0.6.1-1 → 0.6.1-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env CHANGED
@@ -1,28 +1,18 @@
1
-
2
1
  APPHOST=localhost
3
2
  APPENTRY=index.html
4
3
  APPLOC=./public
5
-
4
+ # APPENV_PROXYSERVER=https://localhost:8080/viyaapp/proxy
5
+ APPENV_USEPROXY=YES
6
6
  APPPORT=8080
7
7
  APPNAME=viyaapp
8
8
  AUTHFLOW=server
9
9
  CLIENTID=viyaapp
10
10
  CLIENTSECRET=jellico
11
11
  REDIRECT=
12
- # APPDIR=./appDir
13
- HTTPS=true
14
- USETOKEN=YES
15
- USELOGON=YES
16
- SHOWENV=YES
12
+ USELOGON=FALSE
13
+ USETOKEN=FALSE
14
+ # SHOWENV=YES
15
+ # APPENV=
17
16
  VIYACERT=c:\Users\kumar\viyaCert
18
17
  NODE_TLS_REJECT_UNAUTHORIZED=0
19
- APPENV_XYZ=AA
20
- APPENV_BAD=
21
-
22
- # APPENV_PUPID=NS=https://sas-logon-app.viya.svc.cluster.local
23
-
24
- # NAMESPACE=viya
25
-
26
-
27
-
28
18
 
package/.env.server CHANGED
@@ -12,17 +12,10 @@ CLIENTSECRET=jellico
12
12
  REDIRECT=
13
13
  # APPDIR=./appDir
14
14
  # HTTPS=true
15
- USELOGON=YES
16
- USETOKEN=YES
15
+ USELOGON=FALSE
16
+ USETOKEN=FALSE
17
17
  # SHOWENV=YES
18
18
  # APPENV=
19
19
  VIYACERT=c:\Users\kumar\viyaCert
20
20
  NODE_TLS_REJECT_UNAUTHORIZED=0
21
21
 
22
-
23
- # NAMESPACE=viya
24
- # TLS_CERT=./certs/tls.crt
25
- # TLS_KEY=./certs/tls.key
26
-
27
-
28
-
package/Dockerfile CHANGED
@@ -35,7 +35,7 @@ ENV TLS_CREATE="C:US,ST:NC,L:Cary,O:SAS Institute,OU:STO,CN:localhost"
35
35
  # ENV TLS_KEY=./tls/tls.key
36
36
 
37
37
  # Samesite specification
38
- ENV SAMESITE=None,secure
38
+ ENV SAMESITE=Lax,false
39
39
 
40
40
  # If your Viya instance still has a unsigned certificate set this value prior to invoking the server
41
41
  # ENV NODE_TLS_REJECT_UNAUTHORIZED=0
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports["default"] = void 0;
11
- var _setCookies = _interopRequireDefault(require("./setCookies"));
11
+ var _setCookies = _interopRequireDefault(require("../plugins/setCookies"));
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
13
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
14
14
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
@@ -24,11 +24,10 @@ function _codeAuth() {
24
24
  return _regenerator().w(function (_context) {
25
25
  while (1) switch (_context.n) {
26
26
  case 0:
27
- debug('in codeauth');
27
+ debug('calling setCookies in codeAuth');
28
28
  _context.n = 1;
29
29
  return (0, _setCookies["default"])(req, h, options);
30
30
  case 1:
31
- debug(options);
32
31
  indexHTML = process.env.APPENTRY == null ? 'index.html' : process.env.APPENTRY;
33
32
  if (process.env.REDIRECT != null) {
34
33
  debug('using REDIRECT env variable', process.env.REDIRECT);
@@ -51,7 +51,6 @@ function _getApp() {
51
51
  }
52
52
  debug('calling codeauth');
53
53
  r = (0, _codeAuth["default"])(req, h, options);
54
- debug(options.userCache);
55
54
  return _context.a(2, r);
56
55
  case 2:
57
56
  debug('default processing in getapp');
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
- var _setCookies = _interopRequireDefault(require("./setCookies"));
7
+ var _setCookies = _interopRequireDefault(require("../plugins/setCookies"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
9
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
10
10
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
@@ -24,7 +24,6 @@ function _logon() {
24
24
  while (1) switch (_context.n) {
25
25
  case 0:
26
26
  debugger;
27
- debug('.................................................in logon');
28
27
  _context.n = 1;
29
28
  return (0, _setCookies["default"])(req, h, options);
30
29
  case 1:
@@ -20,6 +20,8 @@ function _proxyMapUri() {
20
20
  case 0:
21
21
  credentials = req.auth.credentials;
22
22
  debug('------------------------------------------');
23
+ debug('serverstate', req.server.state);
24
+ debug('state', req.state);
23
25
  if (credentials != null) {
24
26
  sid = credentials.sid;
25
27
  debug('sid=', sid);
package/lib/iService.js CHANGED
@@ -117,7 +117,7 @@ function iService(userRouteTable, useDefault, asset, allAppEnv, serverMode, user
117
117
  debug2("Application information: \n\t\tAPPLOC : ".concat(process.env.APPLOC, "\n\t\tAPPENTRY: ").concat(process.env.APPENTRY, "\n"));
118
118
  hapiServer = Hapi.server(sConfig);
119
119
  /*
120
- const cache = hapiServer.cache({ segment: 'sessions', expiresIn: 3 * 24 * 60 * 60 * 1000 });
120
+ const cache = hapiServer.cache({ segment: 'sid', expiresIn: 3 * 24 * 60 * 60 * 1000 });
121
121
  hapiServer.app.cache = cache;
122
122
  */
123
123
  nodeCacheOptions = {
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
3
7
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
4
8
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
5
9
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
@@ -22,20 +26,14 @@ function _asyncToGenerator(n) { return function () { var t = this, e = arguments
22
26
  *
23
27
  */
24
28
 
25
- var bell = require('@hapi/bell');
26
29
  var uuid = require('uuid');
27
30
  var debug = require('debug')('sasauth');
28
- exports.plugin = {
29
- name: 'SASauth',
30
- version: '1.0.0',
31
- register: iSASauth
32
- };
33
- function iSASauth(_x, _x2) {
34
- return _iSASauth.apply(this, arguments);
31
+ function SASauth(_x, _x2) {
32
+ return _SASauth.apply(this, arguments);
35
33
  }
36
- function _iSASauth() {
37
- _iSASauth = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(server, options) {
38
- var bellAuthOptions, provider, host;
34
+ function _SASauth() {
35
+ _SASauth = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(server, options) {
36
+ var provider, host, bellAuthOptions;
39
37
  return _regenerator().w(function (_context2) {
40
38
  while (1) switch (_context2.n) {
41
39
  case 0:
@@ -64,6 +62,20 @@ function _iSASauth() {
64
62
  case 0:
65
63
  server.log('SASAuth profile', credentials);
66
64
  debug('credentials', credentials);
65
+ debug('params', params);
66
+ credentials.profile = {
67
+ provider: 'sas',
68
+ id: 'sasuser',
69
+ displayName: 'SAS User',
70
+ email: 'sasuser@sas.com',
71
+ raw: {
72
+ id: 'sasuser',
73
+ displayName: 'SAS User',
74
+ emails: [{
75
+ value: 'sasuser@sas.com'
76
+ }]
77
+ }
78
+ };
67
79
  case 1:
68
80
  return _context.a(2);
69
81
  }
@@ -80,20 +92,16 @@ function _iSASauth() {
80
92
  password: uuid.v4(),
81
93
  clientId: options.clientId,
82
94
  clientSecret: options.clientSecret,
83
- // isSameSite : options.isSameSite,
95
+ isSameSite: options.isSameSite,
84
96
  isSecure: options.isSecure
85
97
  };
86
- // console.log('SASAuth options', bellAuthOptions);
87
98
  debug('belloptions', bellAuthOptions);
88
- server.log('SASAuth', bellAuthOptions);
89
- _context2.n = 1;
90
- return server.register(bell);
91
- case 1:
92
99
  server.auth.strategy('sas', 'bell', bellAuthOptions);
93
- case 2:
100
+ case 1:
94
101
  return _context2.a(2);
95
102
  }
96
103
  }, _callee2);
97
104
  }));
98
- return _iSASauth.apply(this, arguments);
99
- }
105
+ return _SASauth.apply(this, arguments);
106
+ }
107
+ var _default = exports["default"] = SASauth;
@@ -1,25 +1,29 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
3
7
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
4
8
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
5
9
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
6
10
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
7
11
  var uuid = require('uuid');
8
- var debug = require('debug')('cookie');
9
- module.exports = /*#__PURE__*/function () {
10
- var _appCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(server, options) {
12
+ var debug = require('debug')('appcookie');
13
+ function appCookie(_x, _x2) {
14
+ return _appCookie.apply(this, arguments);
15
+ }
16
+ function _appCookie() {
17
+ _appCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(server, options) {
11
18
  var cookieOptions;
12
19
  return _regenerator().w(function (_context2) {
13
20
  while (1) switch (_context2.n) {
14
21
  case 0:
15
- _context2.n = 1;
16
- return server.register(require('@hapi/cookie'));
17
- case 1:
18
22
  debug('in appCookie');
19
23
  debug(options.redirectTo);
20
24
  cookieOptions = {
21
25
  cookie: {
22
- name: 'cookie',
26
+ name: 'session',
23
27
  password: uuid.v4(),
24
28
  isSecure: options.isSecure,
25
29
  isSameSite: options.isSameSite
@@ -30,47 +34,21 @@ module.exports = /*#__PURE__*/function () {
30
34
  },
31
35
  validate: function () {
32
36
  var _validate = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(req, session) {
33
- var credentials, sid;
34
37
  return _regenerator().w(function (_context) {
35
38
  while (1) switch (_context.n) {
36
39
  case 0:
37
- debug('Cookie validateFunc', "path - ".concat(req.path));
38
- if (!(session == null)) {
40
+ debug('validating cookie session', session);
41
+ if (session) {
39
42
  _context.n = 1;
40
43
  break;
41
44
  }
42
- console.log('session is null');
43
45
  return _context.a(2, {
44
46
  isValid: false
45
47
  });
46
48
  case 1:
47
- credentials = null;
48
- if (Array.isArray(session) === true && session.length > 0) {
49
- sid = session[0].sid;
50
- } else {
51
- sid = session.sid;
52
- }
53
- if (!(sid != null)) {
54
- _context.n = 3;
55
- break;
56
- }
57
- _context.n = 2;
58
- return req.server.app.cache.get(sid);
59
- case 2:
60
- credentials = _context.v;
61
- case 3:
62
- if (!(credentials == null)) {
63
- _context.n = 4;
64
- break;
65
- }
66
- return _context.a(2, {
67
- isValid: false
68
- });
69
- case 4:
70
- debug('Cookie validateFunc', sid);
71
49
  return _context.a(2, {
72
50
  isValid: true,
73
- credentials: credentials
51
+ credentials: session // becomes request.auth.credentials
74
52
  });
75
53
  }
76
54
  }, _callee);
@@ -80,16 +58,16 @@ module.exports = /*#__PURE__*/function () {
80
58
  }
81
59
  return validate;
82
60
  }()
83
- }; // console.log('cookie options', cookieOptions);
84
- debug('Cookie Options', cookieOptions);
61
+ };
62
+ debug('session cookie options', cookieOptions);
85
63
  server.auth.strategy('session', 'cookie', cookieOptions);
86
- case 2:
64
+ server.auth["default"]('session');
65
+ case 1:
87
66
  return _context2.a(2);
88
67
  }
89
68
  }, _callee2);
90
69
  }));
91
- function appCookie(_x, _x2) {
92
- return _appCookie.apply(this, arguments);
93
- }
94
- return appCookie;
95
- }();
70
+ return _appCookie.apply(this, arguments);
71
+ }
72
+ ;
73
+ var _default = exports["default"] = appCookie;
@@ -26,31 +26,46 @@ function _asyncToGenerator(n) { return function () { var t = this, e = arguments
26
26
  *
27
27
  */
28
28
 
29
- var debug = require('debug')('context');
29
+ var debug = require('debug')('setcontext');
30
30
  function setContext(_x, _x2) {
31
31
  return _setContext.apply(this, arguments);
32
32
  }
33
33
  function _setContext() {
34
34
  _setContext = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(req, h) {
35
- var credentials, context;
35
+ var credentials, cachedCredentials, fcredentials, context, _t;
36
36
  return _regenerator().w(function (_context) {
37
- while (1) switch (_context.n) {
37
+ while (1) switch (_context.p = _context.n) {
38
38
  case 0:
39
39
  credentials = req.auth.credentials;
40
- debug(credentials);
40
+ cachedCredentials = null; // use this once cookies are working properly
41
+ debug('Set Context Credentials', req.path, credentials);
42
+ _context.p = 1;
43
+ _context.n = 2;
44
+ return req.server.app.cache.get('session');
45
+ case 2:
46
+ cachedCredentials = _context.v;
47
+ debug('Cached Credentials', cachedCredentials);
48
+ _context.n = 4;
49
+ break;
50
+ case 3:
51
+ _context.p = 3;
52
+ _t = _context.v;
53
+ debug('No cached credentials');
54
+ case 4:
55
+ fcredentials = credentials || cachedCredentials;
41
56
  context = {
42
57
  path: req.path,
43
58
  params: req.params,
44
59
  query: req.query,
45
60
  payload: req.payload,
46
- queryOrig: credentials != null ? credentials.query : {},
47
- token: credentials != null ? "bearer ".concat(credentials.token) : null,
48
- credentials: credentials,
61
+ queryOrig: fcredentials != null ? fcredentials.query : {},
62
+ credentials: fcredentials,
63
+ credType: credentials != null ? 'auth' : 'cached',
49
64
  host: process.env.VIYA_SERVER
50
65
  };
51
66
  return _context.a(2, context);
52
67
  }
53
- }, _callee);
68
+ }, _callee, null, [[1, 3]]);
54
69
  }));
55
70
  return _setContext.apply(this, arguments);
56
71
  }
@@ -4,14 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
7
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
9
8
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
10
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
9
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
16
10
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
17
11
  /*
@@ -25,12 +19,11 @@ function setCookies(_x, _x2, _x3) {
25
19
  }
26
20
  function _setCookies() {
27
21
  _setCookies = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(req, h, options) {
28
- var credentials, sid, redirect;
22
+ var credentials, cookieInfo, sid, redirect;
29
23
  return _regenerator().w(function (_context) {
30
24
  while (1) switch (_context.n) {
31
25
  case 0:
32
- credentials = req.auth.credentials;
33
- debug('setcookie', credentials);
26
+ credentials = req.auth.credentials; // protect against failed logon
34
27
  if (!(credentials != null && req.auth.error != null)) {
35
28
  _context.n = 1;
36
29
  break;
@@ -43,28 +36,31 @@ function _setCookies() {
43
36
  error: req.auth.error
44
37
  });
45
38
  case 1:
46
- // create a cookie(sid) and save credentials in cache
39
+ debug('credentials in setcookie', credentials);
40
+
41
+ // use cookieAuth to set cookies
42
+ cookieInfo = {
43
+ name: 'session',
44
+ accessToken: credentials.token,
45
+ refreshToken: credentials.refreshToken,
46
+ expiresIn: credentials.expiresIn,
47
+ provider: credentials.provider
48
+ };
49
+ debug('------------set cookie-------------\n', cookieInfo);
50
+ console.log('is it there', req.cookieAuth != null);
51
+ _context.n = 2;
52
+ return req.server.app.cache.set('session', cookieInfo, 0);
53
+ case 2:
54
+ req.cookieAuth.set(cookieInfo);
55
+
56
+ // set sid
47
57
  sid = uuid.v4();
48
58
  credentials.sid = sid;
49
59
  if (options != null) {
50
60
  options.allAppEnv.LOGONPAYLOAD.token = credentials.token;
51
61
  options.allAppEnv.LOGONPAYLOAD.tokenType = 'bearer';
52
- options.userCache = _objectSpread({}, credentials);
53
62
  debug(options.allAppEnv.LOGONPAYLOAD);
54
63
  }
55
- debug('userCache', options.userCache);
56
- _context.n = 2;
57
- return req.server.app.cache.set(sid, credentials, 0);
58
- case 2:
59
- // Can we get away without setting cookie for this session?
60
- // Need to also modify keepAlive
61
- if (process.env.COOKIES !== 'NO') {
62
- debugger;
63
- req.cookieAuth.set({
64
- sid: sid
65
- });
66
- }
67
- ;
68
64
  debug('credentials query', credentials.query);
69
65
  redirect = credentials.query != null && credentials.query.next != null ? credentials.query.next : null;
70
66
  debug('setcookie-redirect', redirect);
@@ -90,23 +86,23 @@ async function getCredentials (req) {
90
86
  };
91
87
 
92
88
  let payload = {
93
- url : `${process.env.VIYA_SERVER}/SASLogon/oauth/token`,
94
- method: 'POST',
89
+ url : `${process.env.VIYA_SERVER}/SASLogon/oauth/token`,
90
+ method: 'POST',
95
91
 
96
- headers: {
97
- // 'Authorization': 'Basic ' + Buffer.from(`${process.env.CLIENTID}:${process.env.CLIENTSECRET}`).toString('base64'),
98
- 'Accept' : 'application/json',
99
- 'Content-Type': 'application/x-www-form-urlencoded'
100
- },
92
+ headers: {
93
+ // 'Authorization': 'Basic ' + Buffer.from(`${process.env.CLIENTID}:${process.env.CLIENTSECRET}`).toString('base64'),
94
+ 'Accept' : 'application/json',
95
+ 'Content-Type': 'application/x-www-form-urlencoded'
96
+ },
101
97
  data: qs.stringify({
102
98
  client_id : `${process.env.CLIENTID}`,
103
99
  client_secret: `${process.env.CLIENTSECRET}`,
104
100
  redirect_uri : `${location}`,
105
101
 
106
- 'grant_type': 'authorization_code',
107
- code : req.query.code
108
- })
109
- };
102
+ 'grant_type': 'authorization_code',
103
+ code : req.query.code
104
+ })
105
+ };
110
106
  try {
111
107
  let r = await axios(payload);
112
108
  return r.data;