From: <bra...@us...> - 2011-02-06 15:00:46
|
Revision: 3414 http://archive-access.svn.sourceforge.net/archive-access/?rev=3414&view=rev Author: bradtofel Date: 2011-02-06 15:00:40 +0000 (Sun, 06 Feb 2011) Log Message: ----------- BUGFIX (unreported) now attempts to use Location HTTP header if CDX has empty ("-") redirect URL Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/UrlRedirectNotice.jsp Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/UrlRedirectNotice.jsp =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/UrlRedirectNotice.jsp 2011-02-06 14:59:39 UTC (rev 3413) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/replay/UrlRedirectNotice.jsp 2011-02-06 15:00:40 UTC (rev 3414) @@ -1,5 +1,7 @@ <%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8" %><%@ page import="java.util.Date" +%><%@ page import="java.util.Map" +%><%@ page import="java.util.Iterator" %><%@ page import="java.lang.StringBuffer" %><%@ page import="org.archive.wayback.archivalurl.ArchivalUrlDateRedirectReplayRenderer" %><%@ page import="org.archive.wayback.ResultURIConverter" @@ -7,6 +9,7 @@ %><%@ page import="org.archive.wayback.core.WaybackRequest" %><%@ page import="org.archive.wayback.core.CaptureSearchResult" %><%@ page import="org.archive.wayback.util.StringFormatter" +%><%@ page import="org.archive.wayback.util.url.UrlOperations" %><% UIResults results = UIResults.extractReplay(request); @@ -19,7 +22,21 @@ String targetUrl = cResult.getRedirectUrl(); String captureTS = cResult.getCaptureTimestamp(); Date captureDate = cResult.getCaptureDate(); - +if(targetUrl.equals("-")) { + Map<String,String> headers = results.getResource().getHttpHeaders(); + Iterator<String> headerNameItr = headers.keySet().iterator(); + while(headerNameItr.hasNext()) { + String name = headerNameItr.next(); + if(name.toUpperCase().equals("LOCATION")) { + targetUrl = headers.get(name); + // by the spec, these should be absolute already, but just in case: + targetUrl = UrlOperations.resolveUrl(sourceUrl, targetUrl); + + + } + } +} +// TODO: Handle replay if we still don't have a redirect.. String dateSpec = ArchivalUrlDateRedirectReplayRenderer.makeFlagDateSpec(captureTS, wbr); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |