Changeset 32646 for main/trunk
- Timestamp:
- 2018-12-03T13:07:00+13:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/core/URLFilter.java
r30483 r32646 4 4 import java.io.IOException; 5 5 import java.util.ArrayList; 6 import java.util.Arrays; 6 7 import java.util.HashMap; 7 8 import java.util.Map; … … 20 21 21 22 import org.apache.commons.io.FileUtils; 23 import org.apache.commons.lang.StringUtils; 24 22 25 import org.apache.log4j.Logger; 23 26 import org.greenstone.gsdl3.util.GSParams; … … 49 52 protected static final String DOCUMENT_PATH = "document"; 50 53 protected static final String COLLECTION_PATH = "collection"; 54 protected static final String GROUP_PATH = "group"; 51 55 protected static final String PAGE_PATH = "page"; 52 56 protected static final String SYSTEM_PATH = "system"; 57 protected static final String BROWSE_PATH = "browse"; 58 protected static final String SEARCH_PATH = "search"; 53 59 54 60 protected static final String METADATA_RETRIEVAL_SERVICE = "DocumentMetadataRetrieve"; … … 83 89 GSHttpServletRequestWrapper gRequest = new GSHttpServletRequestWrapper(hRequest); 84 90 91 // this is the part before the ? 85 92 String url = hRequest.getRequestURI().toString(); 86 93 … … 235 242 else 236 243 { 244 ArrayList<String> keywords = new ArrayList<String>(); 245 keywords.add(PAGE_PATH); 246 keywords.add(BROWSE_PATH); 247 keywords.add(SEARCH_PATH); 237 248 //If we have a jsessionid on the end of our URL we want to ignore it 238 249 int index; … … 246 257 String[] additionalParameters = null; 247 258 String[] defaultParamValues = null; 248 249 259 //COLLECTION 250 if (segments[i].equals(COLLECTION_PATH) && (i + 1) < segments.length) 251 { 252 gRequest.setParameter(GSParams.COLLECTION, segments[i + 1]); 253 } 260 if (segments[i].equals(COLLECTION_PATH) && (i + 1) < segments.length) { 261 int j=i+1; 262 while(j+1 < segments.length && !keywords.contains(segments[j+1])) { 263 j++; 264 } 265 266 if (j>i+1) { 267 // we had a group part 268 String [] groups = Arrays.copyOfRange(segments, i+1, j); 269 String group = StringUtils.join(groups, "/"); 270 gRequest.setParameter(GSParams.GROUP, group); 271 } 272 gRequest.setParameter(GSParams.COLLECTION, segments[j]); 273 } 274 // GROUP 275 else if(segments[i].equals(GROUP_PATH) && (i + 1) < segments.length) 276 { 277 // assume for now, no other path parts for group links 278 int j= segments.length - 1; 279 String group; 280 if (j==i+1) { 281 group = segments[j]; 282 } else { 283 String [] groups = Arrays.copyOfRange(segments, i+1, j+1); 284 group = StringUtils.join(groups, "/"); 285 } 286 gRequest.setParameter(GSParams.GROUP, group); 287 gRequest.setParameter(GSParams.ACTION, "p"); 288 gRequest.setParameter(GSParams.SUBACTION, "home"); 289 290 } 254 291 //DOCUMENT 255 292 else if (segments[i].equals(DOCUMENT_PATH) && (i + 1) < segments.length) … … 317 354 } 318 355 //BROWSE 319 else if (segments[i].equals( "browse") && (i + 1) < segments.length)356 else if (segments[i].equals(BROWSE_PATH) && (i + 1) < segments.length) 320 357 { 321 358 String cl = ""; … … 361 398 } 362 399 //QUERY 363 else if (segments[i].equals( "search"))400 else if (segments[i].equals(SEARCH_PATH)) 364 401 { 365 402 String serviceName = "";
Note:
See TracChangeset
for help on using the changeset viewer.