Add basic auth.
authorymh <ymh.work@gmail.com>
Fri, 21 Mar 2014 17:30:29 +0100
changeset 273 a8dcacb29110
parent 272 383355e4caba
child 274 8567f3a0b9ce
Add basic auth.
src/egonomy/auth/__init__.py
src/egonomy/auth/backends.py
src/egonomy/auth/middleware.py
src/egonomy/config.py.tmpl
src/egonomy/settings.py
--- a/src/egonomy/auth/__init__.py	Fri Mar 21 16:28:53 2014 +0100
+++ b/src/egonomy/auth/__init__.py	Fri Mar 21 17:30:29 2014 +0100
@@ -2,6 +2,7 @@
 from django.utils.crypto import get_random_string
 
 from egonomy.utils import unix_time, encodeAES, decodeAES
+import requests
 
 
 def get_egonomy_token(request):
@@ -29,3 +30,13 @@
     prefix = settings.EGONOMY_USER_PREFIX
     return (prefix if ( prefix not in username and not is_internal) else "") + username
 
+def get_http_session():
+    
+    s = requests.Session()
+    
+    http_auth = (getattr(settings, 'EGONOMY_HTTP_USER', None), getattr(settings,'EGONOMY_HTTP_PASSWORD', None))
+
+    if http_auth[0] is not None and http_auth[1] is not None:
+        s.auth = http_auth
+    
+    return s
--- a/src/egonomy/auth/backends.py	Fri Mar 21 16:28:53 2014 +0100
+++ b/src/egonomy/auth/backends.py	Fri Mar 21 17:30:29 2014 +0100
@@ -9,9 +9,8 @@
 
 from django.conf import settings
 from django.contrib.auth import get_user_model
-import requests
 
-from egonomy.auth import clean_egonomy_username
+from egonomy.auth import clean_egonomy_username, get_http_session
 
 
 logger = logging.getLogger(__name__)
@@ -31,7 +30,8 @@
             return None
         
         logger.debug("EgonomyBackend.authenticate Calling %s" % login_url)
-        res_login = requests.post(login_url, data={'user_name': username, 'user_password': password, 'login':'true'})
+
+        res_login = get_http_session().post(login_url, data={'user_name': username, 'user_password': password, 'login':'true'})
         
         logger.debug("EgonomyBackend.authenticate Response received %s" % res_login.text)
         
--- a/src/egonomy/auth/middleware.py	Fri Mar 21 16:28:53 2014 +0100
+++ b/src/egonomy/auth/middleware.py	Fri Mar 21 17:30:29 2014 +0100
@@ -10,10 +10,9 @@
 from django.contrib import auth
 from django.contrib.auth import get_user_model
 from django.core.exceptions import ImproperlyConfigured
-import requests
+from django.http.response import HttpResponseBadRequest
 
-from egonomy.auth import clean_egonomy_username
-from django.http.response import HttpResponseBadRequest
+from egonomy.auth import clean_egonomy_username, get_http_session
 
 
 logger = logging.getLogger(__name__) 
@@ -42,7 +41,7 @@
         if not token_check_url:
             return
         
-        res_check = requests.get(token_check_url, params={self.parameter:token})
+        res_check = get_http_session().get(token_check_url, params={self.parameter:token})
         logger.debug("EgonomyUserTokenMiddleware json raw %s" % res_check.text)
         res_json = res_check.json()
         
--- a/src/egonomy/config.py.tmpl	Fri Mar 21 16:28:53 2014 +0100
+++ b/src/egonomy/config.py.tmpl	Fri Mar 21 17:30:29 2014 +0100
@@ -155,7 +155,10 @@
 
 EGONOMY_URL = '#'
 EGONOMY_LOGIN_URL =''
-EGONOMY_SALT_LENGTH = 12
 EGONOMY_TOKEN_NAME = 'egonomytoken'
 EGONOMY_TOKEN_CHECK_URL = ''
 
+EGONOMY_HTTP_USER = None
+EGONOMY_HTTP_PASSWORD = None
+
+
--- a/src/egonomy/settings.py	Fri Mar 21 16:28:53 2014 +0100
+++ b/src/egonomy/settings.py	Fri Mar 21 17:30:29 2014 +0100
@@ -199,6 +199,9 @@
 EGONOMY_TOKEN_NAME = 'egonomytoken'
 EGONOMY_TOKEN_CHECK_URL = ''
 
+EGONOMY_HTTP_USER = None
+EGONOMY_HTTP_PASSWORD = None
+
 EGONOMY_USER_PREFIX = 'egonomy:'
 
 from .config import * #@UnusedWildImport