| 1234567891011121314151617181920212223242526272829303132333435363738 | 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
 |