cloudcms-server 0.9.249 → 0.9.252

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/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "name": "cloudcms-server",
8
8
  "description": "Cloud CMS Application Server Module",
9
- "version": "0.9.249",
9
+ "version": "0.9.252",
10
10
  "repository": {
11
11
  "type": "git",
12
12
  "url": "git://github.com/gitana/cloudcms-server.git"
package/server/index.js CHANGED
@@ -16,6 +16,9 @@ var session = require('express-session');
16
16
  var cookieParser = require('cookie-parser');
17
17
  var flash = require("connect-flash");
18
18
 
19
+ const redis = require('redis');
20
+ const connectRedis = require('connect-redis');
21
+
19
22
  // we don't bind a single passport - instead, we get the constructor here by hand
20
23
  var Passport = require("passport").Passport;
21
24
 
@@ -620,6 +623,18 @@ var startSlave = function(config, afterStartFn)
620
623
  delete process.configuration.https;
621
624
  }
622
625
 
626
+
627
+ // auto configuration of session store
628
+ if (!process.configuration.session) {
629
+ process.configuration.session = {};
630
+ }
631
+ if (process.env.CLOUDCMS_SESSION_TYPE) {
632
+ process.configuration.session.enabled = true;
633
+ process.configuration.session.type = process.env.CLOUDCMS_SESSION_TYPE;
634
+ }
635
+ if (process.env.CLOUDCMS_SESSION_SECRET) {
636
+ process.configuration.session.secret = process.env.CLOUDCMS_SESSION_SECRET;
637
+ }
623
638
 
624
639
  // session store
625
640
  var initializedSession = null;
@@ -653,6 +668,28 @@ var startSlave = function(config, afterStartFn)
653
668
  var SessionFileStore = require('session-file-store')(session);
654
669
  sessionConfig.store = new SessionFileStore(options);
655
670
  }
671
+ else if (process.configuration.session.type === "redis")
672
+ {
673
+ var redisPort = process.env.CLOUDCMS_REDIS_PORT;
674
+ var redisHost = process.env.CLOUDCMS_REDIS_ENDPOINT;
675
+
676
+ if (!redisPort)
677
+ {
678
+ console.error("Cannot configure session for Redis storage because CLOUDCMS_REDIS_PORT is not defined");
679
+ }
680
+ else if (!redisHost)
681
+ {
682
+ console.error("Cannot configure session for Redis storage because CLOUDCMS_REDIS_ENDPOINT is not defined");
683
+ }
684
+ else
685
+ {
686
+ var redisOptions = {};
687
+ var redisClient = redis.createClient(redisPort, redisHost, redisOptions);
688
+
689
+ var RedisStore = connectRedis(session);
690
+ sessionConfig.store = new RedisStore({ client: redisClient });
691
+ }
692
+ }
656
693
  else if (process.configuration.session.type === "memory" || !process.configuration.session.type)
657
694
  {
658
695
  var options = {};
@@ -69,6 +69,7 @@ server.report(function(callback) {
69
69
  console.log("Hosts Directory: " + process.env.CLOUDCMS_HOSTS_PATH);
70
70
  console.log("LaunchPad Mode: " + process.env.CLOUDCMS_LAUNCHPAD_SETUP);
71
71
  console.log("Max Files Detected: " + process.env.CLOUDCMS_MAX_FILES);
72
+ console.log("Session Type: " + process.configuration.session.type);
72
73
 
73
74
  if (process.configuration.https) {
74
75
  console.log("Server is configured to use HTTPS");