mirror of
				https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
				synced 2025-10-31 18:57:51 +00:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			v2.4.1
			...
			feature/te
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 8566d024a8 | ||
|   | 5e5150a73f | 
							
								
								
									
										23
									
								
								.github/workflows/enforce-jira-issue-key.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.github/workflows/enforce-jira-issue-key.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | name: Ensure Jira issue is linked | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     types: [opened, edited, reopened, synchronize] | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   check_for_issue_key: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout actions repo | ||||||
|  |         uses: actions/checkout@v2 | ||||||
|  |         with:  | ||||||
|  |           repository: Telecominfraproject/.github | ||||||
|  |           path: github | ||||||
|  |           ref: feature/wifi-4860--add-ensure-jira-issue-key-composite-action | ||||||
|  |  | ||||||
|  |       - name: Run JIRA check | ||||||
|  |         uses: ./github/composite-actions/enforce-jira-issue-key | ||||||
|  |         with: | ||||||
|  |           jira_base_url: ${{ secrets.TIP_JIRA_URL }} | ||||||
|  |           jira_user_email: ${{ secrets.TIP_JIRA_USER_EMAIL }} | ||||||
|  |           jira_api_token: ${{ secrets.TIP_JIRA_API_TOKEN }} | ||||||
| @@ -30,20 +30,9 @@ else() | |||||||
|     file(WRITE build ${BUILD_NUM}) |     file(WRITE build ${BUILD_NUM}) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| find_package(Git QUIET) |  | ||||||
| if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") |  | ||||||
|     execute_process(COMMAND ${GIT_EXECUTABLE} describe --always --tags |  | ||||||
|             WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} |  | ||||||
|             RESULT_VARIABLE GIT_RESULT |  | ||||||
|             OUTPUT_VARIABLE GIT_HASH) |  | ||||||
|     if(NOT GIT_RESULT EQUAL "0") |  | ||||||
|         message(FATAL_ERROR "git describe --always --tags failed with ${GIT_RESULT}") |  | ||||||
|     endif() |  | ||||||
|     string(REGEX REPLACE "\n$" "" GIT_HASH "${GIT_HASH}") |  | ||||||
| endif() |  | ||||||
| add_definitions(-DAWS_CUSTOM_MEMORY_MANAGEMENT) |  | ||||||
|  |  | ||||||
| set(BUILD_SHARED_LIBS 1) | set(BUILD_SHARED_LIBS 1) | ||||||
|  |  | ||||||
|  | add_definitions(-DAPP_VERSION="${CMAKE_PROJECT_VERSION}" -DBUILD_NUMBER="${BUILD_NUM}") | ||||||
| add_definitions(-DTIP_SECURITY_SERVICE="1") | add_definitions(-DTIP_SECURITY_SERVICE="1") | ||||||
|  |  | ||||||
| set(Boost_USE_STATIC_LIBS OFF) | set(Boost_USE_STATIC_LIBS OFF) | ||||||
| @@ -61,11 +50,8 @@ find_package(Poco REQUIRED COMPONENTS JSON Crypto JWT Net Util NetSSL Data DataS | |||||||
|  |  | ||||||
| include_directories(/usr/local/include  /usr/local/opt/openssl/include src include/kafka /usr/local/opt/mysql-client/include) | include_directories(/usr/local/include  /usr/local/opt/openssl/include src include/kafka /usr/local/opt/mysql-client/include) | ||||||
|  |  | ||||||
| configure_file(src/ow_version.h.in ${PROJECT_SOURCE_DIR}/src/ow_version.h @ONLY) |  | ||||||
|  |  | ||||||
| add_executable( owsec | add_executable( owsec | ||||||
|         build |         build | ||||||
|         src/ow_version.h.in |  | ||||||
|         src/framework/CountryCodes.h |         src/framework/CountryCodes.h | ||||||
|         src/framework/KafkaTopics.h |         src/framework/KafkaTopics.h | ||||||
|         src/framework/MicroService.h |         src/framework/MicroService.h | ||||||
|   | |||||||
| @@ -53,12 +53,9 @@ RUN cmake .. | |||||||
| RUN make | RUN make | ||||||
| RUN make install | RUN make install | ||||||
|  |  | ||||||
|  |  | ||||||
| ADD CMakeLists.txt build /owsec/ | ADD CMakeLists.txt build /owsec/ | ||||||
| ADD cmake /owsec/cmake | ADD cmake /owsec/cmake | ||||||
| ADD src /owsec/src | ADD src /owsec/src | ||||||
| ADD .git /owsec/.git |  | ||||||
|  |  | ||||||
|  |  | ||||||
| WORKDIR /owsec | WORKDIR /owsec | ||||||
| RUN mkdir cmake-build | RUN mkdir cmake-build | ||||||
| @@ -78,7 +75,7 @@ RUN addgroup -S "$OWSEC_USER" && \ | |||||||
| RUN mkdir /openwifi | RUN mkdir /openwifi | ||||||
| RUN mkdir -p "$OWSEC_ROOT" "$OWSEC_CONFIG" && \ | RUN mkdir -p "$OWSEC_ROOT" "$OWSEC_CONFIG" && \ | ||||||
|     chown "$OWSEC_USER": "$OWSEC_ROOT" "$OWSEC_CONFIG" |     chown "$OWSEC_USER": "$OWSEC_ROOT" "$OWSEC_CONFIG" | ||||||
| RUN apk add --update --no-cache librdkafka mariadb-connector-c libpq unixodbc su-exec gettext ca-certificates libcurl curl-dev bash jq curl postgresql-client | RUN apk add --update --no-cache librdkafka mariadb-connector-c libpq unixodbc su-exec gettext ca-certificates libcurl curl-dev bash jq curl | ||||||
| COPY --from=builder /owsec/cmake-build/owsec /openwifi/owsec | COPY --from=builder /owsec/cmake-build/owsec /openwifi/owsec | ||||||
| COPY --from=builder /cppkafka/cmake-build/src/lib/* /lib/ | COPY --from=builder /cppkafka/cmake-build/src/lib/* /lib/ | ||||||
| COPY --from=builder /poco/cmake-build/lib/* /lib/ | COPY --from=builder /poco/cmake-build/lib/* /lib/ | ||||||
| @@ -90,7 +87,6 @@ COPY owsec.properties.tmpl / | |||||||
| COPY wwwassets /dist/wwwassets | COPY wwwassets /dist/wwwassets | ||||||
| COPY templates /dist/templates | COPY templates /dist/templates | ||||||
| COPY docker-entrypoint.sh / | COPY docker-entrypoint.sh / | ||||||
| COPY wait-for-postgres.sh / |  | ||||||
| RUN wget https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentral-deploy/main/docker-compose/certs/restapi-ca.pem \ | RUN wget https://raw.githubusercontent.com/Telecominfraproject/wlan-cloud-ucentral-deploy/main/docker-compose/certs/restapi-ca.pem \ | ||||||
|     -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem |     -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								helm/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								helm/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +1 @@ | |||||||
| *.swp | *.swp | ||||||
| charts |  | ||||||
|   | |||||||
| @@ -5,14 +5,14 @@ name: owsec | |||||||
| version: 0.1.0 | version: 0.1.0 | ||||||
| dependencies: | dependencies: | ||||||
| - name: postgresql | - name: postgresql | ||||||
|   repository: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/ |   repository: https://charts.bitnami.com/bitnami | ||||||
|   version: 10.9.2 |   version: 10.9.2 | ||||||
|   condition: postgresql.enabled |   condition: postgresql.enabled | ||||||
| - name: mysql | - name: mysql | ||||||
|   repository: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/ |   repository: https://charts.bitnami.com/bitnami | ||||||
|   version: 8.8.3 |   version: 8.8.3 | ||||||
|   condition: mysql.enabled |   condition: mysql.enabled | ||||||
| - name: mariadb | - name: mariadb | ||||||
|   repository: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/ |   repository: https://charts.bitnami.com/bitnami | ||||||
|   version: 9.4.2 |   version: 9.4.2 | ||||||
|   condition: mariadb.enabled |   condition: mariadb.enabled | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ fullnameOverride: "" | |||||||
| images: | images: | ||||||
|   owsec: |   owsec: | ||||||
|     repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owsec |     repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owsec | ||||||
|     tag: v2.4.1 |     tag: main | ||||||
|     pullPolicy: Always |     pullPolicy: Always | ||||||
| #    regcred: | #    regcred: | ||||||
| #      registry: tip-tip-wlan-cloud-ucentral.jfrog.io | #      registry: tip-tip-wlan-cloud-ucentral.jfrog.io | ||||||
| @@ -141,11 +141,17 @@ configProperties: | |||||||
|   authentication.default.access: master |   authentication.default.access: master | ||||||
|   authentication.service.type: internal |   authentication.service.type: internal | ||||||
|   # Mailer |   # Mailer | ||||||
|  |   mailer.enabled: "false" | ||||||
|   mailer.hostname: smtp.gmail.com |   mailer.hostname: smtp.gmail.com | ||||||
|   mailer.sender: OpenWIFI |   mailer.sender: OpenWIFI | ||||||
|   mailer.loginmethod: login |   mailer.loginmethod: login | ||||||
|   mailer.port: 587 |   mailer.port: 587 | ||||||
|   mailer.templates: $OWSEC_ROOT/persist/templates |   mailer.templates: $OWSEC_ROOT/persist/templates | ||||||
|  |   # SMS | ||||||
|  |   smssender.enabled: "false" | ||||||
|  |   smssender.provider: "aws" | ||||||
|  |   #smssender.aws.region: "" | ||||||
|  |   #smssender.twilio.phonenumber: "" | ||||||
|   # ALB |   # ALB | ||||||
|   alb.enable: "true" |   alb.enable: "true" | ||||||
|   alb.port: 16101 |   alb.port: 16101 | ||||||
| @@ -212,6 +218,12 @@ configProperties: | |||||||
|   # Mailer |   # Mailer | ||||||
|   mailer.username: no-reply@arilia.com |   mailer.username: no-reply@arilia.com | ||||||
|   mailer.password: "**************************" |   mailer.password: "**************************" | ||||||
|  |   # SMS | ||||||
|  |   #smssender.aws.secretkey: "" | ||||||
|  |   #smssender.aws.accesskey: "" | ||||||
|  |   #smssender.twilio.sid: "" | ||||||
|  |   #smssender.twilio.token: "" | ||||||
|  |   # | ||||||
|   # Storage |   # Storage | ||||||
|   ## PostgreSQL |   ## PostgreSQL | ||||||
|   storage.type.postgresql.username: stephb |   storage.type.postgresql.username: stephb | ||||||
|   | |||||||
| @@ -69,8 +69,6 @@ using namespace std::chrono_literals; | |||||||
| #include "RESTObjects/RESTAPI_SecurityObjects.h" | #include "RESTObjects/RESTAPI_SecurityObjects.h" | ||||||
| #include "nlohmann/json.hpp" | #include "nlohmann/json.hpp" | ||||||
|  |  | ||||||
| #include "ow_version.h" |  | ||||||
|  |  | ||||||
| namespace OpenWifi { | namespace OpenWifi { | ||||||
|  |  | ||||||
|     enum UNAUTHORIZED_REASON { |     enum UNAUTHORIZED_REASON { | ||||||
| @@ -1902,7 +1900,7 @@ namespace OpenWifi { | |||||||
| 	            QB_.SerialNumber = GetParameter(RESTAPI::Protocol::SERIALNUMBER, ""); | 	            QB_.SerialNumber = GetParameter(RESTAPI::Protocol::SERIALNUMBER, ""); | ||||||
| 	            QB_.StartDate = GetParameter(RESTAPI::Protocol::STARTDATE, 0); | 	            QB_.StartDate = GetParameter(RESTAPI::Protocol::STARTDATE, 0); | ||||||
| 	            QB_.EndDate = GetParameter(RESTAPI::Protocol::ENDDATE, 0); | 	            QB_.EndDate = GetParameter(RESTAPI::Protocol::ENDDATE, 0); | ||||||
| 	            QB_.Offset = GetParameter(RESTAPI::Protocol::OFFSET, 0); | 	            QB_.Offset = GetParameter(RESTAPI::Protocol::OFFSET, 1); | ||||||
| 	            QB_.Limit = GetParameter(RESTAPI::Protocol::LIMIT, 100); | 	            QB_.Limit = GetParameter(RESTAPI::Protocol::LIMIT, 100); | ||||||
| 	            QB_.Filter = GetParameter(RESTAPI::Protocol::FILTER, ""); | 	            QB_.Filter = GetParameter(RESTAPI::Protocol::FILTER, ""); | ||||||
| 	            QB_.Select = GetParameter(RESTAPI::Protocol::SELECT, ""); | 	            QB_.Select = GetParameter(RESTAPI::Protocol::SELECT, ""); | ||||||
| @@ -1914,7 +1912,7 @@ namespace OpenWifi { | |||||||
| 	            QB_.AdditionalInfo = GetBoolParameter(RESTAPI::Protocol::WITHEXTENDEDINFO,false); | 	            QB_.AdditionalInfo = GetBoolParameter(RESTAPI::Protocol::WITHEXTENDEDINFO,false); | ||||||
|  |  | ||||||
| 	            if(QB_.Offset<1) | 	            if(QB_.Offset<1) | ||||||
| 	                QB_.Offset=0; | 	                QB_.Offset=1; | ||||||
| 	            return true; | 	            return true; | ||||||
| 	        } | 	        } | ||||||
|  |  | ||||||
| @@ -2395,10 +2393,10 @@ namespace OpenWifi { | |||||||
|                                                             Poco::Logger & L, RESTAPI_GenericServer & S); |                                                             Poco::Logger & L, RESTAPI_GenericServer & S); | ||||||
|  |  | ||||||
|  |  | ||||||
| 	class RESTAPI_ExtServer : public SubSystemServer { | 	class RESTAPI_server : public SubSystemServer { | ||||||
| 	public: | 	public: | ||||||
| 	    static RESTAPI_ExtServer *instance() { | 	    static RESTAPI_server *instance() { | ||||||
| 	        static RESTAPI_ExtServer *instance_ = new RESTAPI_ExtServer; | 	        static RESTAPI_server *instance_ = new RESTAPI_server; | ||||||
| 	        return instance_; | 	        return instance_; | ||||||
| 	    } | 	    } | ||||||
| 	    int Start() override; | 	    int Start() override; | ||||||
| @@ -2412,7 +2410,7 @@ namespace OpenWifi { | |||||||
|  |  | ||||||
| 	    inline void reinitialize(Poco::Util::Application &self) override; | 	    inline void reinitialize(Poco::Util::Application &self) override; | ||||||
|  |  | ||||||
| 	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path, uint64_t Id) { | 	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path) { | ||||||
| 	        RESTAPIHandler::BindingMap Bindings; | 	        RESTAPIHandler::BindingMap Bindings; | ||||||
| 	        return RESTAPI_external_server(Path, Bindings, Logger_, Server_); | 	        return RESTAPI_external_server(Path, Bindings, Logger_, Server_); | ||||||
| 	    } | 	    } | ||||||
| @@ -2422,19 +2420,19 @@ namespace OpenWifi { | |||||||
| 	    Poco::ThreadPool	    Pool_; | 	    Poco::ThreadPool	    Pool_; | ||||||
| 	    RESTAPI_GenericServer   Server_; | 	    RESTAPI_GenericServer   Server_; | ||||||
|  |  | ||||||
| 	    RESTAPI_ExtServer() noexcept: | 	    RESTAPI_server() noexcept: | ||||||
| 	    SubSystemServer("RESTAPIServer", "RESTAPIServer", "openwifi.restapi") | 	    SubSystemServer("RESTAPIServer", "RESTAPIServer", "openwifi.restapi") | ||||||
|             { |             { | ||||||
|             } |             } | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	inline RESTAPI_ExtServer * RESTAPI_ExtServer() { return RESTAPI_ExtServer::instance(); }; | 	inline RESTAPI_server * RESTAPI_server() { return RESTAPI_server::instance(); }; | ||||||
|  |  | ||||||
| 	class ExtRequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory { | 	class RequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory { | ||||||
| 	public: | 	public: | ||||||
| 	  	explicit ExtRequestHandlerFactory(RESTAPI_GenericServer & Server) : | 	    RequestHandlerFactory(RESTAPI_GenericServer & Server) : | ||||||
| 			Logger_(RESTAPI_ExtServer::instance()->Logger()), | 	    Logger_(RESTAPI_server::instance()->Logger()), | ||||||
| 			Server_(Server) | 	    Server_(Server) | ||||||
| 	    { | 	    { | ||||||
|  |  | ||||||
| 	    } | 	    } | ||||||
| @@ -2442,16 +2440,15 @@ namespace OpenWifi { | |||||||
| 	    inline Poco::Net::HTTPRequestHandler *createRequestHandler(const Poco::Net::HTTPServerRequest &Request) override { | 	    inline Poco::Net::HTTPRequestHandler *createRequestHandler(const Poco::Net::HTTPServerRequest &Request) override { | ||||||
| 	        Poco::URI uri(Request.getURI()); | 	        Poco::URI uri(Request.getURI()); | ||||||
| 	        auto *Path = uri.getPath().c_str(); | 	        auto *Path = uri.getPath().c_str(); | ||||||
| 	        return RESTAPI_ExtServer()->CallServer(Path, TransactionId_++); | 	        return RESTAPI_server()->CallServer(Path); | ||||||
| 	    } | 	    } | ||||||
|  |  | ||||||
| 	private: | 	private: | ||||||
| 		static inline std::atomic_uint64_t  TransactionId_ = 1; | 	    Poco::Logger            &Logger_; | ||||||
| 	    Poco::Logger            			&Logger_; | 	    RESTAPI_GenericServer   &Server_; | ||||||
| 	    RESTAPI_GenericServer   			&Server_; |  | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	inline int RESTAPI_ExtServer::Start() { | 	inline int RESTAPI_server::Start() { | ||||||
| 	    Logger_.information("Starting."); | 	    Logger_.information("Starting."); | ||||||
| 	    Server_.InitLogging(); | 	    Server_.InitLogging(); | ||||||
|  |  | ||||||
| @@ -2470,7 +2467,7 @@ namespace OpenWifi { | |||||||
| 	        Params->setMaxQueued(200); | 	        Params->setMaxQueued(200); | ||||||
| 	        Params->setKeepAlive(true); | 	        Params->setKeepAlive(true); | ||||||
|  |  | ||||||
| 	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new ExtRequestHandlerFactory(Server_), Pool_, Sock, Params); | 	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new RequestHandlerFactory(Server_), Pool_, Sock, Params); | ||||||
| 	        NewServer->start(); | 	        NewServer->start(); | ||||||
| 	        RESTServers_.push_back(std::move(NewServer)); | 	        RESTServers_.push_back(std::move(NewServer)); | ||||||
| 	    } | 	    } | ||||||
| @@ -2478,11 +2475,11 @@ namespace OpenWifi { | |||||||
| 	    return 0; | 	    return 0; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	class RESTAPI_IntServer : public SubSystemServer { | 	class RESTAPI_InternalServer : public SubSystemServer { | ||||||
|  |  | ||||||
| 	public: | 	public: | ||||||
| 	    static RESTAPI_IntServer *instance() { | 	    static RESTAPI_InternalServer *instance() { | ||||||
| 	        static RESTAPI_IntServer *instance_ = new RESTAPI_IntServer; | 	        static RESTAPI_InternalServer *instance_ = new RESTAPI_InternalServer; | ||||||
| 	        return instance_; | 	        return instance_; | ||||||
| 	    } | 	    } | ||||||
|  |  | ||||||
| @@ -2491,13 +2488,12 @@ namespace OpenWifi { | |||||||
| 	        Logger_.information("Stopping "); | 	        Logger_.information("Stopping "); | ||||||
| 	        for( const auto & svr : RESTServers_ ) | 	        for( const auto & svr : RESTServers_ ) | ||||||
| 	            svr->stop(); | 	            svr->stop(); | ||||||
| 			Pool_.joinAll(); | 	        Pool_.stopAll(); | ||||||
| 			RESTServers_.clear(); |  | ||||||
| 	    } | 	    } | ||||||
|  |  | ||||||
| 	    inline void reinitialize(Poco::Util::Application &self) override; | 	    inline void reinitialize(Poco::Util::Application &self) override; | ||||||
|  |  | ||||||
| 	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path, uint64_t Id) { | 	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path) { | ||||||
| 	        RESTAPIHandler::BindingMap Bindings; | 	        RESTAPIHandler::BindingMap Bindings; | ||||||
| 	        return RESTAPI_internal_server(Path, Bindings, Logger_, Server_); | 	        return RESTAPI_internal_server(Path, Bindings, Logger_, Server_); | ||||||
| 	    } | 	    } | ||||||
| @@ -2506,31 +2502,30 @@ namespace OpenWifi { | |||||||
| 	    Poco::ThreadPool	    Pool_; | 	    Poco::ThreadPool	    Pool_; | ||||||
| 	    RESTAPI_GenericServer   Server_; | 	    RESTAPI_GenericServer   Server_; | ||||||
|  |  | ||||||
| 	    RESTAPI_IntServer() noexcept: SubSystemServer("RESTAPIInternalServer", "REST-ISRV", "openwifi.internal.restapi") | 	    RESTAPI_InternalServer() noexcept: SubSystemServer("RESTAPIInternalServer", "REST-ISRV", "openwifi.internal.restapi") | ||||||
| 	    { | 	    { | ||||||
| 	    } | 	    } | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	inline RESTAPI_IntServer * RESTAPI_IntServer() { return RESTAPI_IntServer::instance(); }; | 	inline RESTAPI_InternalServer * RESTAPI_InternalServer() { return RESTAPI_InternalServer::instance(); }; | ||||||
|  |  | ||||||
| 	class IntRequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory { | 	class InternalRequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory { | ||||||
| 	public: | 	public: | ||||||
| 	  	explicit IntRequestHandlerFactory(RESTAPI_GenericServer & Server) : | 	    InternalRequestHandlerFactory(RESTAPI_GenericServer & Server) : | ||||||
| 	    Logger_(RESTAPI_IntServer()->Logger()), | 	    Logger_(RESTAPI_InternalServer()->Logger()), | ||||||
| 	    Server_(Server){} | 	    Server_(Server){} | ||||||
|  |  | ||||||
| 	    inline Poco::Net::HTTPRequestHandler *createRequestHandler(const Poco::Net::HTTPServerRequest &Request) override { | 	    inline Poco::Net::HTTPRequestHandler *createRequestHandler(const Poco::Net::HTTPServerRequest &Request) override { | ||||||
| 	        Poco::URI uri(Request.getURI()); | 	        Poco::URI uri(Request.getURI()); | ||||||
| 	        auto *Path = uri.getPath().c_str(); | 	        auto *Path = uri.getPath().c_str(); | ||||||
| 	        return RESTAPI_IntServer()->CallServer(Path, TransactionId_++); | 	        return RESTAPI_InternalServer()->CallServer(Path); | ||||||
| 	    } | 	    } | ||||||
| 	private: | 	private: | ||||||
| 		static inline std::atomic_uint64_t  TransactionId_ = 1; |  | ||||||
| 	    Poco::Logger    & Logger_; | 	    Poco::Logger    & Logger_; | ||||||
| 	    RESTAPI_GenericServer   & Server_; | 	    RESTAPI_GenericServer   & Server_; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	inline int RESTAPI_IntServer::Start() { | 	inline int RESTAPI_InternalServer::Start() { | ||||||
| 	    Logger_.information("Starting."); | 	    Logger_.information("Starting."); | ||||||
| 	    Server_.InitLogging(); | 	    Server_.InitLogging(); | ||||||
|  |  | ||||||
| @@ -2548,7 +2543,7 @@ namespace OpenWifi { | |||||||
| 	        Params->setMaxQueued(200); | 	        Params->setMaxQueued(200); | ||||||
| 	        Params->setKeepAlive(true); | 	        Params->setKeepAlive(true); | ||||||
|  |  | ||||||
| 	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new IntRequestHandlerFactory(Server_), Pool_, Sock, Params); | 	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new InternalRequestHandlerFactory(Server_), Pool_, Sock, Params); | ||||||
| 	        NewServer->start(); | 	        NewServer->start(); | ||||||
| 	        RESTServers_.push_back(std::move(NewServer)); | 	        RESTServers_.push_back(std::move(NewServer)); | ||||||
| 	    } | 	    } | ||||||
| @@ -2678,7 +2673,7 @@ namespace OpenWifi { | |||||||
| 		std::string 				MyPrivateEndPoint_; | 		std::string 				MyPrivateEndPoint_; | ||||||
| 		std::string 				MyPublicEndPoint_; | 		std::string 				MyPublicEndPoint_; | ||||||
| 		std::string                 UIURI_; | 		std::string                 UIURI_; | ||||||
| 		std::string 				Version_{ OW_VERSION::VERSION + "("+ OW_VERSION::BUILD + ")" + " - " + OW_VERSION::HASH }; | 		std::string 				Version_{std::string(APP_VERSION) + "("+ BUILD_NUMBER + ")"}; | ||||||
| 		BusEventManager				BusEventManager_; | 		BusEventManager				BusEventManager_; | ||||||
| 		std::mutex 					InfraMutex_; | 		std::mutex 					InfraMutex_; | ||||||
| 		std::default_random_engine  RandomEngine_; | 		std::default_random_engine  RandomEngine_; | ||||||
| @@ -2829,8 +2824,8 @@ namespace OpenWifi { | |||||||
| 	    // add the default services | 	    // add the default services | ||||||
| 	    SubSystems_.push_back(KafkaManager()); | 	    SubSystems_.push_back(KafkaManager()); | ||||||
| 	    SubSystems_.push_back(ALBHealthCheckServer()); | 	    SubSystems_.push_back(ALBHealthCheckServer()); | ||||||
| 	    SubSystems_.push_back(RESTAPI_ExtServer()); | 	    SubSystems_.push_back(RESTAPI_server()); | ||||||
| 	    SubSystems_.push_back(RESTAPI_IntServer()); | 	    SubSystems_.push_back(RESTAPI_InternalServer()); | ||||||
|  |  | ||||||
| 	    Poco::Net::initializeSSL(); | 	    Poco::Net::initializeSSL(); | ||||||
| 	    Poco::Net::HTTPStreamFactory::registerFactory(); | 	    Poco::Net::HTTPStreamFactory::registerFactory(); | ||||||
| @@ -3400,14 +3395,14 @@ namespace OpenWifi { | |||||||
| 	    Consumer.unsubscribe(); | 	    Consumer.unsubscribe(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	inline void RESTAPI_ExtServer::reinitialize(Poco::Util::Application &self) { | 	inline void RESTAPI_server::reinitialize(Poco::Util::Application &self) { | ||||||
| 	    MicroService::instance().LoadConfigurationFile(); | 	    MicroService::instance().LoadConfigurationFile(); | ||||||
| 	    Logger_.information("Reinitializing."); | 	    Logger_.information("Reinitializing."); | ||||||
| 	    Stop(); | 	    Stop(); | ||||||
| 	    Start(); | 	    Start(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	void RESTAPI_IntServer::reinitialize(Poco::Util::Application &self) { | 	void RESTAPI_InternalServer::reinitialize(Poco::Util::Application &self) { | ||||||
| 	    MicroService::instance().LoadConfigurationFile(); | 	    MicroService::instance().LoadConfigurationFile(); | ||||||
| 	    Logger_.information("Reinitializing."); | 	    Logger_.information("Reinitializing."); | ||||||
| 	    Stop(); | 	    Stop(); | ||||||
| @@ -3731,7 +3726,7 @@ namespace OpenWifi { | |||||||
|             if (AuthClient()->IsAuthorized( SessionToken_, UserInfo_, Expired)) { |             if (AuthClient()->IsAuthorized( SessionToken_, UserInfo_, Expired)) { | ||||||
| #endif | #endif | ||||||
|                 if(Server_.LogIt(Request->getMethod(),true)) { |                 if(Server_.LogIt(Request->getMethod(),true)) { | ||||||
|                     Logger_.debug(Poco::format("X-REQ-ALLOWED(%s): User='%s@%s' Method='%s' Path='%s'", |                     Logger_.debug(Poco::format("X-REQ-ALLOWED(%s): User='%s@%s' Method='%s' Path='%s", | ||||||
|                                                UserInfo_.userinfo.email, |                                                UserInfo_.userinfo.email, | ||||||
|                                                Utils::FormatIPv6(Request->clientAddress().toString()), |                                                Utils::FormatIPv6(Request->clientAddress().toString()), | ||||||
|                                                Request->clientAddress().toString(), |                                                Request->clientAddress().toString(), | ||||||
| @@ -3741,7 +3736,7 @@ namespace OpenWifi { | |||||||
|                 return true; |                 return true; | ||||||
|             } else { |             } else { | ||||||
|                 if(Server_.LogBadTokens(true)) { |                 if(Server_.LogBadTokens(true)) { | ||||||
|                     Logger_.debug(Poco::format("X-REQ-DENIED(%s): Method='%s' Path='%s'", |                     Logger_.debug(Poco::format("X-REQ-DENIED(%s): Method='%s' Path='%s", | ||||||
|                                                Utils::FormatIPv6(Request->clientAddress().toString()), |                                                Utils::FormatIPv6(Request->clientAddress().toString()), | ||||||
|                                                Request->getMethod(), Request->getURI())); |                                                Request->getMethod(), Request->getURI())); | ||||||
|                 } |                 } | ||||||
|   | |||||||
| @@ -2,7 +2,8 @@ | |||||||
| // Created by stephane bourque on 2021-10-06. | // Created by stephane bourque on 2021-10-06. | ||||||
| // | // | ||||||
|  |  | ||||||
| #pragma once | #ifndef OPENWIFI_STORAGE_H | ||||||
|  | #define OPENWIFI_STORAGE_H | ||||||
|  |  | ||||||
| #include "Poco/Data/Session.h" | #include "Poco/Data/Session.h" | ||||||
| #include "Poco/Data/SessionPool.h" | #include "Poco/Data/SessionPool.h" | ||||||
| @@ -53,13 +54,13 @@ namespace OpenWifi { | |||||||
|  |  | ||||||
|         [[nodiscard]] inline std::string ComputeRange(uint64_t From, uint64_t HowMany) { |         [[nodiscard]] inline std::string ComputeRange(uint64_t From, uint64_t HowMany) { | ||||||
|             if(dbType_==sqlite) { |             if(dbType_==sqlite) { | ||||||
|                 return " LIMIT " + std::to_string(From) + ", " + std::to_string(HowMany) + " "; |                 return " LIMIT " + std::to_string(From-1) + ", " + std::to_string(HowMany) + " "; | ||||||
|             } else if(dbType_==pgsql) { |             } else if(dbType_==pgsql) { | ||||||
|                 return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From) + " "; |                 return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From-1) + " "; | ||||||
|             } else if(dbType_==mysql) { |             } else if(dbType_==mysql) { | ||||||
|                 return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From) + " "; |                 return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From-1) + " "; | ||||||
|             } |             } | ||||||
|             return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From) + " "; |             return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From-1) + " "; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         inline std::string ConvertParams(const std::string & S) const { |         inline std::string ConvertParams(const std::string & S) const { | ||||||
| @@ -164,3 +165,5 @@ namespace OpenWifi { | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #endif //OPENWIFI_STORAGE_H | ||||||
|   | |||||||
| @@ -1,13 +0,0 @@ | |||||||
| // |  | ||||||
| // Created by stephane bourque on 2021-12-06. |  | ||||||
| // |  | ||||||
|  |  | ||||||
| #pragma once |  | ||||||
|  |  | ||||||
| #include <string> |  | ||||||
|  |  | ||||||
| namespace OW_VERSION { |  | ||||||
|     inline static const std::string VERSION{"@CMAKE_PROJECT_VERSION@"}; |  | ||||||
|     inline static const std::string BUILD{"@BUILD_NUM@"}; |  | ||||||
|     inline static const std::string HASH{"@GIT_HASH@"}; |  | ||||||
| } |  | ||||||
| @@ -15,23 +15,23 @@ namespace OpenWifi { | |||||||
|             "description    varchar," |             "description    varchar," | ||||||
|             "avatar         varchar," |             "avatar         varchar," | ||||||
|             "email          varchar," |             "email          varchar," | ||||||
|             "validated      boolean," |             "validated      int," | ||||||
|             "validationEmail    varchar," |             "validationEmail    varchar," | ||||||
|             "validationDate bigint," |             "validationDate bigint," | ||||||
|             "creationDate   bigint," |             "creationDate   bigint," | ||||||
|             "validationURI  varchar," |             "validationURI  varchar," | ||||||
|             "changePassword boolean," |             "changePassword int," | ||||||
|             "lastLogin      bigint," |             "lastLogin      bigint," | ||||||
|             "currentLoginURI    varchar," |             "currentLoginURI    varchar," | ||||||
|             "lastPasswordChange bigint," |             "lastPasswordChange bigint," | ||||||
|             "lastEmailCheck     bigint," |             "lastEmailCheck     bigint," | ||||||
|             "waitingForEmailCheck   boolean," |             "waitingForEmailCheck   int," | ||||||
|             "locale             varchar," |             "locale             varchar," | ||||||
|             "notes              text," |             "notes              text," | ||||||
|             "location           varchar," |             "location           varchar," | ||||||
|             "owner              varchar," |             "owner              varchar," | ||||||
|             "suspended          boolean," |             "suspended          int," | ||||||
|             "blackListed        boolean," |             "blackListed        int," | ||||||
|             "userRole           varchar," |             "userRole           varchar," | ||||||
|             "userTypeProprietaryInfo    text," |             "userTypeProprietaryInfo    text," | ||||||
|             "securityPolicy     text," |             "securityPolicy     text," | ||||||
| @@ -111,23 +111,23 @@ namespace OpenWifi { | |||||||
|         std::string,    // description; |         std::string,    // description; | ||||||
|         std::string,    // avatar; |         std::string,    // avatar; | ||||||
|         std::string,    // email; |         std::string,    // email; | ||||||
|         bool,       // bool validated = false; |         uint64_t,       // bool validated = false; | ||||||
|         std::string,    // validationEmail; |         std::string,    // validationEmail; | ||||||
|         uint64_t,       // validationDate = 0; |         uint64_t,       // validationDate = 0; | ||||||
|         uint64_t,       // creationDate = 0; |         uint64_t,       // creationDate = 0; | ||||||
|         std::string,    // validationURI; |         std::string,    // validationURI; | ||||||
|         bool,       // bool changePassword = true; |         uint64_t,       // bool changePassword = true; | ||||||
|         uint64_t,       // lastLogin = 0; |         uint64_t,       // lastLogin = 0; | ||||||
|         std::string,    // currentLoginURI; |         std::string,    // currentLoginURI; | ||||||
|         uint64_t,       // lastPasswordChange = 0; |         uint64_t,       // lastPasswordChange = 0; | ||||||
|         uint64_t,       // lastEmailCheck = 0; |         uint64_t,       // lastEmailCheck = 0; | ||||||
|         bool,      // bool waitingForEmailCheck = false; |         uint64_t,      // bool waitingForEmailCheck = false; | ||||||
|         std::string,    // locale; |         std::string,    // locale; | ||||||
|         std::string,    // notes; |         std::string,    // notes; | ||||||
|         std::string,    // location; |         std::string,    // location; | ||||||
|         std::string,    // owner; |         std::string,    // owner; | ||||||
|         bool,       // bool suspended = false; |         uint64_t,       // bool suspended = false; | ||||||
|         bool,       // bool blackListed = false; |         uint64_t,       // bool blackListed = false; | ||||||
|         std::string,    // userRole; |         std::string,    // userRole; | ||||||
|         std::string,    // userTypeProprietaryInfo; |         std::string,    // userTypeProprietaryInfo; | ||||||
|         std::string,    // securityPolicy; |         std::string,    // securityPolicy; | ||||||
|   | |||||||
| @@ -1,26 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| # wait-for-postgres.sh |  | ||||||
|  |  | ||||||
| set -e |  | ||||||
|    |  | ||||||
| host="$1" |  | ||||||
| shift |  | ||||||
|  |  | ||||||
| export PGUSER=$(grep 'storage.type.postgresql.username' $OWSEC_CONFIG/owsec.properties | awk -F '= ' '{print $2}') |  | ||||||
| export PGPASSWORD=$(grep 'storage.type.postgresql.password' $OWSEC_CONFIG/owsec.properties | awk -F '= ' '{print $2}') |  | ||||||
|    |  | ||||||
| until psql -h "$host" -c '\q'; do |  | ||||||
|   >&2 echo "Postgres is unavailable - sleeping" |  | ||||||
|   sleep 1 |  | ||||||
| done |  | ||||||
|    |  | ||||||
| >&2 echo "Postgres is up - executing command" |  | ||||||
|  |  | ||||||
| if [ "$1" = '/openwifi/owsec' -a "$(id -u)" = '0' ]; then |  | ||||||
|     if [ "$RUN_CHOWN" = 'true' ]; then |  | ||||||
|       chown -R "$OWSEC_USER": "$OWSEC_ROOT" "$OWSEC_CONFIG" |  | ||||||
|     fi |  | ||||||
|     exec su-exec "$OWSEC_USER" "$@" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| exec "$@" |  | ||||||
		Reference in New Issue
	
	Block a user