Changeset 25350

Show
Ignore:
Timestamp:
12.04.2012 13:56:09 (7 years ago)
Author:
sjm84
Message:

Several fixes for the URL filter

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/URLFilter.java

    r25309 r25350  
    2828    private FilterConfig _filterConfig = null; 
    2929    private static Logger _logger = Logger.getLogger(org.greenstone.gsdl3.core.URLFilter.class.getName()); 
    30      
     30 
    3131    //Restricted URLs 
    3232    protected static final String SITECONFIG_URL = "sites/[^/]+/siteConfig.xml"; 
     
    5858 
    5959            String url = hRequest.getRequestURI().toString(); 
    60              
    61             if(isURLRestricted(url)) 
     60 
     61            if (isURLRestricted(url)) 
    6262            { 
    6363                response.getWriter().println("Access to this page is forbidden."); 
    6464                return; 
    6565            } 
    66              
     66 
    6767            if (url.contains("/index/assoc/")) 
    6868            { 
     
    135135 
    136136                Element metaResponse = (Element) gsRouter.process(metaMessage); 
    137                 GSXML.printXMLNode(metaResponse, true); 
    138                  
     137 
    139138                NodeList metadataList = metaResponse.getElementsByTagName(GSXML.METADATA_ELEM); 
    140                 if(metadataList.getLength() == 0) 
     139                if (metadataList.getLength() == 0) 
    141140                { 
    142141                    _logger.error("Could not find the document related to this url"); 
     
    144143                else 
    145144                { 
    146                     Element metadata = (Element)metadataList.item(0); 
     145                    Element metadata = (Element) metadataList.item(0); 
    147146                    String document = metadata.getTextContent(); 
    148                      
     147 
    149148                    //Get the security info for this collection 
    150149                    Element securityMessage = gsDoc.createElement(GSXML.MESSAGE_ELEM); 
     
    158157                    Element securityResponse = (Element) GSXML.getChildByTagName(gsRouter.process(securityMessage), GSXML.RESPONSE_ELEM); 
    159158                    ArrayList<String> groups = GSXML.getGroupsFromSecurityResponse(securityResponse); 
    160                      
     159 
    161160                    if (!groups.contains("")) 
    162161                    { 
     
    164163                        for (String group : groups) 
    165164                        { 
    166                             if (((HttpServletRequest)request).isUserInRole(group)) 
     165                            if (((HttpServletRequest) request).isUserInRole(group)) 
    167166                            { 
    168167                                found = true; 
     
    170169                            } 
    171170                        } 
    172                          
    173                         if(!found) 
     171 
     172                        if (!found) 
    174173                        { 
    175174                            return; 
     
    196195                        gRequest.setParameter(GSParams.DOCUMENT, segments[i + 1]); 
    197196 
    198                         additionalParameters = new String[] { GSParams.ACTION, GSParams.DOCUMENT_TYPE, DocumentAction.EXPAND_DOCUMENT_ARG }; 
    199                         defaultParamValues = new String[] { "d", "hierarchy", "1" }; 
     197                        additionalParameters = new String[] { GSParams.ACTION, GSParams.DOCUMENT_TYPE }; 
     198                        defaultParamValues = new String[] { "d", "hierarchy" }; 
    200199                    } 
    201200                    //PAGE 
     
    213212 
    214213                        gRequest.setParameter("s1.authpage", pageName); 
    215                          
     214 
    216215                        additionalParameters = new String[] { GSParams.ACTION, GSParams.REQUEST_TYPE, GSParams.SUBACTION, GSParams.SERVICE }; 
    217216                        defaultParamValues = new String[] { "g", "r", "authen", "Authentication" }; 
     
    306305        } 
    307306    } 
    308      
     307 
    309308    private boolean isURLRestricted(String url) 
    310309    { 
    311         for(String restrictedURL : _restrictedURLs) 
    312         { 
    313             if(url.matches(".*" + restrictedURL + ".*")) 
     310        for (String restrictedURL : _restrictedURLs) 
     311        { 
     312            if (url.matches(".*" + restrictedURL + ".*")) 
    314313            { 
    315314                return true; 
     
    341340        public String getParameter(String paramName) 
    342341        { 
    343             if (_newParams.containsKey(paramName)) 
    344             { 
    345                 return _newParams.get(paramName)[0]; 
     342            if (super.getParameter(paramName) != null) 
     343            { 
     344                return super.getParameter(paramName); 
    346345            } 
    347346            else 
    348347            { 
    349                 return super.getParameter(paramName); 
     348                if (_newParams.get(paramName) != null && _newParams.get(paramName)[0] != null) 
     349                { 
     350                    return _newParams.get(paramName)[0]; 
     351                } 
     352                return null; 
    350353            } 
    351354        } 
     
    353356        public String[] getParameterValues(String paramName) 
    354357        { 
    355             if (_newParams.containsKey(paramName)) 
     358            if (super.getParameterValues(paramName) != null) 
     359            { 
     360                return super.getParameterValues(paramName); 
     361            } 
     362            else 
    356363            { 
    357364                return _newParams.get(paramName); 
    358             } 
    359             else 
    360             { 
    361                 return super.getParameterValues(paramName); 
    362365            } 
    363366        }