Update monitor.py

Add simple web auth
This commit is contained in:
Waldek 2020-02-24 20:26:39 +01:00 committed by GitHub
parent 4bb73fba1f
commit d8dfc01cec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -708,7 +708,25 @@ class web_server(Resource):
isLeaf = True isLeaf = True
def render_GET(self, request): def render_GET(self, request):
logging.info('static website requested: %s', request) logging.info('static website requested: %s', request)
return (index_html).encode('utf-8') if WEB_AUTH:
user = WEB_USER.encode('utf-8')
password = WEB_PASS.encode('utf-8')
auth = request.getHeader('Authorization')
if auth and auth.split(' ')[0] == 'Basic':
decodeddata = base64.b64decode(auth.split(' ')[1])
if decodeddata.split(b':') == [user, password]:
logging.info('Authorization OK')
return (index_html).encode('utf-8')
request.setResponseCode(401)
request.setHeader('WWW-Authenticate', 'Basic realm="realmname"')
logging.info('Someone wanted to get access without authorization')
return "<html<head></hread><body style=\"background-color: #EEEEEE;\"><br><br><br><center> \
<fieldset style=\"width:600px;background-color:#e0e0e0e0;text-algin: center; margin-left:15px;margin-right:15px; \
font-size:14px;border-top-left-radius: 10px; border-top-right-radius: 10px; \
border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;\"> \
<p><font size=5><b>Authorization Required</font></p></filed></center></body></html>".encode('utf-8')
else:
return (index_html).encode('utf-8')
if __name__ == '__main__': if __name__ == '__main__':
logging.basicConfig( logging.basicConfig(