Changeset 4525


Ignore:
Timestamp:
02/12/08 17:08:08 (11 years ago)
Author:
pjkersha
Message:

Adding OpenIDProviderMiddleware filter to Combined Services unit test code:

  • fixes to OpenIDProviderMiddleware to handle keyword input for __init - RenderingClass? import is currently broken.
Location:
TI12-security/trunk/python
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/ndg.security.server/ndg/security/server/wsgi/openid_provider.py

    r4404 r4525  
    112112            # Update from application config dictionary - filter from using 
    113113            # prefix 
    114             for k,v in app_conf.items(): 
    115                 if k.startswith(prefix): 
    116                     subK = k.replace(prefix, '')                     
    117                     filtK = '_'.join(subK.split('.'))                     
    118                     opt[filtK] = v 
    119                     kw2AppConfOpt[filtK] = k 
     114            opt, kw2AppConfOpt = OpenIDProviderMiddleware._filterOpts( 
     115                                                                app_conf, 
     116                                                                prefix=prefix) 
     117#            for k,v in app_conf.items(): 
     118#                if k.startswith(prefix): 
     119#                    subK = k.replace(prefix, '')                     
     120#                    filtK = '_'.join(subK.split('.'))                     
     121#                    opt[filtK] = v 
     122#                    kw2AppConfOpt[filtK] = k 
    120123                     
    121124            invalidOpt = getInvalidKw(opt) 
    122125            if len(invalidOpt) > 0: 
    123                 raise TypeError("Unexpected app_conf option(s): %s" % \ 
     126                raise TypeError("Unexpected app_conf option(s): %s" %  
    124127                        (", ".join([kw2AppConfOpt[i] for i in invalidOpt]))) 
    125128             
    126             # Convert from string type where required    
    127             opt['charset'] = eval(opt.get('charset', 'None'))      
    128             opt['trace'] = bool(eval(opt.get('trace', 'False')))  
    129               
    130             renderingClassVal = opt.get('renderingClass', None)       
    131             if renderingClassVal: 
    132                 opt['renderingClass'] = eval_import(renderingClassVal) 
    133              
    134             sregResponseHandlerVal = opt.get('sregResponseHandler', None)   
    135             if sregResponseHandlerVal: 
    136                 opt['sregResponseHandler']=eval_import(sregResponseHandlerVal)   
    137             else: 
    138                  opt['sregResponseHandler'] = None 
    139  
    140             axResponseHandlerVal = opt.get('axResponseHandler', None)   
    141             if axResponseHandlerVal: 
    142                 opt['axResponseHandler'] = eval_import(axResponseHandlerVal) 
    143             else: 
    144                 opt['axResponseHandler'] = None 
    145129                           
     130        kw, kw2Orig = OpenIDProviderMiddleware._filterOpts(kw, prefix=prefix) 
    146131        invalidKw = getInvalidKw(kw) 
    147132        if len(invalidKw) > 0: 
    148             raise TypeError("Unexpected keyword(s): %s" % ", ".join(invalidKw)) 
     133            raise TypeError("Unexpected keyword(s): %s" %  
     134                            (", ".join([kw2Orig[i] for i in invalidKw]))) 
    149135         
    150136        # Update options from keywords - matching app_conf ones will be  
    151137        # overwritten 
    152138        opt.update(kw) 
     139         
     140        # Convert from string type where required    
     141        opt['charset'] = opt.get('charset', '') 
     142        opt['trace'] = bool(opt.get('trace', 'False'))  
     143          
     144        renderingClassVal = opt.get('renderingClass', None)       
     145        if renderingClassVal: 
     146            opt['renderingClass'] = eval_import(renderingClassVal) 
     147         
     148        sregResponseHandlerVal = opt.get('sregResponseHandler', None)   
     149        if sregResponseHandlerVal: 
     150            opt['sregResponseHandler']=eval_import(sregResponseHandlerVal)   
     151        else: 
     152             opt['sregResponseHandler'] = None 
     153 
     154        axResponseHandlerVal = opt.get('axResponseHandler', None)   
     155        if axResponseHandlerVal: 
     156            opt['axResponseHandler'] = eval_import(axResponseHandlerVal) 
     157        else: 
     158            opt['axResponseHandler'] = None 
    153159 
    154160        # Paths relative to base URL - Nb. remove trailing '/' 
     
    170176        self.session_middleware = opt['session_middleware'] 
    171177 
    172         if opt['charset'] is None: 
     178        if not opt['charset']: 
    173179            self.charset = '' 
    174180        else: 
     
    208214            log.error("Error instantiating rendering interface...") 
    209215            raise 
     216         
     217        self.__userRoles = instantiateClass(self.__prop['userRolesModName'], 
     218                     self.__prop['userRolesClassName'], 
     219                     moduleFilePath=self.__prop.get('userRolesModFilePath'), 
     220                     objectType=AAUserRoles, 
     221                     classProperties=self.__prop.get('userRolesPropFile')) 
    210222             
    211223        # Callable for setting of Simple Registration attributes in HTTP header 
     
    234246        store = FileOpenIDStore(opt['consumer_store_dirpath']) 
    235247        self.oidserver = server.Server(store, self.urls['url_openidserver']) 
     248 
     249    @staticmethod 
     250    def _filterOpts(opts, prefix=None): 
     251        opt = {} 
     252        optLookBack = {} 
     253        for k,v in opts.items(): 
     254            if k.startswith(prefix): 
     255                subK = k.replace(prefix, '')                     
     256                filtK = '_'.join(subK.split('.'))                     
     257                opt[filtK] = v 
     258                 
     259                # Make a look-up dict to enable look-ups from translated  
     260                # keyword back to it's original form 
     261                optLookBack[filtK] = k 
     262                 
     263        return opt, optLookBack 
    236264 
    237265     
  • TI12-security/trunk/python/ndg.security.test/ndg/security/test/combinedservices/services.ini

    r4522 r4525  
    142142sessionManager.authNService.userPriKeyPwd: testpassword 
    143143 
    144  
    145144[server:main] 
    146145use = egg:Paste#http 
     
    158157           wsseSignatureFilter  
    159158           httpBasicAuthFilter  
     159           OpenIDProviderFilter 
     160           SessionMiddlewareFilter 
    160161           mainApp 
    161162 
     
    274275 
    275276#______________________________________________________________________________ 
     277# OpenID Provider WSGI Settings 
     278[filter:OpenIDProviderFilter] 
     279paste.filter_app_factory=ndg.security.server.wsgi.openid_provider:OpenIDProviderMiddleware 
     280openid_provider.path.openidserver=/openid/openidserver 
     281openid_provider.path.login=/openid/login 
     282openid_provider.path.loginsubmit=/openid/loginsubmit 
     283openid_provider.path.id=/openid/id 
     284openid_provider.path.yadis=/openid/yadis 
     285openid_provider.path.serveryadis=/openid/serveryadis 
     286openid_provider.path.allow=/openid/allow 
     287openid_provider.path.decide=/openid/decide 
     288openid_provider.path.mainpage=/openid 
     289openid_provider.session_middleware=beaker.session  
     290openid_provider.base_url=http://localhost:8000 
     291#openid_provider.consumer_store_dirpath=./ 
     292openid_provider.trace=False 
     293openid_provider.renderingClass=ndg.security.server.pylons.container.lib.openid_provider_util.OpenIDProviderKidRendering 
     294openid_provider.sregResponseHandler=ndg.security.server.pylons.container.lib.openid_provider_util:esgSRegResponseHandler 
     295openid_provider.axResponseHandler=ndg.security.server.pylons.container.lib.openid_provider_util:esgAXResponseHandler 
     296 
     297# Basic authentication for testing/admin - comma delimited list of  
     298# <username>:<password> pairs 
     299openid_provider.usercreds=pjk:test, luca:esgndgtest 
     300 
     301#______________________________________________________________________________ 
     302# Beaker Session Middleware (used by OpenID Provider Filter) 
     303[filter:SessionMiddlewareFilter] 
     304paste.filter_app_factory=beaker.middleware:SessionMiddleware 
     305 
     306#______________________________________________________________________________ 
    276307# Common WS-Security settings for wsseSignatureFilter and  
    277308# wsseSignatureVerificationFilter 
Note: See TracChangeset for help on using the changeset viewer.