]> www.vanbest.org Git - motioneye-debian/commitdiff
implemented authentication for remote services
authorCalin Crisan <ccrisan@gmail.com>
Sat, 12 Oct 2013 15:29:18 +0000 (18:29 +0300)
committerCalin Crisan <ccrisan@gmail.com>
Sat, 12 Oct 2013 15:29:18 +0000 (18:29 +0300)
src/handlers.py
src/remote.py

index 51b0bea53b636b98233ba6503d0f7f07e30bd0ab..6b85070ad2d1b9c1ab270e41d3fc17068844c5a8 100644 (file)
@@ -51,11 +51,18 @@ class BaseHandler(RequestHandler):
                 main_config = config.get_main()
                 
                 if user == main_config.get('@admin_username') and pwd == main_config.get('@admin_password'):
+                    logging.debug('authenticated as admin')
+                    
                     return 'admin'
                 
                 elif user == main_config.get('@normal_username') and pwd == main_config.get('@normal_password'):
+                    logging.debug('authenticated as normal user')
+                    
                     return 'normal'
                 
+                else:
+                    logging.error('authentication failed for user %(user)s' % {'user': user})
+                
         except:
             pass
 
index f429648c8774c2b695084e6a09f98a3ec62b2ea5..b885432728a69fe7b82d87a4285f7272a9c2e41e 100644 (file)
@@ -5,7 +5,7 @@ import logging
 from tornado.httpclient import AsyncHTTPClient, HTTPClient, HTTPRequest
 
 
-def _compose_url(host, port, username, password, uri, query=None):
+def _make_request(host, port, username, password, uri, method='GET', data=None, query=None):
     url = '%(scheme)s://%(host)s:%(port)s%(uri)s' % {
             'scheme': 'http',
             'host': host,
@@ -14,8 +14,10 @@ def _compose_url(host, port, username, password, uri, query=None):
     
     if query:
         url += '?' + '='.join(query.items())
+        
+    request = HTTPRequest(url, method, body=data, auth_username=username, auth_password=password)
     
-    return url
+    return request
 
 
 def list_cameras(host, port, username, password, callback):
@@ -23,7 +25,7 @@ def list_cameras(host, port, username, password, callback):
             'host': host,
             'port': port})
     
-    url = _compose_url(host, port, username, password, '/config/list/')
+    request = _make_request(host, port, username, password, '/config/list/')
     
     def on_response(response):
         if response.error:
@@ -48,7 +50,7 @@ def list_cameras(host, port, username, password, callback):
         return callback(response['cameras'])
     
     http_client = AsyncHTTPClient()
-    http_client.fetch(url, on_response)
+    http_client.fetch(request, on_response)
     
 
 def get_config(host, port, username, password, camera_id, callback):
@@ -57,7 +59,7 @@ def get_config(host, port, username, password, camera_id, callback):
             'host': host,
             'port': port})
     
-    url = _compose_url(host, port, username, password, '/config/%(id)s/get/' % {'id': camera_id})
+    request = _make_request(host, port, username, password, '/config/%(id)s/get/' % {'id': camera_id})
     
     def on_response(response):
         if response.error:
@@ -83,7 +85,7 @@ def get_config(host, port, username, password, camera_id, callback):
         callback(response)
     
     http_client = AsyncHTTPClient()
-    http_client.fetch(url, on_response)
+    http_client.fetch(request, on_response)
     
 
 def set_config(host, port, username, password, camera_id, data):
@@ -94,8 +96,7 @@ def set_config(host, port, username, password, camera_id, data):
     
     data = json.dumps(data)
     
-    url = _compose_url(host, port, username, password, '/config/%(id)s/set/' % {'id': camera_id})
-    request = HTTPRequest(url, method='POST', body=data)
+    request = _make_request(host, port, username, password, '/config/%(id)s/set/' % {'id': camera_id}, method='POST', data=data)
     
     try:
         http_client = HTTPClient()
@@ -121,7 +122,7 @@ def set_preview(host, port, username, password, camera_id, controls, callback):
     
     controls = json.dumps(controls)
     
-    url = _compose_url(host, port, username, password, '/config/%(id)s/set_preview/' % {'id': camera_id})
+    request = _make_request(host, port, username, password, '/config/%(id)s/set_preview/' % {'id': camera_id})
 
     def on_response(response):
         if response.error:
@@ -136,7 +137,7 @@ def set_preview(host, port, username, password, camera_id, controls, callback):
         callback('')
 
     http_client = AsyncHTTPClient()
-    http_client.fetch(url, on_response)
+    http_client.fetch(request, on_response)
 
 
 def current_snapshot(host, port, username, password, camera_id, callback):
@@ -145,7 +146,7 @@ def current_snapshot(host, port, username, password, camera_id, callback):
             'host': host,
             'port': port})
     
-    url = _compose_url(host, port, username, password, '/snapshot/%(id)s/current/' % {'id': camera_id})
+    request = _make_request(host, port, username, password, '/snapshot/%(id)s/current/' % {'id': camera_id})
     
     def on_response(response):
         if response.error:
@@ -160,4 +161,4 @@ def current_snapshot(host, port, username, password, camera_id, callback):
         callback(response.body)
     
     http_client = AsyncHTTPClient()
-    http_client.fetch(url, on_response)
+    http_client.fetch(request, on_response)