From fcf459f9d7fb6f1e134a46e63e27ffa4726ad5f5 Mon Sep 17 00:00:00 2001 From: gsd Date: Wed, 28 Aug 2024 16:04:54 +0300 Subject: [PATCH] auth --- backend/config_parser.py | 2 + backend/global_funcs.py | 7 +++- backend/server.py | 36 +++++++++++++++++- frontend/ang_dvrip/src/app/app.component.html | 36 ++++++++---------- frontend/ang_dvrip/src/app/app.component.ts | 24 +++++++++++- frontend/ang_dvrip/src/assets/nonauth.webp | Bin 0 -> 61464 bytes 6 files changed, 80 insertions(+), 25 deletions(-) create mode 100644 frontend/ang_dvrip/src/assets/nonauth.webp diff --git a/backend/config_parser.py b/backend/config_parser.py index 8f6ea69..fe2c42b 100644 --- a/backend/config_parser.py +++ b/backend/config_parser.py @@ -368,6 +368,8 @@ class Config: raw = load_config(config_name) if args == None or not args.err_check else {} self.listen_address = raw.get("backend", {}).get("address", "0.0.0.0") self.listen_port = int(raw.get("backend", {}).get("port", "8080")) + self.auth = raw.get("backend", {}).get("auth", {}).items() + self.recorders = [] i = 0 for raw_server in raw.get("recorders", []): diff --git a/backend/global_funcs.py b/backend/global_funcs.py index b44c81b..5c7ebfa 100644 --- a/backend/global_funcs.py +++ b/backend/global_funcs.py @@ -6,9 +6,12 @@ import uuid import logging +def hexed(string:str): + return hashlib.md5(string.encode("utf8")).hexdigest() + + def uuid_from_string(string:str): - hex_string = hashlib.md5(string.encode("utf8")).hexdigest() - return uuid.UUID(hex=hex_string) + return uuid.UUID(hex=hexed(string)) def app_dir(): diff --git a/backend/server.py b/backend/server.py index 0fc92c1..caf8e97 100644 --- a/backend/server.py +++ b/backend/server.py @@ -1,20 +1,24 @@ -from fastapi import FastAPI, Response, BackgroundTasks, Header +from fastapi import FastAPI, Response, BackgroundTasks, Header, Request from fastapi.responses import StreamingResponse, FileResponse +from fastapi.security import HTTPBasic, HTTPBasicCredentials +from fastapi.exceptions import HTTPException import uvicorn import traceback import aiofiles from config_parser import Config as ConfigParser from config_parser import TranscodeStatus, TranscodeTools, Go2Rtc, NeedNVR -from global_funcs import create_logger +from global_funcs import create_logger, hexed from nvr_core import NVR from nvr_types import File import os +import time class Server: app: FastAPI = FastAPI() config: ConfigParser = ConfigParser() go2rtc: Go2Rtc = Go2Rtc() + security = HTTPBasic() API_BASE_REF = "/api/dvrip" @@ -22,6 +26,7 @@ class Server: self.logger = create_logger(Server.__name__) self.setup_events() self.setup_routers() + self.setup_middleware() def setup_events(self): @self.app.on_event('startup') @@ -35,7 +40,34 @@ class Server: self.logger.info(f"{self.config.recorders[i]} channels count: {self.config.recorders[i].channels}") await self.go2rtc.start_go2rtc(self.config.recorders) + def setup_middleware(self): + if len(self.config.auth) != 0: + self.logger.info("auth is enabled") + + @self.app.middleware("http") + async def auth_handler(request: Request, call_next): + try: + s = await self.security(request) + if s.username not in self.config.auth.mapping or hexed(s.password) != self.config.auth.mapping[s.username]: + raise HTTPException(status_code=401, headers={"WWW-Authenticate": "Basic"}) + except HTTPException as e: + return Response(status_code=e.status_code, headers=e.headers) + + return await call_next(request) + + @self.app.get(self.API_BASE_REF + "/logout") + async def logout(request: Request): + request.scope.update(headers={"Authorization":"b"}) + return Response(status_code=401) + + else: + self.logger.warn("auth is disabled") + def setup_routers(self): + @self.app.get(self.API_BASE_REF + "/ping", status_code=200) + async def getPing(): + return {"pong":time.time()} + @self.app.get(self.API_BASE_REF, status_code=200) async def getRecorders(response: Response): try: diff --git a/frontend/ang_dvrip/src/app/app.component.html b/frontend/ang_dvrip/src/app/app.component.html index dd23fe6..3be95c8 100644 --- a/frontend/ang_dvrip/src/app/app.component.html +++ b/frontend/ang_dvrip/src/app/app.component.html @@ -1,5 +1,17 @@ - + + +

Загрузка...

+
+ + +
+ +

Не авторизован

+ +
+
+
@@ -10,6 +22,8 @@ Закрыть
+ DVRIP Клиент {{version}} +
Выбранный рекордер @@ -26,7 +40,7 @@

Нет доступных каналов


- DVRIP Клиент {{version}} +
@@ -51,21 +65,3 @@
- diff --git a/frontend/ang_dvrip/src/app/app.component.ts b/frontend/ang_dvrip/src/app/app.component.ts index d47d98d..feb34c2 100644 --- a/frontend/ang_dvrip/src/app/app.component.ts +++ b/frontend/ang_dvrip/src/app/app.component.ts @@ -16,9 +16,18 @@ export class AppComponent implements OnInit { selected_channel:number = 0; loading:boolean = true version = version; + authed:number = 0; ngOnInit(): void { - this.getRecorders(); + this.getPing().subscribe( + (a:any) => { + this.authed = 1; + this.getRecorders(); + }, + (e:any) => { + this.authed = -1; + } + ) } constructor(private api:ApiService, @@ -26,6 +35,10 @@ export class AppComponent implements OnInit { private router:Router) { } + getPing() { + return this.http.get("/api/dvrip/ping") + } + getRecorders() { this.loading = true; this.http.get("/api/dvrip", {}).subscribe((a:any) => { @@ -49,4 +62,13 @@ export class AppComponent implements OnInit { goToRoot() { this.router.navigate(["/"]) } + + logout() { + this.http.get("api/dvrip/logout").subscribe(); + this.reload(); + } + + reload() { + location.reload(); + } } diff --git a/frontend/ang_dvrip/src/assets/nonauth.webp b/frontend/ang_dvrip/src/assets/nonauth.webp new file mode 100644 index 0000000000000000000000000000000000000000..d48158dcb4f4e9ad8368aa34252547cf3f1bf7f0 GIT binary patch literal 61464 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 Z;qy-{a7nvCkc*BA$&p9U5tO;O005T1IlKS> literal 0 HcmV?d00001