From: <bra...@us...> - 2008-12-05 22:13:17
|
Revision: 2643 http://archive-access.svn.sourceforge.net/archive-access/?rev=2643&view=rev Author: bradtofel Date: 2008-12-05 22:13:14 +0000 (Fri, 05 Dec 2008) Log Message: ----------- ACC-35: Now has optional prefix, which via config is defaulted to "X-Archive-Orig-", which is prepended to all original HTTP headers, to clarify what headers are added by Wayback, and what were presented with the original document. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/HttpHeaderProcessor.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/RedirectRewritingHttpHeaderProcessor.java trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/XArchiveHttpHeaderProcessor.java trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/HttpHeaderProcessor.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/HttpHeaderProcessor.java 2008-11-07 22:45:08 UTC (rev 2642) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/HttpHeaderProcessor.java 2008-12-05 22:13:14 UTC (rev 2643) @@ -49,6 +49,10 @@ public final static String HTTP_CONTENT_BASE_HEADER_UP = HTTP_CONTENT_BASE_HEADER.toUpperCase(); + public final static String HTTP_CONTENT_LOCATION_HEADER = "Content-Location"; + public final static String HTTP_CONTENT_LOCATION_HEADER_UP = + HTTP_CONTENT_LOCATION_HEADER.toUpperCase(); + public final static String HTTP_CONTENT_TYPE_HEADER = "Content-Type"; public final static String HTTP_CONTENT_TYPE_HEADER_UP = HTTP_CONTENT_TYPE_HEADER.toUpperCase(); Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/RedirectRewritingHttpHeaderProcessor.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/RedirectRewritingHttpHeaderProcessor.java 2008-11-07 22:45:08 UTC (rev 2642) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/RedirectRewritingHttpHeaderProcessor.java 2008-12-05 22:13:14 UTC (rev 2643) @@ -39,6 +39,18 @@ public class RedirectRewritingHttpHeaderProcessor implements HttpHeaderProcessor { + private static String DEFAULT_PREFIX = null; + private String prefix = DEFAULT_PREFIX; + + public String getPrefix() { + return prefix; + } + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + /* (non-Javadoc) * @see org.archive.wayback.replay.HttpHeaderProcessor#filter(java.util.Map, java.lang.String, java.lang.String, org.archive.wayback.ResultURIConverter, org.archive.wayback.core.CaptureSearchResult) */ @@ -47,9 +59,18 @@ String keyUp = key.toUpperCase(); + // first stick it in as-is, or with prefix, then maybe we'll overwrite + // with the later logic. + if(prefix == null) { + output.put(key, value); + } else { + output.put(prefix + key, value); + } + // rewrite Location header URLs if (keyUp.startsWith(HTTP_LOCATION_HEADER_UP) || - keyUp.startsWith(HTTP_CONTENT_BASE_HEADER_UP)) { + keyUp.startsWith(HTTP_CONTENT_LOCATION_HEADER_UP) || + keyUp.startsWith(HTTP_CONTENT_BASE_HEADER_UP)) { String baseUrl = result.getOriginalUrl(); String cd = result.getCaptureTimestamp(); @@ -57,13 +78,10 @@ String u = UrlOperations.resolveUrl(baseUrl, value); output.put(key, uriConverter.makeReplayURI(cd,u)); -// } else if(keyUp.startsWith(HTTP_CONTENT_TYPE_HEADER_UP)) { -// output.put("X-Wayback-Orig-" + key,value); -// output.put(key,value); - } else { - // others go out as-is: - output.put(key, value); + } else if(keyUp.startsWith(HTTP_CONTENT_TYPE_HEADER_UP)) { + // let's leave this one as-is: + output.put(key,value); } } } Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/XArchiveHttpHeaderProcessor.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/XArchiveHttpHeaderProcessor.java 2008-11-07 22:45:08 UTC (rev 2642) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/replay/XArchiveHttpHeaderProcessor.java 2008-12-05 22:13:14 UTC (rev 2643) @@ -22,13 +22,10 @@ ResultURIConverter uriConverter, CaptureSearchResult result) { String keyUp = key.toUpperCase(); - // rewrite Location header URLs + output.put(prefix + key,value); if (keyUp.startsWith(HTTP_CONTENT_TYPE_HEADER_UP)) { - // let's leave this one alone... seems important. + // add this one as-is, too. output.put(key, value); - } else { - // others go out with prefix: - output.put(prefix + key,value); } } } Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml 2008-11-07 22:45:08 UTC (rev 2642) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml 2008-12-05 22:13:14 UTC (rev 2643) @@ -4,7 +4,9 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - <bean id="archivalurlhttpheaderprocessor" class="org.archive.wayback.replay.RedirectRewritingHttpHeaderProcessor" /> + <bean id="archivalurlhttpheaderprocessor" class="org.archive.wayback.replay.RedirectRewritingHttpHeaderProcessor"> + <property name="prefix" value="X-Archive-Orig-" /> + </bean> <bean id="archivaldateredirectingreplayrenderer" class="org.archive.wayback.replay.DateRedirectReplayRenderer" /> <bean id="archivalcssreplayrenderer" class="org.archive.wayback.archivalurl.ArchivalUrlCSSReplayRenderer"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |