mirror of
				https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
				synced 2025-11-03 20:27:45 +00:00 
			
		
		
		
	Compare commits
	
		
			20 Commits
		
	
	
		
			v3.0.0-RC2
			...
			v2.4.2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					95ea70d5c2 | ||
| 
						 | 
					8b40de4631 | ||
| 
						 | 
					b1740575a5 | ||
| 
						 | 
					02057624de | ||
| 
						 | 
					2e394d0513 | ||
| 
						 | 
					24b022fa60 | ||
| 
						 | 
					88922786ff | ||
| 
						 | 
					4510cd034f | ||
| 
						 | 
					af5774ce36 | ||
| 
						 | 
					2573b8cd4f | ||
| 
						 | 
					9c5b18a536 | ||
| 
						 | 
					768c428a67 | ||
| 
						 | 
					389ceb8b7d | ||
| 
						 | 
					157f18c117 | ||
| 
						 | 
					2538f9c768 | ||
| 
						 | 
					85d998ad76 | ||
| 
						 | 
					a407f2e38d | ||
| 
						 | 
					d0d2be0870 | ||
| 
						 | 
					78cba562e6 | ||
| 
						 | 
					350df38c3f | 
@@ -30,9 +30,20 @@ else()
 | 
			
		||||
    file(WRITE build ${BUILD_NUM})
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(BUILD_SHARED_LIBS 1)
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
add_definitions(-DAPP_VERSION="${CMAKE_PROJECT_VERSION}" -DBUILD_NUMBER="${BUILD_NUM}")
 | 
			
		||||
set(BUILD_SHARED_LIBS 1)
 | 
			
		||||
add_definitions(-DTIP_SECURITY_SERVICE="1")
 | 
			
		||||
 | 
			
		||||
set(Boost_USE_STATIC_LIBS OFF)
 | 
			
		||||
@@ -50,8 +61,11 @@ 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)
 | 
			
		||||
 | 
			
		||||
configure_file(src/ow_version.h.in ${PROJECT_SOURCE_DIR}/src/ow_version.h @ONLY)
 | 
			
		||||
 | 
			
		||||
add_executable( owsec
 | 
			
		||||
        build
 | 
			
		||||
        src/ow_version.h.in
 | 
			
		||||
        src/framework/CountryCodes.h
 | 
			
		||||
        src/framework/KafkaTopics.h
 | 
			
		||||
        src/framework/MicroService.h
 | 
			
		||||
 
 | 
			
		||||
@@ -53,9 +53,12 @@ RUN cmake ..
 | 
			
		||||
RUN make
 | 
			
		||||
RUN make install
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ADD CMakeLists.txt build /owsec/
 | 
			
		||||
ADD cmake /owsec/cmake
 | 
			
		||||
ADD src /owsec/src
 | 
			
		||||
ADD .git /owsec/.git
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
WORKDIR /owsec
 | 
			
		||||
RUN mkdir cmake-build
 | 
			
		||||
@@ -75,7 +78,7 @@ RUN addgroup -S "$OWSEC_USER" && \
 | 
			
		||||
RUN mkdir /openwifi
 | 
			
		||||
RUN mkdir -p "$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
 | 
			
		||||
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
 | 
			
		||||
COPY --from=builder /owsec/cmake-build/owsec /openwifi/owsec
 | 
			
		||||
COPY --from=builder /cppkafka/cmake-build/src/lib/* /lib/
 | 
			
		||||
COPY --from=builder /poco/cmake-build/lib/* /lib/
 | 
			
		||||
@@ -87,6 +90,7 @@ COPY owsec.properties.tmpl /
 | 
			
		||||
COPY wwwassets /dist/wwwassets
 | 
			
		||||
COPY templates /dist/templates
 | 
			
		||||
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 \
 | 
			
		||||
    -O /usr/local/share/ca-certificates/restapi-ca-selfsigned.pem
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								helm/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								helm/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1 +1,2 @@
 | 
			
		||||
*.swp
 | 
			
		||||
charts
 | 
			
		||||
 
 | 
			
		||||
@@ -5,14 +5,14 @@ name: owsec
 | 
			
		||||
version: 0.1.0
 | 
			
		||||
dependencies:
 | 
			
		||||
- name: postgresql
 | 
			
		||||
  repository: https://charts.bitnami.com/bitnami
 | 
			
		||||
  repository: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/
 | 
			
		||||
  version: 10.9.2
 | 
			
		||||
  condition: postgresql.enabled
 | 
			
		||||
- name: mysql
 | 
			
		||||
  repository: https://charts.bitnami.com/bitnami
 | 
			
		||||
  repository: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/
 | 
			
		||||
  version: 8.8.3
 | 
			
		||||
  condition: mysql.enabled
 | 
			
		||||
- name: mariadb
 | 
			
		||||
  repository: https://charts.bitnami.com/bitnami
 | 
			
		||||
  repository: https://tip.jfrog.io/artifactory/tip-wlan-cloud-ucentral-helm/
 | 
			
		||||
  version: 9.4.2
 | 
			
		||||
  condition: mariadb.enabled
 | 
			
		||||
 
 | 
			
		||||
@@ -30,3 +30,13 @@ Create chart name and version as used by the chart label.
 | 
			
		||||
{{- define "owsec.chart" -}}
 | 
			
		||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 | 
			
		||||
{{- define "owsec.ingress.apiVersion" -}}
 | 
			
		||||
  {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" -}}
 | 
			
		||||
      {{- print "networking.k8s.io/v1" -}}
 | 
			
		||||
  {{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" -}}
 | 
			
		||||
    {{- print "networking.k8s.io/v1beta1" -}}
 | 
			
		||||
  {{- else -}}
 | 
			
		||||
    {{- print "extensions/v1beta1" -}}
 | 
			
		||||
  {{- end -}}
 | 
			
		||||
{{- end -}}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
{{- range $ingress, $ingressValue := .Values.ingresses }}
 | 
			
		||||
{{- if $ingressValue.enabled }}
 | 
			
		||||
---
 | 
			
		||||
apiVersion: extensions/v1beta1
 | 
			
		||||
apiVersion: {{ include "owsec.ingress.apiVersion" $root }}
 | 
			
		||||
kind: Ingress
 | 
			
		||||
metadata:
 | 
			
		||||
  name: {{ include "owsec.fullname" $root }}-{{ $ingress }}
 | 
			
		||||
@@ -36,9 +36,23 @@ spec:
 | 
			
		||||
      paths:
 | 
			
		||||
      {{- range $ingressValue.paths }}
 | 
			
		||||
        - path: {{ .path }}
 | 
			
		||||
          {{- if $root.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
 | 
			
		||||
          pathType: {{ .pathType | default "ImplementationSpecific" }}
 | 
			
		||||
          {{- end }}
 | 
			
		||||
          backend:
 | 
			
		||||
            {{- if $root.Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
 | 
			
		||||
            service:
 | 
			
		||||
              name: {{ include "owsec.fullname" $root }}-{{ .serviceName }}
 | 
			
		||||
              port:
 | 
			
		||||
              {{- if kindIs "string" .servicePort }}
 | 
			
		||||
                name: {{ .servicePort }}
 | 
			
		||||
              {{- else }}
 | 
			
		||||
                number: {{ .servicePort }}
 | 
			
		||||
              {{- end }}
 | 
			
		||||
            {{- else }}
 | 
			
		||||
            serviceName: {{ include "owsec.fullname" $root }}-{{ .serviceName }}
 | 
			
		||||
            servicePort: {{ .servicePort }}
 | 
			
		||||
            {{- end }}
 | 
			
		||||
      {{- end }}
 | 
			
		||||
  {{- end }}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ fullnameOverride: ""
 | 
			
		||||
images:
 | 
			
		||||
  owsec:
 | 
			
		||||
    repository: tip-tip-wlan-cloud-ucentral.jfrog.io/owsec
 | 
			
		||||
    tag: main
 | 
			
		||||
    tag: v2.4.0
 | 
			
		||||
    pullPolicy: Always
 | 
			
		||||
#    regcred:
 | 
			
		||||
#      registry: tip-tip-wlan-cloud-ucentral.jfrog.io
 | 
			
		||||
@@ -50,6 +50,7 @@ ingresses:
 | 
			
		||||
    - restapi.chart-example.local
 | 
			
		||||
    paths:
 | 
			
		||||
    - path: /
 | 
			
		||||
      pathType: ImplementationSpecific
 | 
			
		||||
      serviceName: owsec
 | 
			
		||||
      servicePort: restapi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -69,6 +69,8 @@ using namespace std::chrono_literals;
 | 
			
		||||
#include "RESTObjects/RESTAPI_SecurityObjects.h"
 | 
			
		||||
#include "nlohmann/json.hpp"
 | 
			
		||||
 | 
			
		||||
#include "ow_version.h"
 | 
			
		||||
 | 
			
		||||
namespace OpenWifi {
 | 
			
		||||
 | 
			
		||||
    enum UNAUTHORIZED_REASON {
 | 
			
		||||
@@ -1900,7 +1902,7 @@ namespace OpenWifi {
 | 
			
		||||
	            QB_.SerialNumber = GetParameter(RESTAPI::Protocol::SERIALNUMBER, "");
 | 
			
		||||
	            QB_.StartDate = GetParameter(RESTAPI::Protocol::STARTDATE, 0);
 | 
			
		||||
	            QB_.EndDate = GetParameter(RESTAPI::Protocol::ENDDATE, 0);
 | 
			
		||||
	            QB_.Offset = GetParameter(RESTAPI::Protocol::OFFSET, 1);
 | 
			
		||||
	            QB_.Offset = GetParameter(RESTAPI::Protocol::OFFSET, 0);
 | 
			
		||||
	            QB_.Limit = GetParameter(RESTAPI::Protocol::LIMIT, 100);
 | 
			
		||||
	            QB_.Filter = GetParameter(RESTAPI::Protocol::FILTER, "");
 | 
			
		||||
	            QB_.Select = GetParameter(RESTAPI::Protocol::SELECT, "");
 | 
			
		||||
@@ -1912,7 +1914,7 @@ namespace OpenWifi {
 | 
			
		||||
	            QB_.AdditionalInfo = GetBoolParameter(RESTAPI::Protocol::WITHEXTENDEDINFO,false);
 | 
			
		||||
 | 
			
		||||
	            if(QB_.Offset<1)
 | 
			
		||||
	                QB_.Offset=1;
 | 
			
		||||
	                QB_.Offset=0;
 | 
			
		||||
	            return true;
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
@@ -2393,10 +2395,10 @@ namespace OpenWifi {
 | 
			
		||||
                                                            Poco::Logger & L, RESTAPI_GenericServer & S);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	class RESTAPI_server : public SubSystemServer {
 | 
			
		||||
	class RESTAPI_ExtServer : public SubSystemServer {
 | 
			
		||||
	public:
 | 
			
		||||
	    static RESTAPI_server *instance() {
 | 
			
		||||
	        static RESTAPI_server *instance_ = new RESTAPI_server;
 | 
			
		||||
	    static RESTAPI_ExtServer *instance() {
 | 
			
		||||
	        static RESTAPI_ExtServer *instance_ = new RESTAPI_ExtServer;
 | 
			
		||||
	        return instance_;
 | 
			
		||||
	    }
 | 
			
		||||
	    int Start() override;
 | 
			
		||||
@@ -2410,7 +2412,7 @@ namespace OpenWifi {
 | 
			
		||||
 | 
			
		||||
	    inline void reinitialize(Poco::Util::Application &self) override;
 | 
			
		||||
 | 
			
		||||
	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path) {
 | 
			
		||||
	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path, uint64_t Id) {
 | 
			
		||||
	        RESTAPIHandler::BindingMap Bindings;
 | 
			
		||||
	        return RESTAPI_external_server(Path, Bindings, Logger_, Server_);
 | 
			
		||||
	    }
 | 
			
		||||
@@ -2420,19 +2422,19 @@ namespace OpenWifi {
 | 
			
		||||
	    Poco::ThreadPool	    Pool_;
 | 
			
		||||
	    RESTAPI_GenericServer   Server_;
 | 
			
		||||
 | 
			
		||||
	    RESTAPI_server() noexcept:
 | 
			
		||||
	    RESTAPI_ExtServer() noexcept:
 | 
			
		||||
	    SubSystemServer("RESTAPIServer", "RESTAPIServer", "openwifi.restapi")
 | 
			
		||||
            {
 | 
			
		||||
            }
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	inline RESTAPI_server * RESTAPI_server() { return RESTAPI_server::instance(); };
 | 
			
		||||
	inline RESTAPI_ExtServer * RESTAPI_ExtServer() { return RESTAPI_ExtServer::instance(); };
 | 
			
		||||
 | 
			
		||||
	class RequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory {
 | 
			
		||||
	class ExtRequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory {
 | 
			
		||||
	public:
 | 
			
		||||
	    RequestHandlerFactory(RESTAPI_GenericServer & Server) :
 | 
			
		||||
	    Logger_(RESTAPI_server::instance()->Logger()),
 | 
			
		||||
	    Server_(Server)
 | 
			
		||||
	  	explicit ExtRequestHandlerFactory(RESTAPI_GenericServer & Server) :
 | 
			
		||||
			Logger_(RESTAPI_ExtServer::instance()->Logger()),
 | 
			
		||||
			Server_(Server)
 | 
			
		||||
	    {
 | 
			
		||||
 | 
			
		||||
	    }
 | 
			
		||||
@@ -2440,15 +2442,16 @@ namespace OpenWifi {
 | 
			
		||||
	    inline Poco::Net::HTTPRequestHandler *createRequestHandler(const Poco::Net::HTTPServerRequest &Request) override {
 | 
			
		||||
	        Poco::URI uri(Request.getURI());
 | 
			
		||||
	        auto *Path = uri.getPath().c_str();
 | 
			
		||||
	        return RESTAPI_server()->CallServer(Path);
 | 
			
		||||
	        return RESTAPI_ExtServer()->CallServer(Path, TransactionId_++);
 | 
			
		||||
	    }
 | 
			
		||||
 | 
			
		||||
	private:
 | 
			
		||||
	    Poco::Logger            &Logger_;
 | 
			
		||||
	    RESTAPI_GenericServer   &Server_;
 | 
			
		||||
		static inline std::atomic_uint64_t  TransactionId_ = 1;
 | 
			
		||||
	    Poco::Logger            			&Logger_;
 | 
			
		||||
	    RESTAPI_GenericServer   			&Server_;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	inline int RESTAPI_server::Start() {
 | 
			
		||||
	inline int RESTAPI_ExtServer::Start() {
 | 
			
		||||
	    Logger_.information("Starting.");
 | 
			
		||||
	    Server_.InitLogging();
 | 
			
		||||
 | 
			
		||||
@@ -2467,7 +2470,7 @@ namespace OpenWifi {
 | 
			
		||||
	        Params->setMaxQueued(200);
 | 
			
		||||
	        Params->setKeepAlive(true);
 | 
			
		||||
 | 
			
		||||
	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new RequestHandlerFactory(Server_), Pool_, Sock, Params);
 | 
			
		||||
	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new ExtRequestHandlerFactory(Server_), Pool_, Sock, Params);
 | 
			
		||||
	        NewServer->start();
 | 
			
		||||
	        RESTServers_.push_back(std::move(NewServer));
 | 
			
		||||
	    }
 | 
			
		||||
@@ -2475,11 +2478,11 @@ namespace OpenWifi {
 | 
			
		||||
	    return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	class RESTAPI_InternalServer : public SubSystemServer {
 | 
			
		||||
	class RESTAPI_IntServer : public SubSystemServer {
 | 
			
		||||
 | 
			
		||||
	public:
 | 
			
		||||
	    static RESTAPI_InternalServer *instance() {
 | 
			
		||||
	        static RESTAPI_InternalServer *instance_ = new RESTAPI_InternalServer;
 | 
			
		||||
	    static RESTAPI_IntServer *instance() {
 | 
			
		||||
	        static RESTAPI_IntServer *instance_ = new RESTAPI_IntServer;
 | 
			
		||||
	        return instance_;
 | 
			
		||||
	    }
 | 
			
		||||
 | 
			
		||||
@@ -2488,12 +2491,13 @@ namespace OpenWifi {
 | 
			
		||||
	        Logger_.information("Stopping ");
 | 
			
		||||
	        for( const auto & svr : RESTServers_ )
 | 
			
		||||
	            svr->stop();
 | 
			
		||||
	        Pool_.stopAll();
 | 
			
		||||
			Pool_.joinAll();
 | 
			
		||||
			RESTServers_.clear();
 | 
			
		||||
	    }
 | 
			
		||||
 | 
			
		||||
	    inline void reinitialize(Poco::Util::Application &self) override;
 | 
			
		||||
 | 
			
		||||
	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path) {
 | 
			
		||||
	    inline Poco::Net::HTTPRequestHandler *CallServer(const char *Path, uint64_t Id) {
 | 
			
		||||
	        RESTAPIHandler::BindingMap Bindings;
 | 
			
		||||
	        return RESTAPI_internal_server(Path, Bindings, Logger_, Server_);
 | 
			
		||||
	    }
 | 
			
		||||
@@ -2502,30 +2506,31 @@ namespace OpenWifi {
 | 
			
		||||
	    Poco::ThreadPool	    Pool_;
 | 
			
		||||
	    RESTAPI_GenericServer   Server_;
 | 
			
		||||
 | 
			
		||||
	    RESTAPI_InternalServer() noexcept: SubSystemServer("RESTAPIInternalServer", "REST-ISRV", "openwifi.internal.restapi")
 | 
			
		||||
	    RESTAPI_IntServer() noexcept: SubSystemServer("RESTAPIInternalServer", "REST-ISRV", "openwifi.internal.restapi")
 | 
			
		||||
	    {
 | 
			
		||||
	    }
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	inline RESTAPI_InternalServer * RESTAPI_InternalServer() { return RESTAPI_InternalServer::instance(); };
 | 
			
		||||
	inline RESTAPI_IntServer * RESTAPI_IntServer() { return RESTAPI_IntServer::instance(); };
 | 
			
		||||
 | 
			
		||||
	class InternalRequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory {
 | 
			
		||||
	class IntRequestHandlerFactory : public Poco::Net::HTTPRequestHandlerFactory {
 | 
			
		||||
	public:
 | 
			
		||||
	    InternalRequestHandlerFactory(RESTAPI_GenericServer & Server) :
 | 
			
		||||
	    Logger_(RESTAPI_InternalServer()->Logger()),
 | 
			
		||||
	  	explicit IntRequestHandlerFactory(RESTAPI_GenericServer & Server) :
 | 
			
		||||
	    Logger_(RESTAPI_IntServer()->Logger()),
 | 
			
		||||
	    Server_(Server){}
 | 
			
		||||
 | 
			
		||||
	    inline Poco::Net::HTTPRequestHandler *createRequestHandler(const Poco::Net::HTTPServerRequest &Request) override {
 | 
			
		||||
	        Poco::URI uri(Request.getURI());
 | 
			
		||||
	        auto *Path = uri.getPath().c_str();
 | 
			
		||||
	        return RESTAPI_InternalServer()->CallServer(Path);
 | 
			
		||||
	        return RESTAPI_IntServer()->CallServer(Path, TransactionId_++);
 | 
			
		||||
	    }
 | 
			
		||||
	private:
 | 
			
		||||
		static inline std::atomic_uint64_t  TransactionId_ = 1;
 | 
			
		||||
	    Poco::Logger    & Logger_;
 | 
			
		||||
	    RESTAPI_GenericServer   & Server_;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	inline int RESTAPI_InternalServer::Start() {
 | 
			
		||||
	inline int RESTAPI_IntServer::Start() {
 | 
			
		||||
	    Logger_.information("Starting.");
 | 
			
		||||
	    Server_.InitLogging();
 | 
			
		||||
 | 
			
		||||
@@ -2543,7 +2548,7 @@ namespace OpenWifi {
 | 
			
		||||
	        Params->setMaxQueued(200);
 | 
			
		||||
	        Params->setKeepAlive(true);
 | 
			
		||||
 | 
			
		||||
	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new InternalRequestHandlerFactory(Server_), Pool_, Sock, Params);
 | 
			
		||||
	        auto NewServer = std::make_unique<Poco::Net::HTTPServer>(new IntRequestHandlerFactory(Server_), Pool_, Sock, Params);
 | 
			
		||||
	        NewServer->start();
 | 
			
		||||
	        RESTServers_.push_back(std::move(NewServer));
 | 
			
		||||
	    }
 | 
			
		||||
@@ -2673,7 +2678,7 @@ namespace OpenWifi {
 | 
			
		||||
		std::string 				MyPrivateEndPoint_;
 | 
			
		||||
		std::string 				MyPublicEndPoint_;
 | 
			
		||||
		std::string                 UIURI_;
 | 
			
		||||
		std::string 				Version_{std::string(APP_VERSION) + "("+ BUILD_NUMBER + ")"};
 | 
			
		||||
		std::string 				Version_{ OW_VERSION::VERSION + "("+ OW_VERSION::BUILD + ")" + " - " + OW_VERSION::HASH };
 | 
			
		||||
		BusEventManager				BusEventManager_;
 | 
			
		||||
		std::mutex 					InfraMutex_;
 | 
			
		||||
		std::default_random_engine  RandomEngine_;
 | 
			
		||||
@@ -2824,8 +2829,8 @@ namespace OpenWifi {
 | 
			
		||||
	    // add the default services
 | 
			
		||||
	    SubSystems_.push_back(KafkaManager());
 | 
			
		||||
	    SubSystems_.push_back(ALBHealthCheckServer());
 | 
			
		||||
	    SubSystems_.push_back(RESTAPI_server());
 | 
			
		||||
	    SubSystems_.push_back(RESTAPI_InternalServer());
 | 
			
		||||
	    SubSystems_.push_back(RESTAPI_ExtServer());
 | 
			
		||||
	    SubSystems_.push_back(RESTAPI_IntServer());
 | 
			
		||||
 | 
			
		||||
	    Poco::Net::initializeSSL();
 | 
			
		||||
	    Poco::Net::HTTPStreamFactory::registerFactory();
 | 
			
		||||
@@ -3395,14 +3400,14 @@ namespace OpenWifi {
 | 
			
		||||
	    Consumer.unsubscribe();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	inline void RESTAPI_server::reinitialize(Poco::Util::Application &self) {
 | 
			
		||||
	inline void RESTAPI_ExtServer::reinitialize(Poco::Util::Application &self) {
 | 
			
		||||
	    MicroService::instance().LoadConfigurationFile();
 | 
			
		||||
	    Logger_.information("Reinitializing.");
 | 
			
		||||
	    Stop();
 | 
			
		||||
	    Start();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void RESTAPI_InternalServer::reinitialize(Poco::Util::Application &self) {
 | 
			
		||||
	void RESTAPI_IntServer::reinitialize(Poco::Util::Application &self) {
 | 
			
		||||
	    MicroService::instance().LoadConfigurationFile();
 | 
			
		||||
	    Logger_.information("Reinitializing.");
 | 
			
		||||
	    Stop();
 | 
			
		||||
@@ -3726,7 +3731,7 @@ namespace OpenWifi {
 | 
			
		||||
            if (AuthClient()->IsAuthorized( SessionToken_, UserInfo_, Expired)) {
 | 
			
		||||
#endif
 | 
			
		||||
                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,
 | 
			
		||||
                                               Utils::FormatIPv6(Request->clientAddress().toString()),
 | 
			
		||||
                                               Request->clientAddress().toString(),
 | 
			
		||||
@@ -3736,7 +3741,7 @@ namespace OpenWifi {
 | 
			
		||||
                return true;
 | 
			
		||||
            } else {
 | 
			
		||||
                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()),
 | 
			
		||||
                                               Request->getMethod(), Request->getURI()));
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,7 @@
 | 
			
		||||
// Created by stephane bourque on 2021-10-06.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef OPENWIFI_STORAGE_H
 | 
			
		||||
#define OPENWIFI_STORAGE_H
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "Poco/Data/Session.h"
 | 
			
		||||
#include "Poco/Data/SessionPool.h"
 | 
			
		||||
@@ -54,13 +53,13 @@ namespace OpenWifi {
 | 
			
		||||
 | 
			
		||||
        [[nodiscard]] inline std::string ComputeRange(uint64_t From, uint64_t HowMany) {
 | 
			
		||||
            if(dbType_==sqlite) {
 | 
			
		||||
                return " LIMIT " + std::to_string(From-1) + ", " + std::to_string(HowMany) + " ";
 | 
			
		||||
                return " LIMIT " + std::to_string(From) + ", " + std::to_string(HowMany) + " ";
 | 
			
		||||
            } else if(dbType_==pgsql) {
 | 
			
		||||
                return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From-1) + " ";
 | 
			
		||||
                return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From) + " ";
 | 
			
		||||
            } else if(dbType_==mysql) {
 | 
			
		||||
                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) + " ";
 | 
			
		||||
            return " LIMIT " + std::to_string(HowMany) + " OFFSET " + std::to_string(From) + " ";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        inline std::string ConvertParams(const std::string & S) const {
 | 
			
		||||
@@ -165,5 +164,3 @@ namespace OpenWifi {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif //OPENWIFI_STORAGE_H
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								src/ow_version.h.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/ow_version.h.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
//
 | 
			
		||||
// 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,"
 | 
			
		||||
            "avatar         varchar,"
 | 
			
		||||
            "email          varchar,"
 | 
			
		||||
            "validated      int,"
 | 
			
		||||
            "validated      boolean,"
 | 
			
		||||
            "validationEmail    varchar,"
 | 
			
		||||
            "validationDate bigint,"
 | 
			
		||||
            "creationDate   bigint,"
 | 
			
		||||
            "validationURI  varchar,"
 | 
			
		||||
            "changePassword int,"
 | 
			
		||||
            "changePassword boolean,"
 | 
			
		||||
            "lastLogin      bigint,"
 | 
			
		||||
            "currentLoginURI    varchar,"
 | 
			
		||||
            "lastPasswordChange bigint,"
 | 
			
		||||
            "lastEmailCheck     bigint,"
 | 
			
		||||
            "waitingForEmailCheck   int,"
 | 
			
		||||
            "waitingForEmailCheck   boolean,"
 | 
			
		||||
            "locale             varchar,"
 | 
			
		||||
            "notes              text,"
 | 
			
		||||
            "location           varchar,"
 | 
			
		||||
            "owner              varchar,"
 | 
			
		||||
            "suspended          int,"
 | 
			
		||||
            "blackListed        int,"
 | 
			
		||||
            "suspended          boolean,"
 | 
			
		||||
            "blackListed        boolean,"
 | 
			
		||||
            "userRole           varchar,"
 | 
			
		||||
            "userTypeProprietaryInfo    text,"
 | 
			
		||||
            "securityPolicy     text,"
 | 
			
		||||
@@ -111,23 +111,23 @@ namespace OpenWifi {
 | 
			
		||||
        std::string,    // description;
 | 
			
		||||
        std::string,    // avatar;
 | 
			
		||||
        std::string,    // email;
 | 
			
		||||
        uint64_t,       // bool validated = false;
 | 
			
		||||
        bool,       // bool validated = false;
 | 
			
		||||
        std::string,    // validationEmail;
 | 
			
		||||
        uint64_t,       // validationDate = 0;
 | 
			
		||||
        uint64_t,       // creationDate = 0;
 | 
			
		||||
        std::string,    // validationURI;
 | 
			
		||||
        uint64_t,       // bool changePassword = true;
 | 
			
		||||
        bool,       // bool changePassword = true;
 | 
			
		||||
        uint64_t,       // lastLogin = 0;
 | 
			
		||||
        std::string,    // currentLoginURI;
 | 
			
		||||
        uint64_t,       // lastPasswordChange = 0;
 | 
			
		||||
        uint64_t,       // lastEmailCheck = 0;
 | 
			
		||||
        uint64_t,      // bool waitingForEmailCheck = false;
 | 
			
		||||
        bool,      // bool waitingForEmailCheck = false;
 | 
			
		||||
        std::string,    // locale;
 | 
			
		||||
        std::string,    // notes;
 | 
			
		||||
        std::string,    // location;
 | 
			
		||||
        std::string,    // owner;
 | 
			
		||||
        uint64_t,       // bool suspended = false;
 | 
			
		||||
        uint64_t,       // bool blackListed = false;
 | 
			
		||||
        bool,       // bool suspended = false;
 | 
			
		||||
        bool,       // bool blackListed = false;
 | 
			
		||||
        std::string,    // userRole;
 | 
			
		||||
        std::string,    // userTypeProprietaryInfo;
 | 
			
		||||
        std::string,    // securityPolicy;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								wait-for-postgres.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								wait-for-postgres.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
#!/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