Changeset 1184 for TI03-DataExtractor


Ignore:
Timestamp:
14/06/06 22:43:03 (13 years ago)
Author:
astephen
Message:

Safe version pre-security installation and zsi versioning.

Location:
TI03-DataExtractor/trunk
Files:
3 added
14 edited

Legend:

Unmodified
Added
Removed
  • TI03-DataExtractor/trunk/MANIFEST

    r794 r1184  
    55pydxc/DateTimeManager.py 
    66pydxc/DisplayManager.py 
     7pydxc/NDGSecurityViaCGI.py 
    78pydxc/SecurityViaCGI.py 
    89pydxc/WSCaller.py 
  • TI03-DataExtractor/trunk/authors_notes/NOTES_ON_WHAT_GEOSPLAT_NEEDS_FOR_ZSI.txt

    r1109 r1184  
    1010 
    1111security in client and server, can I just intercept any None returns in _checkSecurity() 
     12 
  • TI03-DataExtractor/trunk/cgi/dxui

    r1160 r1184  
    108108        self.args={}                             
    109109        args=cgi.FieldStorage()  
     110        self.fieldStorage=args 
    110111         
    111112        # Get upload file link 
     
    194195        #print "<P>".join(["%s:%s" % (n,v) for (n,v) in self.args.items()]) 
    195196         
    196                      
    197     def DEPRECATED_determineNumberOfDatasets(self): 
    198         """ 
    199         Returns the number of datasets the user is requesting. 
    200         This affects how the output is produced. 
    201         """ 
    202         ndsetPattern=re.compile(r"^\w+_(\d+)$") 
    203         self.numberOfDatasets=1  # Dummy value for now 
    204          
    205         for key in self.args.keys():  
    206             match=ndsetPattern.match(key) 
    207             if match: 
    208                 dsetNumber=int(match.groups()[0]) 
    209                 if dsetNumber>self.numberOfDatasets: 
    210                     self.numberOfDatasets=dsetNumber 
    211  
    212         if self.args.has_key("numberOfDatasets"): 
    213             try: 
    214                 self.numberOfDatasets=int(self.args["numberOfDatasets"]) 
    215             except: 
    216                 self.numberOfDatasets=int(self.args.getvalue("numberOfDatasets"))        
    217  
    218  
    219     def DEPRECATED_parsePartialDimensionArgs(self): 
    220         """ 
    221         Parses dimension arguments so that they are of the  
    222         correct types to send to the server. 
    223         """                   
    224         # Make a list of all the possible time keys to parse in time args 
    225         allTimeKeys=createTimeKeyList() 
    226                          
    227         timeKeyCount=0     
    228         for key in self.args.keys(): 
    229             if key in allTimeKeys:  
    230                 # Make sure it is an integer  
    231                 try:  
    232                     self.args[key]=int(self.args[key])  
    233                     timeKeyCount=timeKeyCount+1 
    234                 except:  
    235                     pass                     
    236             elif key in HORIZ_KEYS: 
    237                 try: 
    238                     self.args[key]=float(self.args[key]) 
    239                 except: 
    240                     pass 
    241                  
    242         if timeKeyCount>0: 
    243             self._compileDateTimeArgs()              
    244                      
    245  
    246     def DEPRECATED_compileDateTimeArgs(self): 
    247         """ 
    248         Converts a list of arguments for each date and time component 
    249         to a start and end date/time following the xsd:dateTime description. 
    250         """ 
    251         dateTimeString="%.4d-%.2d-%.2dT%.2d:%.2d:%.2d" 
    252         # Build item lists of year, month, day...second for each dataset 
    253         # both start and end date times. 
    254         # Also delete the original component items for clarity. 
    255         for n in range(1, self.numberOfDatasets+1): 
    256             startList=[] 
    257             endList=[] 
    258             for tk in TIME_KEYS: 
    259                 startList.append(self.args["start%s_%s" % (tk, n)]) 
    260                 del self.args["start%s_%s" % (tk, n)] 
    261                 endList.append(self.args["end%s_%s" % (tk, n)])  
    262                 del self.args["end%s_%s" % (tk, n)]              
    263              
    264             self.args["startDateTime_%s" % n]=dateTimeString % tuple(startList) 
    265             self.args["endDateTime_%s" % n]=dateTimeString % tuple(endList) 
    266              
    267197 
    268198    def _destroyUnnecessaryArgs(self): 
     
    279209        call the local implementation of the security. 
    280210        """ 
    281         secChecker=SecurityViaCGI(self.username, self.password, self.secureToken) 
    282          
    283         # Deal with logout 
    284         ############# NOTE - doesn't destroy session server side (yet) 
    285         if self.args.has_key("logout") and self.args["logout"]=="Logout": 
    286             secChecker.logout() 
    287             secCheck="You have been logged out." 
    288         else: 
    289             secCheck=secChecker.validate()           
    290              
    291         if type(secCheck)==type(""): 
    292             # Returned string means error in log in or logged out 
    293             self.loginMessage=secCheck 
    294         else: 
    295             self.loginStatus="in" 
    296             self.loginMessage="" 
    297             (self.secureToken, self.username, self.userRoles)=secCheck     
     211        if SECURITY_MODEL=="basic": 
     212            secChecker=SecurityViaCGI(self.username, self.password, self.secureToken) 
     213         
     214            # Deal with logout 
     215            ############# NOTE - doesn't destroy session server side (yet) 
     216            if self.args.has_key("logout") and self.args["logout"]=="Logout": 
     217                secChecker.logout() 
     218                secCheck="You have been logged out." 
     219            else: 
     220                secCheck=secChecker.validate()       
     221             
     222            if type(secCheck)==type(""): 
     223                # Returned string means error in log in or logged out 
     224                self.loginMessage=secCheck 
     225            else: 
     226                self.loginStatus="in" 
     227                self.loginMessage="" 
     228                (self.secureToken, self.username, self.userRoles)=secCheck 
     229                 
     230        elif SECURITY_MODEL=="ndg": 
     231            from NDGSecurityViaCGI import * 
     232            secChecker=NDGSecurityViaCGI(cookie=self.secureToken, urlArgs=self.fieldStorage) 
     233             
     234             
     235             
     236            # Delete field storage so not visible anywhere 
     237            del self.fieldStorage 
    298238 
    299239                 
     
    396336                self.displayer._displayHTTPHeader()  
    397337                self.displayer._displayHTMLHeader() 
     338                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    398339                self.displayer._displayRequestSummaryTable(createSummaryDict(summaryString)) 
    399340                self.displayer._displayReturnLine(self.sessionID) 
     
    401342                 
    402343            elif action=="saveRequest": 
    403                 dataSubsetSpecifier, self.secureToken=self.server.callServerMethod("getDataSubsetSpecifier", 
     344                x=self.server.callServerMethod("getDataSubsetSpecifier", 
    404345                                                           [self.sessionID, self.secureToken]) 
     346 
     347                #dataSubsetSpecifier, self.secureToken=x                                            
    405348                self.displayer._displayHTTPHeader()  
    406                 self.displayer._displayHTMLHeader()              
     349                print x          
     350                self.displayer._displayHTMLHeader()      
     351                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles))         
    407352                self.displayer._displaySaveRequestOptions(dataSubsetSpecifier, self.sessionID) 
    408353                self.displayer._displayReturnLine(self.sessionID) 
     
    412357                self.displayer._displayHTTPHeader()  
    413358                self.displayer._displayHTMLHeader() 
     359                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    414360                self.displayer._displayUploadRequestOptions(self.sessionID) 
    415361                self.displayer._displayReturnLine(self.sessionID)                 
     
    486432            self.displayer._displayHTTPHeader()  
    487433            self.displayer._displayHTMLHeader() 
     434            if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    488435            self.displayer._displayDatasetSummaryLine(summaryString, optionCategories[0], self.sessionID) 
    489436            self.displayer._displayMainTableHeader(self.sessionID, onSubmit=""" onSubmit='return validateAllTimeSelections()'""") 
    490437            self.displayer._displayDomainOptions(summaryDict, optionCategories, options, optionStrings, self.sessionID) 
    491438            self.displayer._displayMainTableFooter() 
    492          
    493         elif optcat=="horizontalDomain": 
    494             self.displayer._displayHTTPHeader()  
    495             self.displayer._displayHTMLHeader() 
    496             self.displayer._displayDatasetSummaryLine(summaryString, optionCategories[0], self.sessionID) 
    497             self.displayer._displayMainTableHeader(self.sessionID)           
    498             print "<P><B>SPATIAL AND TEMPORAL SELECTION</B><P>"      
    499             self.displayer._displayHorizontalDomainOptions(options) 
    500              
    501             # Now get the vertical domain options 
    502             self.args["optionCategoryRequested"]="verticalDomain"        
    503             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    504                                                                          [self.sessionID, self._packArgsAsList(self.args)]) 
    505             self.displayer._displayVerticalSpatialDomainOptions(options) 
    506  
    507             # Now get the temporal domain options 
    508             self.args["optionCategoryRequested"]="temporalDomain"            
    509             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    510                                                                          [self.sessionID, self._packArgsAsList(self.args)]) 
    511             self.displayer._displayTemporalDomainOptions(options) 
    512  
    513             # Now get the output format options 
    514             self.args["optionCategoryRequested"]="outputFormat"              
    515             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    516                                                                          [self.sessionID, self._packArgsAsList(self.args)])          
    517             self.displayer._displayOutputFormatOptions(options, self.sessionID)     
    518          
    519         # If there are no option categories then the request is likely to be complete 
    520         elif optcat==None: 
    521          
     439                 
     440        elif optcat==None:  
     441            # If there are no option categories then the request is likely to be complete 
    522442            # Display confirmation page if needed 
    523443            if CONFIRMATION_PAGE==1 and not self.args.has_key("confirm"): 
    524444                self.displayer._displayHTTPHeader()  
    525445                self.displayer._displayHTMLHeader() 
     446                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    526447                self.displayer._displayDatasetSummaryLine(summaryString, optionCategories, self.sessionID)           
    527448                self.displayer._displayMainTableHeader(self.sessionID)    
     
    535456                self.displayer._displayHTTPHeader()  
    536457                self.displayer._displayHTMLHeader() 
     458                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    537459                self.displayer._displayProcessingSection(estimatedDuration, estimatedVolume, self.sessionID) 
    538460                pathList, self.secureToken=self.server.callServerMethod("createOutput", [self.sessionID, self.secureToken])[0] 
  • TI03-DataExtractor/trunk/dist/cgi/dxui

    r1160 r1184  
    108108        self.args={}                             
    109109        args=cgi.FieldStorage()  
     110        self.fieldStorage=args 
    110111         
    111112        # Get upload file link 
     
    194195        #print "<P>".join(["%s:%s" % (n,v) for (n,v) in self.args.items()]) 
    195196         
    196                      
    197     def DEPRECATED_determineNumberOfDatasets(self): 
    198         """ 
    199         Returns the number of datasets the user is requesting. 
    200         This affects how the output is produced. 
    201         """ 
    202         ndsetPattern=re.compile(r"^\w+_(\d+)$") 
    203         self.numberOfDatasets=1  # Dummy value for now 
    204          
    205         for key in self.args.keys():  
    206             match=ndsetPattern.match(key) 
    207             if match: 
    208                 dsetNumber=int(match.groups()[0]) 
    209                 if dsetNumber>self.numberOfDatasets: 
    210                     self.numberOfDatasets=dsetNumber 
    211  
    212         if self.args.has_key("numberOfDatasets"): 
    213             try: 
    214                 self.numberOfDatasets=int(self.args["numberOfDatasets"]) 
    215             except: 
    216                 self.numberOfDatasets=int(self.args.getvalue("numberOfDatasets"))        
    217  
    218  
    219     def DEPRECATED_parsePartialDimensionArgs(self): 
    220         """ 
    221         Parses dimension arguments so that they are of the  
    222         correct types to send to the server. 
    223         """                   
    224         # Make a list of all the possible time keys to parse in time args 
    225         allTimeKeys=createTimeKeyList() 
    226                          
    227         timeKeyCount=0     
    228         for key in self.args.keys(): 
    229             if key in allTimeKeys:  
    230                 # Make sure it is an integer  
    231                 try:  
    232                     self.args[key]=int(self.args[key])  
    233                     timeKeyCount=timeKeyCount+1 
    234                 except:  
    235                     pass                     
    236             elif key in HORIZ_KEYS: 
    237                 try: 
    238                     self.args[key]=float(self.args[key]) 
    239                 except: 
    240                     pass 
    241                  
    242         if timeKeyCount>0: 
    243             self._compileDateTimeArgs()              
    244                      
    245  
    246     def DEPRECATED_compileDateTimeArgs(self): 
    247         """ 
    248         Converts a list of arguments for each date and time component 
    249         to a start and end date/time following the xsd:dateTime description. 
    250         """ 
    251         dateTimeString="%.4d-%.2d-%.2dT%.2d:%.2d:%.2d" 
    252         # Build item lists of year, month, day...second for each dataset 
    253         # both start and end date times. 
    254         # Also delete the original component items for clarity. 
    255         for n in range(1, self.numberOfDatasets+1): 
    256             startList=[] 
    257             endList=[] 
    258             for tk in TIME_KEYS: 
    259                 startList.append(self.args["start%s_%s" % (tk, n)]) 
    260                 del self.args["start%s_%s" % (tk, n)] 
    261                 endList.append(self.args["end%s_%s" % (tk, n)])  
    262                 del self.args["end%s_%s" % (tk, n)]              
    263              
    264             self.args["startDateTime_%s" % n]=dateTimeString % tuple(startList) 
    265             self.args["endDateTime_%s" % n]=dateTimeString % tuple(endList) 
    266              
    267197 
    268198    def _destroyUnnecessaryArgs(self): 
     
    279209        call the local implementation of the security. 
    280210        """ 
    281         secChecker=SecurityViaCGI(self.username, self.password, self.secureToken) 
    282          
    283         # Deal with logout 
    284         ############# NOTE - doesn't destroy session server side (yet) 
    285         if self.args.has_key("logout") and self.args["logout"]=="Logout": 
    286             secChecker.logout() 
    287             secCheck="You have been logged out." 
    288         else: 
    289             secCheck=secChecker.validate()           
    290              
    291         if type(secCheck)==type(""): 
    292             # Returned string means error in log in or logged out 
    293             self.loginMessage=secCheck 
    294         else: 
    295             self.loginStatus="in" 
    296             self.loginMessage="" 
    297             (self.secureToken, self.username, self.userRoles)=secCheck     
     211        if SECURITY_MODEL=="basic": 
     212            secChecker=SecurityViaCGI(self.username, self.password, self.secureToken) 
     213         
     214            # Deal with logout 
     215            ############# NOTE - doesn't destroy session server side (yet) 
     216            if self.args.has_key("logout") and self.args["logout"]=="Logout": 
     217                secChecker.logout() 
     218                secCheck="You have been logged out." 
     219            else: 
     220                secCheck=secChecker.validate()       
     221             
     222            if type(secCheck)==type(""): 
     223                # Returned string means error in log in or logged out 
     224                self.loginMessage=secCheck 
     225            else: 
     226                self.loginStatus="in" 
     227                self.loginMessage="" 
     228                (self.secureToken, self.username, self.userRoles)=secCheck 
     229                 
     230        elif SECURITY_MODEL=="ndg": 
     231            from NDGSecurityViaCGI import * 
     232            secChecker=NDGSecurityViaCGI(cookie=self.secureToken, urlArgs=self.fieldStorage) 
     233             
     234             
     235             
     236            # Delete field storage so not visible anywhere 
     237            del self.fieldStorage 
    298238 
    299239                 
     
    396336                self.displayer._displayHTTPHeader()  
    397337                self.displayer._displayHTMLHeader() 
     338                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    398339                self.displayer._displayRequestSummaryTable(createSummaryDict(summaryString)) 
    399340                self.displayer._displayReturnLine(self.sessionID) 
     
    401342                 
    402343            elif action=="saveRequest": 
    403                 dataSubsetSpecifier, self.secureToken=self.server.callServerMethod("getDataSubsetSpecifier", 
     344                x=self.server.callServerMethod("getDataSubsetSpecifier", 
    404345                                                           [self.sessionID, self.secureToken]) 
     346 
     347                #dataSubsetSpecifier, self.secureToken=x                                            
    405348                self.displayer._displayHTTPHeader()  
    406                 self.displayer._displayHTMLHeader()              
     349                print x          
     350                self.displayer._displayHTMLHeader()      
     351                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles))         
    407352                self.displayer._displaySaveRequestOptions(dataSubsetSpecifier, self.sessionID) 
    408353                self.displayer._displayReturnLine(self.sessionID) 
     
    412357                self.displayer._displayHTTPHeader()  
    413358                self.displayer._displayHTMLHeader() 
     359                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    414360                self.displayer._displayUploadRequestOptions(self.sessionID) 
    415361                self.displayer._displayReturnLine(self.sessionID)                 
     
    486432            self.displayer._displayHTTPHeader()  
    487433            self.displayer._displayHTMLHeader() 
     434            if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    488435            self.displayer._displayDatasetSummaryLine(summaryString, optionCategories[0], self.sessionID) 
    489436            self.displayer._displayMainTableHeader(self.sessionID, onSubmit=""" onSubmit='return validateAllTimeSelections()'""") 
    490437            self.displayer._displayDomainOptions(summaryDict, optionCategories, options, optionStrings, self.sessionID) 
    491438            self.displayer._displayMainTableFooter() 
    492          
    493         elif optcat=="horizontalDomain": 
    494             self.displayer._displayHTTPHeader()  
    495             self.displayer._displayHTMLHeader() 
    496             self.displayer._displayDatasetSummaryLine(summaryString, optionCategories[0], self.sessionID) 
    497             self.displayer._displayMainTableHeader(self.sessionID)           
    498             print "<P><B>SPATIAL AND TEMPORAL SELECTION</B><P>"      
    499             self.displayer._displayHorizontalDomainOptions(options) 
    500              
    501             # Now get the vertical domain options 
    502             self.args["optionCategoryRequested"]="verticalDomain"        
    503             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    504                                                                          [self.sessionID, self._packArgsAsList(self.args)]) 
    505             self.displayer._displayVerticalSpatialDomainOptions(options) 
    506  
    507             # Now get the temporal domain options 
    508             self.args["optionCategoryRequested"]="temporalDomain"            
    509             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    510                                                                          [self.sessionID, self._packArgsAsList(self.args)]) 
    511             self.displayer._displayTemporalDomainOptions(options) 
    512  
    513             # Now get the output format options 
    514             self.args["optionCategoryRequested"]="outputFormat"              
    515             (optionCategories, options, optionStrings, secureToken)=self.server.callServerMethod("selectOptions",  
    516                                                                          [self.sessionID, self._packArgsAsList(self.args)])          
    517             self.displayer._displayOutputFormatOptions(options, self.sessionID)     
    518          
    519         # If there are no option categories then the request is likely to be complete 
    520         elif optcat==None: 
    521          
     439                 
     440        elif optcat==None:  
     441            # If there are no option categories then the request is likely to be complete 
    522442            # Display confirmation page if needed 
    523443            if CONFIRMATION_PAGE==1 and not self.args.has_key("confirm"): 
    524444                self.displayer._displayHTTPHeader()  
    525445                self.displayer._displayHTMLHeader() 
     446                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    526447                self.displayer._displayDatasetSummaryLine(summaryString, optionCategories, self.sessionID)           
    527448                self.displayer._displayMainTableHeader(self.sessionID)    
     
    535456                self.displayer._displayHTTPHeader()  
    536457                self.displayer._displayHTMLHeader() 
     458                if RESTRICTED_DATA==1: self.displayer._displayLoginBar(self.username, loginStatus="in", loginMessage="with roles: "+str(self.userRoles)) 
    537459                self.displayer._displayProcessingSection(estimatedDuration, estimatedVolume, self.sessionID) 
    538460                pathList, self.secureToken=self.server.callServerMethod("createOutput", [self.sessionID, self.secureToken])[0] 
  • TI03-DataExtractor/trunk/dxs/bin/DXWSInterface.py

    r1160 r1184  
    331331        return "Could not provide the Request XML string:   "+str(error) 
    332332     
    333     print dataSubsetSpecifierXMLStringprint  
    334     return [[dataSubsetSpecifierXMLString], [secureToken]] 
     333    print "Check the XML:", dataSubsetSpecifierXMLString 
     334    return [dataSubsetSpecifierXMLString, secureToken] 
    335335 
    336336 
  • TI03-DataExtractor/trunk/pydxc/DisplayManager.py

    r1160 r1184  
    226226         
    227227        itemTitle=itemMap[optionCategories[0].split("_")[0]] 
    228         print '<P><B>PLEASE SELECT: %s</B> (<A NAME="selectAll" onclick="selectAllCheckBoxes()">  select all </A> / <A NAME="deSelectAll" onclick="deSelectAllCheckBoxes()">( deselect all </A> )<P>' % itemTitle  
     228        print '<P><B>PLEASE SELECT: %s</B> ( <A NAME="selectAll" onclick="selectAllCheckBoxes()">select all</A> | <A NAME="deSelectAll" onclick="deSelectAllCheckBoxes()">deselect all</A> )<P>' % itemTitle  
    229229         
    230230        # Insert useful select all javascript function for checkboxes 
     
    952952         
    953953        # Allow save of request (XML format) 
    954         print ' | <A HREF="%s?action=saveRequest%s">Save Request (xml)</A>' % (CGI_SCRIPT_URL_PATH, sidString) 
     954        #print ' | <A HREF="%s?action=saveRequest%s">Save Request (xml)</A>' % (CGI_SCRIPT_URL_PATH, sidString) 
    955955         
    956956        # Allow upload of previous request (XML format) 
    957         print ' | <A HREF="%s?action=uploadRequest%s">Upload Request (xml)</A>' % (CGI_SCRIPT_URL_PATH, sidString) 
     957        #print ' | <A HREF="%s?action=uploadRequest%s">Upload Request (xml)</A>' % (CGI_SCRIPT_URL_PATH, sidString) 
    958958         
    959959        # Close actions bar form 
  • TI03-DataExtractor/trunk/pydxc/SecurityViaCGI.py

    r794 r1184  
    3636        self.username=username 
    3737        self.password=password 
     38        # Note secureToken is not used by browser client which gets input from  
     39        # os.environ["HTTP_COOKIE"] 
    3840        self.secureToken=secureToken 
    3941 
     
    4547        # First check if the user is valid via a cookie 
    4648        cookieCheck=self._checkCookie() 
    47 #       o=open('/tmp/tmp/cook.txt','w'); o.write(str(cookieCheck)) ; o.close() 
     49        #o=open('/tmp/tmp/cook.txt','w'); o.write(str(cookieCheck)) ; o.close() 
    4850 
    4951        if type(cookieCheck)==type(""): 
     
    7981            return "Username '%s' unknown." % self.username 
    8082 
     83    def dummy(self): 
     84        c=Cookie.SimpleCookie() 
     85        c["DX"]="somethingOrother" 
     86        c["DX"]["domain"]="localhost" 
     87        c["DX"]["path"]="/" 
     88        print c 
     89 
    8190    def _createCookie(self, username, userRoles, expiryTime=None): 
    8291        """ 
    8392        Writes a cookie to the user's browser cookie cache. 
    8493        """ 
     94        self.dummy() 
    8595        # NOTE: This should be brought up to date with W3C spec on Cookies 
    86         cookieString="%s:%s:%s" % (username, string.join(userRoles, ","), time.time()+TOKEN_VALID_LIFETIME) 
     96        endTime=time.time()+TOKEN_VALID_LIFETIME 
     97        endTimeString=time.strftime("%d/%m/%y %H:%M%S", time.localtime(endTime)) 
     98        cookieString="%s:%s:%s" % (username, string.join(userRoles, ","), endTime) 
    8799        cookieMaker=Cookie.SimpleCookie() 
    88100        cookieMaker[COOKIE_NAME]=cookieString 
    89         cookieMaker[COOKIE_NAME]["domain"]=TOKEN_DOMAIN 
     101        #cookieMaker[COOKIE_NAME]["domain"]=TOKEN_DOMAIN 
     102        cookieMaker[COOKIE_NAME]["path"]="/" 
    90103 
    91104        # Use expiry time of zero to delete a cookie, or other time if used 
    92105        if expiryTime!=None: 
    93             cookieMaker[COOKIE_NAME]["expires"]=expiryTime 
     106            expiryTime=endTimeString 
     107                 
     108        cookieMaker[COOKIE_NAME]["expires"]=expiryTime 
    94109 
    95110        # Set the cookie 
    96111        print cookieMaker 
    97         #o=open('/tmp/tmp/out.txt', 'w'); o.write("%s" % cookieString) ; o.close() 
     112        #o=open('/tmp/tmp/out.txt', 'w'); o.write("%s" % (cookieString+"\n"+TOKEN_DOMAIN)) ; o.close() 
    98113         
    99114        return cookieString 
     
    142157        if not os.environ.has_key("HTTP_COOKIE"): 
    143158            cookieString=None 
     159            #out=open("/tmp/tmp/iscookie.txt","w");out.write("%s" % cookieString); out.close() 
    144160        else: 
    145161            cookieReader.load(os.environ["HTTP_COOKIE"]) 
  • TI03-DataExtractor/trunk/pydxc/clientConfig.py

    r1153 r1184  
    3131CALL_METHOD="WS" 
    3232 
     33# SECURITY_MODEL: 
     34# The name of the security model being used. The standard  
     35# ***and insecure (until you have implemented your local hooks)*** 
     36# version is "basic". NERC DataGrid is "ndg". 
     37SECURITY_MODEL="basic" 
     38 
    3339# RESTRICTED_DATA:  
    3440# Do you want security on (1) or off (0)? 
     
    3642# dx, just a set of hooks under which your security system 
    3743# can be called. 
    38 RESTRICTED_DATA=0 
     44RESTRICTED_DATA=1 
    3945 
    4046# PACKAGE_NAME: 
  • TI03-DataExtractor/trunk/pydxs/serverConfig.py

    r1153 r1184  
    3838# ***and insecure (until you have implemented your local hooks)*** 
    3939# version is "basic". NERC DataGrid is "ndg". 
    40 SECURITY_MODEL="ndg" 
     40SECURITY_MODEL="basic" 
    4141 
    4242# PACKAGE_NAME: 
Note: See TracChangeset for help on using the changeset viewer.