mirror of https://gitee.com/bigwinds/arangodb
added option `--server.hide-product-header`
This commit is contained in:
parent
1506a6cd4a
commit
e321c9747a
|
@ -1,6 +1,10 @@
|
||||||
v2.8.0 (XXXX-XX-XX)
|
v2.8.0 (XXXX-XX-XX)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
* added startup option `--server.hide-product-header` to make the server not send
|
||||||
|
the HTTP response header `"Server: ArangoDB"` in its HTTP responses. By default,
|
||||||
|
the option is turned off so the header is still sent as usual.
|
||||||
|
|
||||||
* added new AQL function `UNSET_RECURSIVE` to recursively unset attritutes from
|
* added new AQL function `UNSET_RECURSIVE` to recursively unset attritutes from
|
||||||
objects/documents
|
objects/documents
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,10 @@
|
||||||
@startDocuBlock serverDefaultApi
|
@startDocuBlock serverDefaultApi
|
||||||
|
|
||||||
|
|
||||||
|
!SUBSECTION Hide Product header
|
||||||
|
@startDocuBlock serverHideProductHeader
|
||||||
|
|
||||||
|
|
||||||
!SUBSECTION Allow method override
|
!SUBSECTION Allow method override
|
||||||
@startDocuBlock serverAllowMethod
|
@startDocuBlock serverAllowMethod
|
||||||
|
|
||||||
|
|
|
@ -156,7 +156,7 @@ describe ArangoDB do
|
||||||
|
|
||||||
# run a HTTP HEAD query on the existing document, with wrong precondition
|
# run a HTTP HEAD query on the existing document, with wrong precondition
|
||||||
cmd = "/_api/document/" + did
|
cmd = "/_api/document/" + did
|
||||||
doc = ArangoDB.log_head("#{prefix}-head-check-documentq", cmd, :header => { :"if-match" => "1" })
|
doc = ArangoDB.log_head("#{prefix}-head-check-document", cmd, :header => { :"if-match" => "1" })
|
||||||
|
|
||||||
doc.code.should eq(200)
|
doc.code.should eq(200)
|
||||||
doc.response.body.should be_nil
|
doc.response.body.should be_nil
|
||||||
|
|
|
@ -601,6 +601,7 @@ void ArangoServer::buildApplicationServer () {
|
||||||
("server.allow-use-database", &ALLOW_USE_DATABASE_IN_REST_ACTIONS, "allow change of database in REST actions, only needed for unittests")
|
("server.allow-use-database", &ALLOW_USE_DATABASE_IN_REST_ACTIONS, "allow change of database in REST actions, only needed for unittests")
|
||||||
("server.threads", &_dispatcherThreads, "number of threads for basic operations")
|
("server.threads", &_dispatcherThreads, "number of threads for basic operations")
|
||||||
("server.additional-threads", &_additionalThreads, "number of threads in additional queues")
|
("server.additional-threads", &_additionalThreads, "number of threads in additional queues")
|
||||||
|
("server.hide-product-header", &HttpResponse::HideProductHeader, "do not expose \"Server: ArangoDB\" header in HTTP responses")
|
||||||
("server.foxx-queues", &_foxxQueues, "enable Foxx queues")
|
("server.foxx-queues", &_foxxQueues, "enable Foxx queues")
|
||||||
("server.foxx-queues-poll-interval", &_foxxQueuesPollInterval, "Foxx queue manager poll interval (in seconds)")
|
("server.foxx-queues-poll-interval", &_foxxQueuesPollInterval, "Foxx queue manager poll interval (in seconds)")
|
||||||
("server.session-timeout", &VocbaseContext::ServerSessionTtl, "timeout of web interface server sessions (in seconds)")
|
("server.session-timeout", &VocbaseContext::ServerSessionTtl, "timeout of web interface server sessions (in seconds)")
|
||||||
|
|
|
@ -604,7 +604,7 @@ namespace triagens {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
bool _foxxQueues;
|
bool _foxxQueues;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief poll interval for Foxx queues
|
/// @brief poll interval for Foxx queues
|
||||||
/// @startDocuBlock foxxQueuesPollInterval
|
/// @startDocuBlock foxxQueuesPollInterval
|
||||||
|
|
|
@ -47,6 +47,12 @@ using namespace std;
|
||||||
|
|
||||||
std::string const HttpResponse::BatchErrorHeader = "X-Arango-Errors";
|
std::string const HttpResponse::BatchErrorHeader = "X-Arango-Errors";
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief hide header "Server: ArangoDB" in HTTP responses
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
bool HttpResponse::HideProductHeader = false;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief http response string
|
/// @brief http response string
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -266,7 +272,9 @@ HttpResponse::HttpResponse (HttpResponseCode code,
|
||||||
_bodySize(0),
|
_bodySize(0),
|
||||||
_freeables() {
|
_freeables() {
|
||||||
|
|
||||||
_headers.insert(TRI_CHAR_LENGTH_PAIR("server"), "ArangoDB");
|
if (! HideProductHeader) {
|
||||||
|
_headers.insert(TRI_CHAR_LENGTH_PAIR("server"), "ArangoDB");
|
||||||
|
}
|
||||||
_headers.insert(TRI_CHAR_LENGTH_PAIR("connection"), "Keep-Alive");
|
_headers.insert(TRI_CHAR_LENGTH_PAIR("connection"), "Keep-Alive");
|
||||||
_headers.insert(TRI_CHAR_LENGTH_PAIR("content-type"), "text/plain; charset=utf-8");
|
_headers.insert(TRI_CHAR_LENGTH_PAIR("content-type"), "text/plain; charset=utf-8");
|
||||||
}
|
}
|
||||||
|
|
|
@ -453,6 +453,21 @@ namespace triagens {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static std::string const BatchErrorHeader;
|
static std::string const BatchErrorHeader;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief hide the "Server: ArangoDB" header in HTTP responses
|
||||||
|
/// @startDocuBlock serverHideProductHeader
|
||||||
|
/// `--server.hide-product-header`
|
||||||
|
///
|
||||||
|
/// If *true*, the server will exclude the HTTP header "Server: ArangoDB" in
|
||||||
|
/// HTTP responses. If set to *false*, the server will send the header in
|
||||||
|
/// responses.
|
||||||
|
///
|
||||||
|
/// The default is *false*.
|
||||||
|
/// @endDocuBlock
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static bool HideProductHeader;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue