fix #2513 use site field

This commit is contained in:
Shinsuke Sugaya 2021-01-04 06:49:43 +09:00
parent fb40f18c9d
commit 2aafb213cf
3 changed files with 25 additions and 0 deletions

View file

@ -472,6 +472,9 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im
// Unix
return abbreviateSite(value);
}
} else if (url.startsWith("smb:") || url.startsWith("smb1:")) {
final String value = url.replaceFirst("^smb.?:/+", StringUtil.EMPTY);
return abbreviateSite("\\\\" + value.replace('/', '\\'));
}
return getSite(url, encoding);

View file

@ -605,6 +605,16 @@ public class ViewHelper {
public Object getSitePath(final Map<String, Object> docMap) {
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final Object siteValue = docMap.get(fessConfig.getIndexFieldSite());
if (siteValue != null) {
final String site = siteValue.toString();
final int size = fessConfig.getResponseMaxSitePathLengthAsInteger();
if (size > -1) {
return StringUtils.abbreviate(site, size);
} else {
return site;
}
}
final Object urlLink = docMap.get(fessConfig.getResponseFieldUrlLink());
if (urlLink != null) {
final String returnUrl;

View file

@ -198,6 +198,18 @@ public class FessFileTransformerTest extends UnitFessTestCase {
url = "file:////server/user";
exp = "\\\\server\\user";
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
url = "smb://server/user";
exp = "\\\\server\\user";
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
url = "smb1://server/user";
exp = "\\\\server\\user";
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
url = "ftp://example.com/file";
exp = "example.com/file";
assertEquals(exp, transformer.getSiteOnFile(url, "UTF-8"));
}
public void test_getSite_ok_len10() {