Ignore:
Timestamp:
24/10/08 13:24:37 (11 years ago)
Author:
pjkersha
Message:

ndg.security.common.wssecurity.__init: fix for reading parameters with prefix set.

File:
1 edited

Legend:

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

    r4171 r4358  
    386386                           [('Content-type', 'text/html'), 
    387387                            ('Content-length', str(len(response)))]) 
    388             return response 
    389388         
    390389        if 'Yes' in self.query: 
     
    399398                self.session.save() 
    400399              
    401             oidResponse = self._identityApproved(oidRequest, identity) 
     400            try: 
     401                oidResponse = self._identityApproved(oidRequest, identity) 
     402            except Exception, e: 
     403                log.error("Setting response following ID Approval: %s" % e) 
     404                response = self._renderer.renderErrorPage(environ,  
     405                    'Error setting response.  Please report the error to your ' 
     406                    'site administrator.') 
     407                start_response("500 Internal Server Error",  
     408                               [('Content-type', 'text/html'), 
     409                                ('Content-length', str(len(response)))]) 
     410                return response 
     411                           
    402412            response = self._displayResponse(oidResponse) 
    403413         
     
    420430                           [('Content-type', 'text/html'), 
    421431                            ('Content-length', str(len(response)))]) 
    422             return response 
    423 #            raise OpenIDProviderMiddlewareError('Expecting yes/no in allow ' 
    424 #                                                'post.  %r' % self.query) 
    425  
     432         
    426433        return response 
    427434 
     
    498505                        msg = "<p>Invalid username/password entered.  " + \ 
    499506                            "Please try again or if the problems persists " + \ 
    500                             "contact your system administrator</p>" 
     507                            "contact your system administrator.</p>" 
    501508                        response = self._renderer.renderLogin(environ,  
    502509                                          msg=msg, 
     
    568575        if oidRequest.trust_root in approvedRoots and \ 
    569576           not oidRequest.idSelect(): 
    570             response = self._identityApproved(oidRequest, oidRequest.identity) 
     577            try: 
     578                response = self._identityApproved(oidRequest,  
     579                                                  oidRequest.identity) 
     580            except Exception, e: 
     581                log.error("Setting response following ID Approval: %s" % e) 
     582                response = self._renderer.renderErrorPage(environ,  
     583                    'Error setting response.  Please report the error to your ' 
     584                    'site administrator.') 
     585                 
     586                start_response("500 Internal Server Error",  
     587                               [('Content-type', 'text/html'), 
     588                                ('Content-length', str(len(response)))]) 
     589                return response 
     590 
    571591            return self._displayResponse(response) 
    572592        else: 
     
    666686            requiredAttr = ax_req.getRequiredAttrs() 
    667687            if len(requiredAttr) > 0: 
    668                 log.error("Relying party requires these attributes: %s; but no" 
    669                           "Attribute exchange handler 'axResponseHandler' has " 
    670                           "been set" % requiredAttr) 
     688                msg = ("Relying party requires these attributes: %s; but no" 
     689                        "Attribute exchange handler 'axResponseHandler' has " 
     690                        "been set" % requiredAttr) 
     691                log.error(msg) 
     692                raise OpenIDProviderConfigError(msg) 
     693             
    671694            return 
    672695         
     
    674697        # release of attributes + assignment based on required attributes -  
    675698        # possibly via FetchRequest.getRequiredAttrs() 
    676         self.axResponseHandler(ax_req, ax_resp, self.session.get('username')) 
     699        try: 
     700            self.axResponseHandler(ax_req, ax_resp,  
     701                                   self.session.get('username')) 
     702        except Exception, e: 
     703            log.error("%s exception raised setting requested Attribute " 
     704                      "Exchange values: %s" % (e.__class__, e)) 
     705            raise 
    677706         
    678707        oidResponse.addExtension(ax_resp) 
     
    725754            elif self._trustRootIsAuthorized(oidRequest.trust_root): 
    726755                # User has approved this Relying Party 
    727                 oidResponse = self._identityApproved(oidRequest) 
     756                try: 
     757                    oidResponse = self._identityApproved(oidRequest) 
     758                except Exception, e: 
     759                    log.error("Setting response following ID Approval: %s" % e) 
     760                    response = self._renderer.renderErrorPage(environ,  
     761                        'Error setting response.  Please report the error to ' 
     762                        'your site administrator.') 
     763                    start_response("500 Internal Server Error",  
     764                                   [('Content-type', 'text/html'), 
     765                                    ('Content-length', str(len(response)))]) 
     766                    return response 
     767                 
    728768                return self._displayResponse(oidResponse) 
    729769            else: 
     
    769809        # If the content length exceeds the maximum to represent on a URL, it's 
    770810        # rendered as a form instead 
    771         if oidResponse.renderAsForm(): 
     811        # FIXME: Commented out oidResponse.renderAsForm() test as it doesn't  
     812        # give consistent answers.  Testing based on body content should work 
     813        # OK 
     814        if webresponse.body: 
     815        #if oidResponse.renderAsForm(): 
    772816            # Wrap in HTML with Javascript OnLoad to submit the form 
    773817            # automatically without user intervention 
Note: See TracChangeset for help on using the changeset viewer.