From 69da949aa87d856ee8ccdfd55fa026eb16a98898 Mon Sep 17 00:00:00 2001 From: Simon Zeyer Date: Wed, 16 Oct 2024 12:07:22 +0000 Subject: [PATCH] add basic auth --- .env.dev | 3 ++- Dockerfile | 3 ++- app/app.py | 11 +++++++++-- docker-compose.yaml | 5 ++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.env.dev b/.env.dev index 240c24a..f25b090 100644 --- a/.env.dev +++ b/.env.dev @@ -11,4 +11,5 @@ alarminator_api="" alarminator_token="" alarminator_zvies_use_PEALGRP="False" printer=DEFAULT -print_num=0 \ No newline at end of file +print_num=0 +BASIC_AUTH_PASSWORD="" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 60f7142..33bca19 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,6 +14,7 @@ ENV print_num=0 ENV printer="DEFAULT" ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt ENV MAPS_API_KEY="" +ENV BASIC_AUTH_PASSWORD="" COPY *.deb / @@ -62,4 +63,4 @@ COPY ./app . COPY *.crt /usr/local/share/ca-certificates/ RUN update-ca-certificates -CMD [ "sh","-c","/etc/init.d/cups start && python3 /usr/src/app/http.py" ] +CMD [ "sh","-c","/etc/init.d/cups start && python3 /usr/src/app/app.py" ] diff --git a/app/app.py b/app/app.py index f64a804..0797c0a 100644 --- a/app/app.py +++ b/app/app.py @@ -1,22 +1,25 @@ from flask import Flask, flash, request, redirect, send_from_directory, get_flashed_messages -from werkzeug.utils import secure_filename import os import glob import securecad_parser import datetime from hooks import webhook, alarminator_api, cups_print from pathlib import Path +from flask_basicauth import BasicAuth app = Flask(__name__) app.secret_key = 'super secret key' app.config['SESSION_TYPE'] = 'filesystem' +app.config['BASIC_AUTH_USERNAME'] = 'admin' +app.config['BASIC_AUTH_PASSWORD'] = os.environ.get('BASIC_AUTH_PASSWORD','password') +basic_auth = BasicAuth(app) def wrapHtml(innerHtml): return ''' - Bootstrap demo + JFW Alarm
@@ -62,6 +65,7 @@ def allowed_file(filename:str): @app.route("/") +@basic_auth.required def root(): html = "" file = request.args.get('sendalarm') @@ -84,6 +88,7 @@ def root(): return wrapHtml(html) @app.route('/files', methods=['POST']) +@basic_auth.required def upload_file(): # check if the post request has the file part print(request.files) @@ -102,11 +107,13 @@ def upload_file(): return redirect('/files') @app.route('/files/', methods=['GET']) +@basic_auth.required def download(filename): uploads = alarmsPath() return send_from_directory(uploads, filename, as_attachment=True) @app.route("/files", methods=['GET']) +@basic_auth.required def files(): Path(alarmsPath()).mkdir(parents=True, exist_ok=True) file = request.args.get('del') diff --git a/docker-compose.yaml b/docker-compose.yaml index ff1ad5d..62a7da6 100755 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,9 +2,12 @@ version: "2" services: app: build: ./ - image: gitea.simonzeyer.de/simon/wnd_ils_alarmfax_parser:latest + #image: gitea.simonzeyer.de/simon/wnd_ils_alarmfax_parser:latest restart: always privileged: true + # ports: + # - 631:631 + # - 5000:5000 environment: - username=${username} - password=${password}