Add basic auth.
--- 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