define zom-bi auth module
This commit is contained in:
parent
0632abdba7
commit
b986163d9b
1 changed files with 54 additions and 0 deletions
54
auth/auth.py
Normal file
54
auth/auth.py
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
# imports
|
||||||
|
# http server
|
||||||
|
import http.server
|
||||||
|
import socketserver
|
||||||
|
|
||||||
|
import urllib
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import signal
|
||||||
|
import os
|
||||||
|
from urllib.parse import urlparse, parse_qs
|
||||||
|
|
||||||
|
if os.environ['password']:
|
||||||
|
password = os.environ['password']
|
||||||
|
else:
|
||||||
|
print("missing password environment variable.")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
listenport = 8080
|
||||||
|
|
||||||
|
def sigterm_handler(_signo, _stack_frame):
|
||||||
|
httpd.socket.close()
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
signal.signal(signal.SIGTERM, sigterm_handler)
|
||||||
|
|
||||||
|
def log(text):
|
||||||
|
sys.stdout.write(str(text)+'\n')
|
||||||
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
class handlers(http.server.BaseHTTPRequestHandler):
|
||||||
|
def do_GET(self):
|
||||||
|
# send 200 to every request so auth gets a ok for now.
|
||||||
|
query_components = parse_qs(urlparse(self.path).query)
|
||||||
|
log("Passkey = " + str(query_components['pass'][0]))
|
||||||
|
if query_components['pass'][0] == password:
|
||||||
|
self.send_response(200)
|
||||||
|
else:
|
||||||
|
self.send_response(403)
|
||||||
|
self.send_header('Content-type','text/plain')
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(bytes('ok.', "utf-8"))
|
||||||
|
def do_HEAD(self):
|
||||||
|
self.do_GET()
|
||||||
|
try:
|
||||||
|
socketserver.TCPServer.allow_reuse_address = True
|
||||||
|
httpd = socketserver.TCPServer(("", listenport), handlers)
|
||||||
|
httpd.serve_forever()
|
||||||
|
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
httpd.socket.close()
|
||||||
|
sys.exit(0)
|
Loading…
Reference in a new issue