mirror of
https://github.com/openappsec/openappsec.git
synced 2025-09-30 03:34:26 +03:00
Apr 27th Update
This commit is contained in:
@@ -201,6 +201,13 @@ DetailsResolver::Impl::isVersionEqualOrAboveR8110()
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool
|
||||
isNoResponse(const string &cmd)
|
||||
{
|
||||
auto res = DetailsResolvingHanlder::getCommandOutput(cmd);
|
||||
return !res.ok() || res.unpack().empty();
|
||||
}
|
||||
|
||||
Maybe<tuple<string, string, string>>
|
||||
DetailsResolver::Impl::parseNginxMetadata()
|
||||
{
|
||||
@@ -215,9 +222,8 @@ DetailsResolver::Impl::parseNginxMetadata()
|
||||
output_path;
|
||||
|
||||
dbgTrace(D_ORCHESTRATOR) << "Details resolver, srcipt exe cmd: " << srcipt_exe_cmd;
|
||||
auto is_nginx_exist = DetailsResolvingHanlder::getCommandOutput("which nginx");
|
||||
if (!is_nginx_exist.ok() || is_nginx_exist.unpack().size() == 0) {
|
||||
return genError("Nginx isn't installed");
|
||||
if (isNoResponse("which nginx") && isNoResponse("which kong")) {
|
||||
return genError("Nginx or Kong isn't installed");
|
||||
}
|
||||
|
||||
auto script_output = DetailsResolvingHanlder::getCommandOutput(srcipt_exe_cmd);
|
||||
@@ -259,6 +265,7 @@ DetailsResolver::Impl::parseNginxMetadata()
|
||||
for(string &line : lines) {
|
||||
if (line.size() == 0) continue;
|
||||
if (line.find("RELEASE_VERSION") != string::npos) continue;
|
||||
if (line.find("KONG_VERSION") != string::npos) continue;
|
||||
if (line.find("--with-cc=") != string::npos) continue;
|
||||
if (line.find("NGINX_VERSION") != string::npos) {
|
||||
auto eq_index = line.find("=");
|
||||
|
@@ -15,6 +15,15 @@
|
||||
#error details_resolver_handlers/details_resolver_impl.h should not be included directly.
|
||||
#endif // __DETAILS_RESOLVER_HANDLER_CC__
|
||||
|
||||
// Retrieve artifacts by incorporating nano service names into additional metadata:
|
||||
// To include a required nano service in the additional metadata sent to the manifest generator,
|
||||
// add a handler in this file. The key to use is 'requiredNanoServices', and its value should be
|
||||
// a string representing an array of nano service prefix names, separated by semicolons.
|
||||
// For example: "httpTransactionHandler_linux;iotSnmp_gaia;"
|
||||
//
|
||||
// Handler example for reading the content of a configuration file:
|
||||
// FILE_CONTENT_HANDLER("requiredNanoServices", "/tmp/nano_services_list", getRequiredNanoServices)
|
||||
|
||||
// use SHELL_CMD_HANDLER(key as string, shell command as string, ptr to Maybe<string> handler(const string&))
|
||||
// to return a string value for an attribute key based on a logic executed in a handler that receives
|
||||
// shell command execution output as its input
|
||||
|
Reference in New Issue
Block a user