With a multi-host blog setup, use hostname to determine match instead of URL.
Using the URL is problematic when HTTPS s enabled and originally requesed URL was redirected from http:// to https:// Project: http://git-wip-us.apache.org/repos/asf/roller/repo Commit: http://git-wip-us.apache.org/repos/asf/roller/commit/c6459e5c Tree: http://git-wip-us.apache.org/repos/asf/roller/tree/c6459e5c Diff: http://git-wip-us.apache.org/repos/asf/roller/diff/c6459e5c Branch: refs/heads/bootstrap-ui Commit: c6459e5c707cf4f4903b2b408a6ac3fb8f6b5adc Parents: 7f4ac30 Author: Dave Johnson <[email protected]> Authored: Wed Mar 14 17:09:16 2018 -0400 Committer: Dave Johnson <[email protected]> Committed: Wed Mar 14 17:09:16 2018 -0400 ---------------------------------------------------------------------- .../ui/rendering/WeblogRequestMapper.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/roller/blob/c6459e5c/app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java index cf3ec65..ad8c170 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/WeblogRequestMapper.java @@ -19,6 +19,7 @@ package org.apache.roller.weblogger.ui.rendering; import java.io.IOException; +import java.net.URL; import java.util.Arrays; import java.util.HashSet; import java.util.Set; @@ -133,12 +134,19 @@ public class WeblogRequestMapper implements RequestMapper { return false; } - String weblogAbsoluteURL = - WebloggerConfig.getProperty("weblog.absoluteurl." + weblogHandle); - // If an absolute URL is specified for this weblog, make sure request URL matches - if (weblogAbsoluteURL != null && !request.getRequestURL().toString().startsWith(weblogAbsoluteURL)) { - log.debug("SKIPPED " + weblogHandle); - return false; + // is there a special hostname for the specified hostname? + String multiHostNameURL = WebloggerConfig.getProperty("weblog.absoluteurl." + weblogHandle); + if ( multiHostNameURL != null ) { + + // there is, so check that configured hostname matches the one in the request + URL weblogAbsoluteURL = new URL( multiHostNameURL ); + String headerHost = request.getHeader("Host"); + String configHost = weblogAbsoluteURL.getHost(); + + if (headerHost != null && configHost != null && !headerHost.equals(configHost)) { + log.debug("SKIPPED " + weblogHandle); + return false; + } } log.debug("WEBLOG_URL "+request.getServletPath());
