Changeset 27987
- Timestamp:
- 2013-08-06T16:41:04+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/URLFilter.java
r27923 r27987 1 1 package org.greenstone.gsdl3.core; 2 2 3 import java.io.File; 3 4 import java.io.IOException; 5 import java.nio.file.Files; 6 import java.nio.file.Paths; 4 7 import java.util.ArrayList; 5 8 import java.util.HashMap; … … 10 13 import javax.servlet.FilterConfig; 11 14 import javax.servlet.ServletException; 15 import javax.servlet.ServletOutputStream; 12 16 import javax.servlet.ServletRequest; 13 17 import javax.servlet.ServletResponse; … … 19 23 import org.greenstone.gsdl3.util.GSXML; 20 24 import org.greenstone.gsdl3.util.UserContext; 25 import org.greenstone.gsdl3.util.XMLConverter; 21 26 import org.w3c.dom.Document; 22 27 import org.w3c.dom.Element; … … 49 54 protected static final String ASSOCIATED_FILE_PATH = "/index/assoc/"; 50 55 protected static final String COLLECTION_FILE_PATH = "/collect/"; 56 protected static final String INTERFACE_PATH = "/interfaces/"; 51 57 52 58 protected static final String SYSTEM_SUBACTION_CONFIGURE = "configure"; … … 73 79 74 80 String url = hRequest.getRequestURI().toString(); 81 System.err.println("URL = " + url); 75 82 76 83 if (isURLRestricted(url)) … … 188 195 if (!found) 189 196 { 197 return; 198 } 199 } 200 } 201 } 202 else if (url.contains(INTERFACE_PATH)) 203 { 204 String fileURL = url.replace(request.getServletContext().getContextPath(), ""); 205 File requestedFile = new File(request.getServletContext().getRealPath(fileURL)); 206 if (!requestedFile.exists()) 207 { 208 int interfaceNameStart = fileURL.indexOf(INTERFACE_PATH) + INTERFACE_PATH.length(); 209 int interfaceNameEnd = fileURL.indexOf("/", interfaceNameStart); 210 String interfaceName = fileURL.substring(interfaceNameStart, interfaceNameEnd); 211 String interfacesDir = fileURL.substring(0, interfaceNameStart); 212 File interfaceConfigFile = new File(request.getServletContext().getRealPath(interfacesDir + interfaceName + "/interfaceConfig.xml")); 213 214 if (interfaceConfigFile.exists()) 215 { 216 XMLConverter xmlC = new XMLConverter(); 217 Document interfaceConfigDoc = xmlC.getDOM(interfaceConfigFile); 218 219 String baseInterface = interfaceConfigDoc.getDocumentElement().getAttribute("baseInterface"); 220 if (baseInterface.length() > 0) 221 { 222 File baseInterfaceFile = new File(request.getServletContext().getRealPath(fileURL.replace("/" + interfaceName + "/", "/" + baseInterface + "/"))); 223 if (baseInterfaceFile.exists()) 224 { 225 ServletOutputStream out = response.getOutputStream(); 226 out.write(Files.readAllBytes(Paths.get(baseInterfaceFile.getAbsolutePath()))); 227 } 190 228 return; 191 229 }
Note:
See TracChangeset
for help on using the changeset viewer.