Changeset 5452


Ignore:
Timestamp:
02/07/09 10:17:17 (11 years ago)
Author:
pjkersha
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid/provider/authninterface/basic.py

    r5280 r5452  
    4242        """ 
    4343        # Test/Admin username/password set from ini/kw args 
    44         userCreds = prop.get('userCreds') 
    45         if userCreds: 
    46             self._userCreds = dict([i.strip().split(':') 
    47                                     for i in userCreds.split(',')]) 
    48         else: 
     44        userCredsField = prop.get('userCreds') 
     45        if not userCredsField: 
    4946            raise AuthNInterfaceConfigError('No "userCreds" config option ' 
    5047                                            "found") 
     48        self._userCreds = {} 
     49        for userEntry in userCredsField.split():  
     50            # Split username, password and OpenID name list   
     51            userCreds = userEntry.strip().split(':') 
    5152             
    52         user2Identifier = prop.get('username2UserIdentifiers') 
    53         if user2Identifier: 
    54             self._username2Identifier = {} 
    55             for i in user2Identifier.split(): 
    56                 username, identifierStr = i.strip().split(':') 
    57                 identifiers = tuple(identifierStr.split(',')) 
    58                 self._username2Identifier[username] = identifiers 
    59         else: 
    60             raise AuthNInterfaceConfigError('No "user2Identifier" config ' 
    61                                             'option found') 
    62          
    63         userCredNames = self._userCreds.keys() 
    64         userCredNames.sort() 
    65         username2IdentifierNames = self._username2Identifier.keys() 
    66         username2IdentifierNames.sort() 
    67         if userCredNames != username2IdentifierNames: 
    68             raise AuthNInterfaceConfigError('Mismatch between usernames in ' 
    69                                             '"userCreds" and ' 
    70                                             '"username2UserIdentifiers" ' 
    71                                             'options')    
     53            # Split OpenID name list 
     54            userCreds[-1] = tuple(userCreds[-1].split(',')) 
     55             
     56            # Convert into a dictionary indexed by username 
     57            userCredsKeys = ('password', 'identifiers') 
     58            self._userCreds[userCreds[0]] = dict(zip(userCredsKeys,  
     59                                                     userCreds[1:]))   
    7260     
    7361    def logon(self, environ, userIdentifier, username, password): 
     
    8775        the given username 
    8876        """ 
    89         if self._userCreds.get(username) != password: 
     77        if self._userCreds.get(username, {}).get('password') != password: 
    9078            raise AuthNInterfaceInvalidCredentials() 
    9179         
    9280        if userIdentifier is not None and \ 
    93            userIdentifier not in self._username2Identifier.get(username): 
     81           userIdentifier not in self._userCreds[username]['identifiers']: 
    9482            raise AuthNInterfaceUsername2IdentifierMismatch() 
    9583 
     
    119107        """ 
    120108        try: 
    121             return self._username2Identifier[username] 
     109            return self._userCreds[username]['identifiers'] 
    122110        except KeyError: 
    123111            raise AuthNInterfaceRetrieveError('No entries for "%s" user' %  
Note: See TracChangeset for help on using the changeset viewer.