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