[Checkins] SVN: PluggableAuthService/trunk/ Made the DomainAuthHelper return the remote address, even it the remote host

Tres Seaver tseaver at palladion.com
Fri Oct 20 17:27:21 EDT 2006


Log message for revision 70858:
  Made the DomainAuthHelper return the remote address, even it the remote host
  is not available (http://www.zope.org/Collectors/PAS/49).
  
  Fixed testing bug (FauxRequest needs a 'form' attribute now).
  
  

Changed:
  U   PluggableAuthService/trunk/doc/CHANGES.txt
  U   PluggableAuthService/trunk/plugins/DomainAuthHelper.py
  U   PluggableAuthService/trunk/plugins/tests/test_CookieAuthHelper.py
  U   PluggableAuthService/trunk/plugins/tests/test_DomainAuthHelper.py
  U   PluggableAuthService/trunk/tests/test_PluggableAuthService.py

-=-
Modified: PluggableAuthService/trunk/doc/CHANGES.txt
===================================================================
--- PluggableAuthService/trunk/doc/CHANGES.txt	2006-10-20 21:19:11 UTC (rev 70857)
+++ PluggableAuthService/trunk/doc/CHANGES.txt	2006-10-20 21:27:21 UTC (rev 70858)
@@ -10,6 +10,9 @@
 
     Bugs Fixed
 
+      - Made the DomainAuthHelper return the remote address, even it the
+        remote host is not available (http://www.zope.org/Collectors/PAS/49).
+
       - Fixed bug in DelegatingMultiPlugin which attempted to validated the
         supplied password directly against the user password - updated to use
         AuthEncoding.pw_validate to handle encoding issues

Modified: PluggableAuthService/trunk/plugins/DomainAuthHelper.py
===================================================================
--- PluggableAuthService/trunk/plugins/DomainAuthHelper.py	2006-10-20 21:19:11 UTC (rev 70857)
+++ PluggableAuthService/trunk/plugins/DomainAuthHelper.py	2006-10-20 21:27:21 UTC (rev 70858)
@@ -105,11 +105,15 @@
         if remote_host:
             creds['remote_host'] = request.get('REMOTE_HOST', '')
 
-            try:
-                creds['remote_address'] = request.getClientAddr()
-            except AttributeError:
-                creds['remote_address'] = request.get('REMOTE_ADDR', '')
+        try:
+            remote_address = request.getClientAddr()
+        except AttributeError:
+            remote_address = request.get('REMOTE_ADDR', '')
 
+        if remote_host or remote_address:
+            creds['remote_host'] = remote_host
+            creds['remote_address'] = remote_address
+
         return creds
 
     security.declarePrivate('authenticateCredentials')

Modified: PluggableAuthService/trunk/plugins/tests/test_CookieAuthHelper.py
===================================================================
--- PluggableAuthService/trunk/plugins/tests/test_CookieAuthHelper.py	2006-10-20 21:19:11 UTC (rev 70857)
+++ PluggableAuthService/trunk/plugins/tests/test_CookieAuthHelper.py	2006-10-20 21:27:21 UTC (rev 70858)
@@ -145,7 +145,7 @@
                                      , __ac_password='bar'
                                      , RESPONSE=response
                                      )
-        request.form = {'came_from':''}
+        request.form['came_from'] = ''
         helper.REQUEST = request
 
         helper.login()

Modified: PluggableAuthService/trunk/plugins/tests/test_DomainAuthHelper.py
===================================================================
--- PluggableAuthService/trunk/plugins/tests/test_DomainAuthHelper.py	2006-10-20 21:19:11 UTC (rev 70857)
+++ PluggableAuthService/trunk/plugins/tests/test_DomainAuthHelper.py	2006-10-20 21:27:21 UTC (rev 70858)
@@ -78,6 +78,24 @@
                         {'remote_host': 'foo',
                          'remote_address': 'bam'})
 
+    def test_extractCredentials_with_getClientAddr_no_REMOTE_HSOT( self ):
+
+        helper = self._makeOne()
+        request = FauxRequestWithClientAddr(CLIENT_ADDR='bar')
+
+        self.assertEqual(helper.extractCredentials(request),
+                        {'remote_host': '',
+                         'remote_address': 'bar'})
+
+    def test_extractCredentials_with_REMOTE_ADDR_no_REMOTE_HOST( self ):
+
+        helper = self._makeOne()
+        request = FauxRequest(REMOTE_ADDR='bam')
+
+        self.assertEqual(helper.extractCredentials(request),
+                        {'remote_host': '',
+                         'remote_address': 'bam'})
+
     def test_extractCredentials_no_getClientAddr_no_REMOTE_ADDR( self ):
 
         helper = self._makeOne()

Modified: PluggableAuthService/trunk/tests/test_PluggableAuthService.py
===================================================================
--- PluggableAuthService/trunk/tests/test_PluggableAuthService.py	2006-10-20 21:19:11 UTC (rev 70857)
+++ PluggableAuthService/trunk/tests/test_PluggableAuthService.py	2006-10-20 21:27:21 UTC (rev 70858)
@@ -170,6 +170,8 @@
 
 class FauxRequest( object ):
 
+    form = property(lambda self: self)
+
     def __init__( self, steps=(), **kw ):
 
         self.steps = steps



More information about the Checkins mailing list