Ignore:
Timestamp:
02/03/09 16:28:19 (11 years ago)
Author:
pjkersha
Message:

Tested WS-Security SignatureHandler? based on the 4Suite-XML Canonicalizer. - Tested a client connecting to a server using the old dom based implementation of the SignatureHandler?.

File:
1 edited

Legend:

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

    r4907 r5057  
    2727from openid.consumer import discover 
    2828 
     29from ndg.security.server.wsgi import NDGSecurityMiddlewareBase 
     30 
    2931quoteattr = lambda s: '"%s"' % cgi.escape(s, 1) 
    3032 
     
    176178    the AX interface but no AX Response handler has been set""" 
    177179   
    178 class OpenIDProviderMiddleware(object): 
     180class OpenIDProviderMiddleware(NDGSecurityMiddlewareBase): 
    179181    """WSGI Middleware to implement an OpenID Provider 
    180182     
     
    242244        class variable     
    243245        ''' 
     246        self._app = app 
     247        self._environ = {} 
     248        self._start_response = None 
     249        self._pathInfo = None 
     250        self._path = None 
     251        self.mountPath = '/' 
    244252 
    245253        opt = OpenIDProviderMiddleware.defOpt.copy() 
     
    371379                                                self.axResponseHandler) 
    372380         
    373         self.app = app 
    374          
    375381        # Instantiate OpenID consumer store and OpenID consumer.  If you 
    376382        # were connecting to a database, you would create the database 
     
    380386        self.oidserver = server.Server(store, self.urls['url_openidserver']) 
    381387 
    382     @classmethod 
    383     def main_app(cls, global_conf, **app_conf): 
    384         '''Provide Paste main_app function signature for inclusion in Paste ini 
    385         files 
    386         @type global_conf: dict         
    387         @param global_conf: PasteDeploy configuration dictionary 
    388         @type app_conf: dict 
    389         @param app_conf: keyword dictionary - must follow format of defOpt  
    390         class variable'''    
    391          
    392         openIDProviderApp = cls(None, global_conf, **app_conf) 
    393          
    394         # Make an application to handle invalid URLs making use of the  
    395         # rendering object created in the OpenID Provider initialisation 
    396         def app(environ, start_response): 
    397             msg = "Page not found" 
    398             response = openIDProviderApp.render.errorPage(environ,  
    399                                                           start_response,  
    400                                                           msg,  
    401                                                           code=404) 
    402             return response 
    403          
    404         # Update the OpenID Provider object with the new app 
    405         openIDProviderApp.app = app 
    406          
    407         return openIDProviderApp 
     388#    @classmethod 
     389#    def main_app(cls, global_conf, **app_conf): 
     390#        '''Provide Paste main_app function signature for inclusion in Paste ini 
     391#        files 
     392#        @type global_conf: dict         
     393#        @param global_conf: PasteDeploy configuration dictionary 
     394#        @type app_conf: dict 
     395#        @param app_conf: keyword dictionary - must follow format of defOpt  
     396#        class variable'''    
     397#         
     398#        openIDProviderApp = cls(None, global_conf, **app_conf) 
     399#         
     400#        # Make an application to handle invalid URLs making use of the  
     401#        # rendering object created in the OpenID Provider initialisation 
     402#        def app(environ, start_response): 
     403#            msg = "Page not found" 
     404#            response = openIDProviderApp.render.errorPage(environ,  
     405#                                                          start_response,  
     406#                                                          msg,  
     407#                                                          code=404) 
     408#            return response 
     409#         
     410#        # Update the OpenID Provider object with the new app 
     411#        openIDProviderApp.app = app 
     412#         
     413#        return openIDProviderApp 
    408414         
    409415    @classmethod 
     
    462468                            (", ".join(badOptNames))) 
    463469             
    464  
     470    @NDGSecurityMiddlewareBase.initCall 
    465471    def __call__(self, environ, start_response): 
    466472        """Standard WSGI interface.  Intercepts the path if it matches any of  
     
    490496             
    491497            # Disallow identifier and yadis URIs where no ID was specified 
    492             return self.app(environ, start_response) 
     498            return self._app(environ, start_response) 
    493499             
    494500        elif self.path.startswith(self.paths['path_id']) or \ 
     
    517523        else: 
    518524            log.debug("No match for path %s" % self.path) 
    519             return self.app(environ, start_response) 
     525            return self._setResponse(environ, start_response) 
    520526 
    521527 
Note: See TracChangeset for help on using the changeset viewer.