Changeset 5625 for cowsclient


Ignore:
Timestamp:
18/08/09 12:13:25 (10 years ago)
Author:
domlowe
Message:

reintegrating NDG security into qesdi branch. Updating version no. This revision will now be merged back into the trunk.

Location:
cowsclient/branches/qesdi
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cowsclient/branches/qesdi/cowsclient/controllers/wmsviz.py

    r5624 r5625  
    1010""" 
    1111 
    12 from cowsclient.lib.base import BaseController, g, response, config, request, c, session, render 
    13  
     12 
     13from cowsclient.lib.base import * #BaseController, g, response, config, request, c, session, render etc 
    1414from paste.request import parse_querystring 
    1515#from ows_server.models import Utilities 
     
    2121import urlparse 
    2222from cStringIO import StringIO 
    23  
    24 import copy, logging, Image, ImageChops 
     23try: 
     24    from PIL import Image, ImageChops 
     25except: 
     26    import Image, ImageChops 
    2527log = logging.getLogger(__name__) 
    2628import urllib, urllib2 
     
    6264            
    6365            if self.inputs['REQUEST'] == 'GetWebMapCapabilities': 
    64  
    6566                wmcDoc = GetWebMapCapabilities(self.inputs['ENDPOINT']) 
    6667                 
     
    9899        session['test'] = "test" 
    99100         
    100         if ('ENDPOINT' in self.inputs): 
    101             pass 
     101        #This will ensure that NDG security is triggered if a secured dataset is in Endpoint 
     102        if 'ENDPOINT' in self.inputs: 
    102103            #clear out old endpoints NOTE. this means only one endpoint at a time can be viewed. May want to 
    103104        #rethink this to enable 'shopping cart' type selection. 
    104           
    105 #            self.removeAllViewItems() 
    106              
    107 #            urlstring=str(self.inputs['ENDPOINT']) 
    108 #            req = urllib2.Request(urlstring) 
    109 #            req.add_header('Cookie', request.headers.get('Cookie', '')) 
    110 #            try: 
    111 #                   filehandle = openURL(req) 
    112 #            except urllib2.HTTPError, e: 
    113 #                 
    114 #                log.exception("exception occurred") 
    115 #                 
    116 #                if e.code == 401: 
    117 #                    log.info ('401 unauthorized error in cowsclient') 
    118 #                    return abort(401) #triggers ndg security framework 
    119 #                elif e.code == 403:  #TODO: 403 response is UNTESTED. 
    120 #                    # User is authenticated but doesn't have the required permissions 
    121 #                    # or an error occurred in the authorization process 
    122 #                    # Read response 
    123 #                     
    124 #                    xresponse = e.read() 
    125 #                    # Send response to user 
    126 #                    self.start_response("%d %s" % (e.code, e.msg), e.headers.dict.items()) 
    127 #                    return xresponse 
    128                  
    129 #            for ep in initialSetup: 
    130 #                self.addViewItem(ep['url']) 
     105#        self.removeAllViewItems() 
     106            for endpoint in initialSetup: 
     107                urlstring=endpoint['url']+'?request=GetCapabilities&Service=WMS' 
     108                #urlstring=str(self.inputs['ENDPOINT']) 
     109                req = urllib2.Request(urlstring) 
     110                req.add_header('Cookie', request.headers.get('Cookie', '')) 
     111                try: 
     112                   filehandle = openURL(req) 
     113                   filehandle.close() 
     114                except urllib2.HTTPError, e:             
     115                    log.exception("exception occurred") 
     116                    if e.code == 401: 
     117                        log.info ('401 unauthorized error in cowsclient') 
     118                        return abort(401) #triggers ndg security framework 
     119                    elif e.code == 403:  #TODO: 403 response is UNTESTED. 
     120                        # User is authenticated but doesn't have the required permissions 
     121                        # or an error occurred in the authorization process 
     122                        # Read response                    
     123                        xresponse = e.read() 
     124                        # Send response to user 
     125                        self.start_response("%d %s" % (e.code, e.msg), e.headers.dict.items()) 
     126                        return xresponse 
     127                 
    131128         
    132129        # avoid page crashing if we come here without view items defined 
  • cowsclient/branches/qesdi/setup.py

    r5409 r5625  
    88setup( 
    99    name='cowsclient', 
    10     version="0.1.1",  
     10    version="0.2.1",  
    1111    #description='', 
    1212    #author='', 
Note: See TracChangeset for help on using the changeset viewer.