mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
Extracting filterHeader into its own module for reuse
This commit is contained in:
parent
836c740e56
commit
81631ffc2e
2 changed files with 21 additions and 16 deletions
18
src/plugins/elasticsearch/lib/filter_headers.js
Normal file
18
src/plugins/elasticsearch/lib/filter_headers.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
import _ from 'lodash';
|
||||
|
||||
module.exports = function (originalHeaders, headersToKeep) {
|
||||
|
||||
const normalizeHeader = function (header) {
|
||||
return header.trim().toLowerCase();
|
||||
};
|
||||
|
||||
// Normalize list of headers we want to allow in upstream request
|
||||
const headersToKeepNormalized = headersToKeep.map(normalizeHeader);
|
||||
|
||||
// Normalize original headers in request
|
||||
const originalHeadersNormalized = _.mapKeys(originalHeaders, function (headerValue, headerName) {
|
||||
return normalizeHeader(headerName);
|
||||
});
|
||||
|
||||
return _.pick(originalHeaders, headersToKeepNormalized);
|
||||
};
|
|
@ -1,23 +1,9 @@
|
|||
import querystring from 'querystring';
|
||||
import { resolve } from 'url';
|
||||
import _ from 'lodash';
|
||||
import filterHeaders from './filter_headers';
|
||||
|
||||
module.exports = function mapUri(server, prefix) {
|
||||
|
||||
const normalizeHeader = function (header) {
|
||||
return header.trim().toLowerCase();
|
||||
};
|
||||
|
||||
const filterHeaders = function (originalHeaders) {
|
||||
const originalHeadersNormalized = _.mapKeys(originalHeaders, function (headerValue, headerName) {
|
||||
return normalizeHeader(headerName);
|
||||
});
|
||||
const headersToKeep = server.config().get('elasticsearch.requestHeaders');
|
||||
const headersToKeepNormalized = headersToKeep.map(normalizeHeader);
|
||||
|
||||
return _.pick(originalHeaders, headersToKeepNormalized);
|
||||
};
|
||||
|
||||
const config = server.config();
|
||||
return function (request, done) {
|
||||
const path = request.path.replace('/elasticsearch', '');
|
||||
|
@ -28,6 +14,7 @@ module.exports = function mapUri(server, prefix) {
|
|||
}
|
||||
const query = querystring.stringify(request.query);
|
||||
if (query) url += '?' + query;
|
||||
done(null, url, filterHeaders(request.headers));
|
||||
const filteredHeaders = filterHeaders(request.headers, server.config().get('elasticsearch.requestHeaders'));
|
||||
done(null, url, filteredHeaders);
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue