Skip to content

Commit 4f93e8a

Browse files
Miel Vander SandeRubenVerborgh
authored andcommitted
Added HTTPS support
1 parent 2d6a3e8 commit 4f93e8a

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

lib/LinkedDataFragmentsServer.js

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,38 @@
11
/*! @license MIT ©2014-2016 Ruben Verborgh - Ghent University / iMinds */
22
/* LinkedDataFragmentsServer is an HTTP server that provides access to Linked Data Fragments */
33

4-
var http = require('http'),
5-
_ = require('lodash'),
4+
var _ = require('lodash'),
5+
fs = require('fs'),
6+
path = require('path'),
67
Util = require('./Util'),
78
ErrorController = require('./controllers/ErrorController');
89

910
// Creates a new LinkedDataFragmentsServer
1011
function LinkedDataFragmentsServer(options) {
11-
// Create the HTTP server
12-
var server = http.createServer(), sockets = 0;
12+
// Create the HTTP(S) server
13+
var server, sockets = 0,
14+
protocol = options.protocol || 'http';
15+
16+
switch (protocol) {
17+
case 'https':
18+
var ssl = options.ssl || {};
19+
_.assign(ssl,
20+
_.mapValues(_.defaults(ssl.keys || {}, {
21+
key: path.join(__dirname, '../localhost.key'),
22+
cert: path.join(__dirname, '../localhost.crt'),
23+
}),
24+
function (v) {
25+
return _.isArray(v) ? _.map(v, function (w) { return fs.readFileSync(w, 'ascii'); }) : fs.readFileSync(v, 'ascii');
26+
})
27+
);
28+
29+
server = require('https').createServer(ssl);
30+
break;
31+
default:
32+
server = require('http').createServer();
33+
}
34+
server._protocol = protocol;
35+
1336
for (var member in LinkedDataFragmentsServer.prototype)
1437
server[member] = LinkedDataFragmentsServer.prototype[member];
1538

0 commit comments

Comments
 (0)