mirror of
https://github.com/Telecominfraproject/wlan-cloud-owprov.git
synced 2025-11-01 11:07:46 +00:00
Signed-off-by: stephb9959 <stephane.bourque@gmail.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
cmake_minimum_required(VERSION 3.13)
|
cmake_minimum_required(VERSION 3.13)
|
||||||
project(owprov VERSION 2.8.0)
|
project(owprov VERSION 2.9.0)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,13 @@ namespace OpenWifi {
|
|||||||
poco_information(Logger(),"Starting...");
|
poco_information(Logger(),"Starting...");
|
||||||
Running_=true;
|
Running_=true;
|
||||||
Port_ = (int)MicroServiceConfigGetInt("alb.port",15015);
|
Port_ = (int)MicroServiceConfigGetInt("alb.port",15015);
|
||||||
Socket_ = std::make_unique<Poco::Net::ServerSocket>(Port_);
|
Poco::Net::IPAddress Addr(Poco::Net::IPAddress::wildcard(
|
||||||
|
Poco::Net::Socket::supportsIPv6() ? Poco::Net::AddressFamily::IPv6
|
||||||
|
: Poco::Net::AddressFamily::IPv4));
|
||||||
|
Poco::Net::SocketAddress SockAddr(Addr, Port_);
|
||||||
|
Poco::Net::ServerSocket ClientSocket(SockAddr, 64);
|
||||||
|
|
||||||
|
Socket_ = std::make_unique<Poco::Net::ServerSocket>(SockAddr, Port_);
|
||||||
auto Params = new Poco::Net::HTTPServerParams;
|
auto Params = new Poco::Net::HTTPServerParams;
|
||||||
Params->setName("ws:alb");
|
Params->setName("ws:alb");
|
||||||
Server_ = std::make_unique<Poco::Net::HTTPServer>(new ALBRequestHandlerFactory(Logger()), *Socket_, Params);
|
Server_ = std::make_unique<Poco::Net::HTTPServer>(new ALBRequestHandlerFactory(Logger()), *Socket_, Params);
|
||||||
|
|||||||
@@ -365,6 +365,8 @@ namespace OpenWifi {
|
|||||||
|
|
||||||
LoadMyConfig();
|
LoadMyConfig();
|
||||||
|
|
||||||
|
AllowExternalMicroServices_ = ConfigGetBool("allowexternalmicroservices",true);
|
||||||
|
|
||||||
InitializeSubSystemServers();
|
InitializeSubSystemServers();
|
||||||
ServerApplication::initialize(self);
|
ServerApplication::initialize(self);
|
||||||
DaemonPostInitialization(self);
|
DaemonPostInitialization(self);
|
||||||
|
|||||||
@@ -163,6 +163,7 @@ namespace OpenWifi {
|
|||||||
static void SetSQLLogs(bool UseAsync, bool AllowWebSocket, const std::string & FormatterPattern);
|
static void SetSQLLogs(bool UseAsync, bool AllowWebSocket, const std::string & FormatterPattern);
|
||||||
static void SetSyslogLogs(bool UseAsync, bool AllowWebSocket, const std::string & FormatterPattern);
|
static void SetSyslogLogs(bool UseAsync, bool AllowWebSocket, const std::string & FormatterPattern);
|
||||||
static void SetFileLogs(bool UseAsync, bool AllowWebSocket, const std::string & FormatterPattern, const std::string & root_env_var);
|
static void SetFileLogs(bool UseAsync, bool AllowWebSocket, const std::string & FormatterPattern, const std::string & root_env_var);
|
||||||
|
inline bool AllowExternalMicroServices() const { return AllowExternalMicroServices_; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static MicroService * instance_;
|
static MicroService * instance_;
|
||||||
@@ -193,6 +194,7 @@ namespace OpenWifi {
|
|||||||
SubSystemVec SubSystems_;
|
SubSystemVec SubSystems_;
|
||||||
bool NoAPISecurity_=false;
|
bool NoAPISecurity_=false;
|
||||||
bool NoBuiltInCrypto_=false;
|
bool NoBuiltInCrypto_=false;
|
||||||
|
bool AllowExternalMicroServices_=false;
|
||||||
Poco::JWT::Signer Signer_;
|
Poco::JWT::Signer Signer_;
|
||||||
Poco::Logger &Logger_;
|
Poco::Logger &Logger_;
|
||||||
Poco::ThreadPool TimerPool_{"timer:pool",2,32};
|
Poco::ThreadPool TimerPool_{"timer:pool",2,32};
|
||||||
|
|||||||
@@ -118,4 +118,9 @@ namespace OpenWifi {
|
|||||||
void MicroServiceDeleteOverrideConfiguration() {
|
void MicroServiceDeleteOverrideConfiguration() {
|
||||||
return MicroService::instance().DeleteOverrideConfiguration();
|
return MicroService::instance().DeleteOverrideConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AllowExternalMicroServices() {
|
||||||
|
return MicroService::instance().AllowExternalMicroServices();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,4 +53,5 @@ namespace OpenWifi {
|
|||||||
std::string MicroServiceSign(Poco::JWT::Token &T, const std::string &Algo);
|
std::string MicroServiceSign(Poco::JWT::Token &T, const std::string &Algo);
|
||||||
std::string MicroServiceGetPublicAPIEndPoint();
|
std::string MicroServiceGetPublicAPIEndPoint();
|
||||||
void MicroServiceDeleteOverrideConfiguration();
|
void MicroServiceDeleteOverrideConfiguration();
|
||||||
|
bool AllowExternalMicroServices();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ namespace OpenWifi {
|
|||||||
Response->setChunkedTransferEncoding(true);
|
Response->setChunkedTransferEncoding(true);
|
||||||
Response->setContentType("application/json");
|
Response->setContentType("application/json");
|
||||||
auto Origin = Request->find("Origin");
|
auto Origin = Request->find("Origin");
|
||||||
if (Origin != Request->end()) {
|
if (Origin != Request->end() && !AllowExternalMicroServices()) {
|
||||||
Response->set("Access-Control-Allow-Origin", Origin->second);
|
Response->set("Access-Control-Allow-Origin", Origin->second);
|
||||||
} else {
|
} else {
|
||||||
Response->set("Access-Control-Allow-Origin", "*");
|
Response->set("Access-Control-Allow-Origin", "*");
|
||||||
@@ -322,7 +322,7 @@ namespace OpenWifi {
|
|||||||
Response->setVersion(Poco::Net::HTTPMessage::HTTP_1_1);
|
Response->setVersion(Poco::Net::HTTPMessage::HTTP_1_1);
|
||||||
Response->setChunkedTransferEncoding(true);
|
Response->setChunkedTransferEncoding(true);
|
||||||
auto Origin = Request->find("Origin");
|
auto Origin = Request->find("Origin");
|
||||||
if (Origin != Request->end()) {
|
if (Origin != Request->end() && !AllowExternalMicroServices()) {
|
||||||
Response->set("Access-Control-Allow-Origin", Origin->second);
|
Response->set("Access-Control-Allow-Origin", Origin->second);
|
||||||
} else {
|
} else {
|
||||||
Response->set("Access-Control-Allow-Origin", "*");
|
Response->set("Access-Control-Allow-Origin", "*");
|
||||||
@@ -633,6 +633,18 @@ namespace OpenWifi {
|
|||||||
ReturnObject(Answer);
|
ReturnObject(Answer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T> void Object(const char *Name, const std::vector<T> & Objects) {
|
||||||
|
Poco::JSON::Object Answer;
|
||||||
|
RESTAPI_utils::field_to_json(Answer,Name,Objects);
|
||||||
|
ReturnObject(Answer);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T> void Object(const T &O) {
|
||||||
|
Poco::JSON::Object Answer;
|
||||||
|
O.to_json(Answer);
|
||||||
|
ReturnObject(Answer);
|
||||||
|
}
|
||||||
|
|
||||||
Poco::Logger & Logger() { return Logger_; }
|
Poco::Logger & Logger() { return Logger_; }
|
||||||
|
|
||||||
virtual void DoGet() = 0 ;
|
virtual void DoGet() = 0 ;
|
||||||
|
|||||||
Reference in New Issue
Block a user