diff --git a/src/main/java/org/codelibs/fess/app/service/PathMappingService.java b/src/main/java/org/codelibs/fess/app/service/PathMappingService.java index f207378c3..c92d37336 100644 --- a/src/main/java/org/codelibs/fess/app/service/PathMappingService.java +++ b/src/main/java/org/codelibs/fess/app/service/PathMappingService.java @@ -27,6 +27,7 @@ import org.codelibs.fess.app.pager.PathMapPager; import org.codelibs.fess.es.config.cbean.PathMappingCB; import org.codelibs.fess.es.config.exbhv.PathMappingBhv; import org.codelibs.fess.es.config.exentity.PathMapping; +import org.codelibs.fess.util.ComponentUtil; import org.dbflute.cbean.result.PagingResultBean; import org.dbflute.optional.OptionalEntity; @@ -63,6 +64,7 @@ public class PathMappingService implements Serializable { op.setRefresh(true); }); + ComponentUtil.getPathMappingHelper().init(); } public void delete(final PathMapping pathMapping) { @@ -71,6 +73,7 @@ public class PathMappingService implements Serializable { op.setRefresh(true); }); + ComponentUtil.getPathMappingHelper().init(); } public List getPathMappingList(final Collection processTypeList) { diff --git a/src/main/java/org/codelibs/fess/app/web/go/GoAction.java b/src/main/java/org/codelibs/fess/app/web/go/GoAction.java index 7e259fda6..fc802c605 100644 --- a/src/main/java/org/codelibs/fess/app/web/go/GoAction.java +++ b/src/main/java/org/codelibs/fess/app/web/go/GoAction.java @@ -20,6 +20,8 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Map; +import javax.annotation.Resource; + import org.codelibs.core.lang.StringUtil; import org.codelibs.core.net.URLUtil; import org.codelibs.fess.Constants; @@ -27,6 +29,7 @@ import org.codelibs.fess.app.web.base.FessSearchAction; import org.codelibs.fess.app.web.error.ErrorAction; import org.codelibs.fess.crawler.util.CharUtil; import org.codelibs.fess.es.log.exentity.ClickLog; +import org.codelibs.fess.helper.PathMappingHelper; import org.codelibs.fess.helper.SearchLogHelper; import org.codelibs.fess.helper.ViewHelper; import org.codelibs.fess.util.ComponentUtil; @@ -47,6 +50,9 @@ public class GoAction extends FessSearchAction { // private static final Logger logger = LoggerFactory.getLogger(GoAction.class); + @Resource + protected PathMappingHelper pathMappingHelper; + // =================================================================================== // Attribute // @@ -126,21 +132,22 @@ public class GoAction extends FessSearchAction { hash = StringUtil.EMPTY; } - if (isFileSystemPath(url)) { + final String targetUrl = pathMappingHelper.replaceUrl(url); + if (isFileSystemPath(targetUrl)) { if (Constants.TRUE.equals(systemProperties.getProperty(Constants.SEARCH_FILE_PROXY_PROPERTY, Constants.TRUE))) { final ViewHelper viewHelper = ComponentUtil.getViewHelper(); try { return viewHelper.asContentResponse(doc); } catch (final Exception e) { logger.debug("Failed to load: " + doc, e); - saveError(messages -> messages.addErrorsNotLoadFromServer(GLOBAL, url)); + saveError(messages -> messages.addErrorsNotLoadFromServer(GLOBAL, targetUrl)); return redirect(ErrorAction.class); } } else { - return HtmlResponse.fromRedirectPathAsIs(url + hash); + return HtmlResponse.fromRedirectPathAsIs(targetUrl + hash); } } else { - return HtmlResponse.fromRedirectPathAsIs(url + hash); + return HtmlResponse.fromRedirectPathAsIs(targetUrl + hash); } }