chiark / gitweb /
ersatz server checks username without case sensitivity
authorMarnanel Thurman <marnanel@thurman.org.uk>
Mon, 20 Dec 2021 00:26:43 +0000 (00:26 +0000)
committerMarnanel Thurman <marnanel@thurman.org.uk>
Mon, 20 Dec 2021 00:26:43 +0000 (00:26 +0000)
fake-dw/fake-dw.py

index 6b574a844da0baa50dda351d19e3cf416a35f10d..7cdbab163da1193b510aae1722459959c34afab2 100644 (file)
@@ -232,19 +232,23 @@ class ErsatzHandler(http.server.BaseHTTPRequestHandler):
         for (field, value, message, failure_template) in checks:
 
             field = bytes(field, encoding='ascii')
-            value = [bytes(value, encoding='ascii')]
 
             if field not in query:
                 print(f'{message}: {field} missing')
                 return failure_template
 
-            elif query[field]!=value:
-                print(f'{message}: got {query[field]}, wanted {value}')
+            received = str(query[field][0],
+                    encoding='ascii')
+
+            if field in [b'user']:
+                received = received.lower()
+
+            if received!=value:
+                print(f'{message}: got {received}, wanted {value}')
                 return failure_template
 
         return 'login-success'
 
-
 class TCPServerWithSettings(socketserver.TCPServer):
 
     def __init__(