Changeset 1339


Ignore:
Timestamp:
27/07/06 17:10:35 (13 years ago)
Author:
pjkersha
Message:

Tests/SecurityCGItest.py: unit tests for SecurityCGI module
www/cgi-bin/idp.py and SecurityCGI.py: bug fixes following tests - these now pass the unit tests.

Location:
TI12-security/trunk/python
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/python/NDG/SecurityCGI.py

    r1337 r1339  
    3535# Default style for HTML pages.  This can easily be overriden using keyword 
    3636# settings or overriding methods in a derived class. 
    37 __defStyle = """    <style type=\"text/css\"> 
     37_defStyle = """<style type=\"text/css\"> 
    3838    <!-- 
    3939    .al { 
     
    5151</style>""" 
    5252 
    53    
    54 class _SecurityCGI(cgi.FieldStorage): 
     53 
     54# Nb. Multiple inheritance but should be safe because FieldStorage doesn't 
     55# inherit from anything.  Inheriting from object allows the use of  
     56# property() and super() 
     57class _SecurityCGI(object, cgi.FieldStorage): 
    5558    """CGI Service Provider - Identity Provider interface base class for NDG  
    5659    Security 
     
    9497 
    9598        self._wsDebug = False         
    96         self.acMappingFlag = None 
     99        self.acMappingFlag = self.acAllowMappingWithPrompt 
    97100        self.attCert = None 
    98101                 
     
    126129        if acMappingFlag not in self.acMappingFlags: 
    127130            raise AttributeError, \ 
    128                 "\"%s\" is invalid for acMappingFlag" % \ 
    129                 self.acMappingFlags 
     131                "\"%s\" is invalid for acMappingFlag" % acMappingFlag 
    130132                 
    131133        self.__acMappingFlag = acMappingFlag 
     
    345347 
    346348        self._wsDebug = False         
    347         self.acMappingFlag = None 
    348         self.attCert = None 
    349349                 
    350350        super(self.__class__, self).__init__(**securityCGIKwArgs) 
     
    371371                           trustedHostInfo=None, 
    372372                           scriptName=None, 
    373                            contentTypeHdr=False, 
    374                            htmlTag=False, 
    375                            hdrTag=False, 
    376                            hdrTxt=__defStyle, 
    377                            bodyTag=False, 
    378                            pageTitle=""): 
     373                           contentTypeHdr=True, 
     374                           htmlTag=True, 
     375                           hdrTag=True, 
     376                           hdrTxt=_defStyle, 
     377                           bodyTag=True, 
     378                           pageTitle="Select your home site ..."): 
    379379 
    380380        if trustedHostInfo: 
     
    392392                 
    393393        if htmlTag: 
    394             print "<html>\n" 
     394            print "<html>" 
    395395 
    396396        if hdrTag:             
     
    403403     
    404404        if bodyTag: 
    405             print "<body>\n" 
     405            print "<body>" 
    406406 
    407407        # Form containing droplist for the trusted hosts 
    408         print """ 
    409     <form action="%s" method="POST"> 
     408        print """    <form action="%s" method="POST"> 
    410409    <table bgcolor=#ADD8E6 cellspacing=0 border=0 cellpadding=5> 
    411410    <tbody> 
     
    416415           
    417416        for hostname, info in self.trustedHostInfo.items(): 
    418             print "<option value=\"%s\">%s" % (info['loginURI'], hostname) 
     417            print "          <option value=\"%s\">%s" % \ 
     418                                                (info['loginURI'], hostname) 
    419419                 
    420420        print \ 
     
    430430 
    431431        if bodyTag: 
    432             print "</body>\n" 
     432            print "</body>" 
    433433 
    434434        if htmlTag: 
    435             print "</html>\n" 
     435            print "</html>" 
    436436     
    437437        # end of showHomeSiteSelect() 
     
    442442                          sessCookie, 
    443443                          pageTitle='Credentials Received', 
    444                           hdrTxt=__defStyle, 
    445                           bodyText='NDG Security session cookie set'): 
     444                          hdrTxt=_defStyle, 
     445                          bodyTxt='NDG Security session cookie set'): 
    446446        """Called from _receiveCredsResponse() once a cookie has been created. 
    447447        Makes a page to set the cookie and display to the user that they have 
     
    470470        try: 
    471471            if not self.aaClnt: 
    472                 self.aaClnt = AttAuthorityClient(aaWSDLuri=self.aaWSDLuri, 
     472                self.aaClnt = AttAuthorityClient(aaWSDL=self.aaWSDLuri, 
    473473                            aaPubKeyFilePath=self.aaPubKeyFilePath, 
    474474                            clntPubKeyFilePath=self.clntPubKeyFilePath, 
    475475                            clntPriKeyFilePath=self.clntPriKeyFilePath, 
    476476                            traceFile=self._wsDebug and sys.stderr or None) 
    477              
    478             self.trustedHostInfo = self.aaClnt.getTrustedHostInfo( 
     477 
     478            # Include *this* host as a trusted host 
     479            self.trustedHostInfo = self.aaClnt.getHostInfo(\ 
    479480                                           clntPriKeyPwd=self.clntPriKeyPwd) 
     481             
     482            # Retrieve other info for other trusted hosts 
     483            self.trustedHostInfo.update(self.aaClnt.getTrustedHostInfo(\ 
     484                                           clntPriKeyPwd=self.clntPriKeyPwd)) 
    480485        except Exception, e: 
    481486            raise SecurityCGIError, "Attribute Authority client: %s" % e 
     
    798803        try: 
    799804            if not self.smClnt: 
    800                 self.smClnt = SessionClient(smWSDLuri=self.smWSDLuri, 
     805                self.smClnt = SessionClient(smWSDL=self.smWSDLuri, 
    801806                               smPubKeyFilePath=self.smPubKeyFilePath, 
    802807                               clntPubKeyFilePath=self.clntPubKeyFilePath, 
     
    823828                  htmlTag=True, 
    824829                  pageTitle='', 
    825                   hdrTxt=__defStyle, 
     830                  hdrTxt=_defStyle, 
    826831                  headTag=True, 
    827832                  bodyTag=True, 
     
    835840        if headTag: 
    836841            print """<head> 
    837         <title>%s</title> 
    838         %s 
    839     </head>""" % (pageTitle, hdrTxt) 
     842<title>%s</title> 
     843%s 
     844</head>""" % (pageTitle, hdrTxt) 
    840845     
    841846     
     
    860865     
    861866        # Set authorisation method default 
    862         acMappingFlagChkBox = {}.fromkeys(self.acMappingFlag, '') 
     867        acMappingFlagChkBox = {}.fromkeys(self.acMappingFlags, '') 
    863868     
    864869        if self.acMappingFlag is None: 
  • TI12-security/trunk/python/www/cgi-bin/idp.py

    r1337 r1339  
    3737                    scriptName=os.path.basename(__file__), 
    3838                    smPubKeyFilePath=smPubKeyFilePath, 
    39                     aaPubKeyFilePath=aaPubKeyFilePath, 
    4039                    clntPubKeyFilePath=clntPubKeyFilePath, 
    4140                    clntPriKeyFilePath=clntPriKeyFilePath) 
Note: See TracChangeset for help on using the changeset viewer.