You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
const express = require('express') const router = express.Router() const _ = require('lodash') const qs = require('querystring')
/* global WIKI */
/** * Let's Encrypt Challenge */ router.get('/.well-known/acme-challenge/:token', (req, res, next) => { res.type('text/plain') if (_.get(WIKI.config, 'letsencrypt.challenge', false)) { if (WIKI.config.letsencrypt.challenge.token === req.params.token) { res.send(WIKI.config.letsencrypt.challenge.keyAuthorization) WIKI.logger.info(`(LETSENCRYPT) Received valid challenge request. [ ACCEPTED ]`) } else { res.status(406).send('Invalid Challenge Token!') WIKI.logger.warn(`(LETSENCRYPT) Received invalid challenge request. [ REJECTED ]`) } } else { res.status(418).end() } })
/** * Redirect to HTTPS if HTTP Redirection is enabled */ router.all('/*', (req, res, next) => { if (WIKI.config.server.sslRedir && !req.secure && WIKI.servers.servers.https) { let query = (!_.isEmpty(req.query)) ? `?${qs.stringify(req.query)}` : `` return res.redirect(`https://${req.hostname}${req.originalUrl}${query}`) } else { next() } })
module.exports = router
|