diff --git a/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java b/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java index 3653357b2..1c5e61832 100644 --- a/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java +++ b/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java @@ -52,8 +52,7 @@ import org.codelibs.fess.util.DocumentUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import jcifs.smb.ACE; -import jcifs.smb.SID; +import jcifs.SID; public class FessCrawlerThread extends CrawlerThread { private static final Logger logger = LoggerFactory.getLogger(FessCrawlerThread.class); @@ -91,10 +90,9 @@ public class FessCrawlerThread extends CrawlerThread { return true; } - final ACE[] aces = (ACE[]) responseData.getMetaDataMap().get(SmbClient.SMB_ACCESS_CONTROL_ENTRIES); - if (aces != null) { - for (final ACE item : aces) { - final SID sid = item.getSID(); + final SID[] sids = (SID[]) responseData.getMetaDataMap().get(SmbClient.SMB_ALLOWED_SID_ENTRIES); + if (sids != null) { + for (final SID sid : sids) { final String accountId = sambaHelper.getAccountId(sid); if (accountId != null) { roleTypeList.add(accountId); diff --git a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java index 2744da3c8..ace5bd576 100644 --- a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java +++ b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java @@ -63,8 +63,7 @@ import org.codelibs.fess.util.ComponentUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import jcifs.smb.ACE; -import jcifs.smb.SID; +import jcifs.SID; public abstract class AbstractFessFileTransformer extends AbstractTransformer implements FessTransformer { @@ -448,10 +447,9 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im final List roleTypeList = new ArrayList<>(); if (fessConfig.isSmbRoleFromFile() && responseData.getUrl().startsWith("smb:")) { final SambaHelper sambaHelper = ComponentUtil.getSambaHelper(); - final ACE[] aces = (ACE[]) responseData.getMetaDataMap().get(SmbClient.SMB_ACCESS_CONTROL_ENTRIES); - if (aces != null) { - for (final ACE item : aces) { - final SID sid = item.getSID(); + final SID[] sids = (SID[]) responseData.getMetaDataMap().get(SmbClient.SMB_ALLOWED_SID_ENTRIES); + if (sids != null) { + for (final SID sid : sids) { final String accountId = sambaHelper.getAccountId(sid); if (accountId != null) { roleTypeList.add(accountId); diff --git a/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java b/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java index 2d4f91c91..347d91f24 100644 --- a/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java +++ b/src/main/java/org/codelibs/fess/es/config/exentity/DataConfig.java @@ -21,6 +21,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -330,7 +331,11 @@ public class DataConfig extends BsDataConfig implements CrawlingConfig { } else if (Constants.DIGEST.equals(scheme)) { authScheme = new DigestScheme(); } else if (Constants.NTLM.equals(scheme)) { - authScheme = new NTLMScheme(new JcifsEngine()); + final Properties props = new Properties(); + paramMap.entrySet().stream().filter(e -> e.getKey().startsWith("jcifs.")).forEach(e -> { + props.setProperty(e.getKey(), e.getValue()); + }); + authScheme = new NTLMScheme(new JcifsEngine(props)); } else if (Constants.FORM.equals(scheme)) { final String prefix = CRAWLER_WEB_AUTH + "." + webAuthName + "."; final Map parameterMap = diff --git a/src/main/java/org/codelibs/fess/es/config/exentity/WebAuthentication.java b/src/main/java/org/codelibs/fess/es/config/exentity/WebAuthentication.java index 49eeac021..9cf709904 100644 --- a/src/main/java/org/codelibs/fess/es/config/exentity/WebAuthentication.java +++ b/src/main/java/org/codelibs/fess/es/config/exentity/WebAuthentication.java @@ -16,6 +16,7 @@ package org.codelibs.fess.es.config.exentity; import java.util.Map; +import java.util.Properties; import org.apache.http.auth.AuthScheme; import org.apache.http.auth.AuthScope; @@ -34,6 +35,7 @@ import org.codelibs.fess.crawler.client.http.impl.AuthenticationImpl; import org.codelibs.fess.crawler.client.http.ntlm.JcifsEngine; import org.codelibs.fess.crawler.exception.CrawlerSystemException; import org.codelibs.fess.es.config.bsentity.BsWebAuthentication; +import org.codelibs.fess.es.config.exentity.CrawlingConfig.ConfigName; import org.codelibs.fess.util.ComponentUtil; import org.codelibs.fess.util.ParameterUtil; import org.slf4j.Logger; @@ -61,7 +63,12 @@ public class WebAuthentication extends BsWebAuthentication { } else if (Constants.DIGEST.equals(scheme)) { return new DigestScheme(); } else if (Constants.NTLM.equals(scheme)) { - return new NTLMScheme(new JcifsEngine()); + final Properties props = new Properties(); + webConfig.getConfigParameterMap(ConfigName.CONFIG).entrySet().stream().filter(e -> e.getKey().startsWith("jcifs.")) + .forEach(e -> { + props.setProperty(e.getKey(), e.getValue()); + }); + return new NTLMScheme(new JcifsEngine(props)); } else if (Constants.FORM.equals(scheme)) { final Map parameterMap = ParameterUtil.parse(getParameters()); return new FormScheme(parameterMap); diff --git a/src/main/java/org/codelibs/fess/helper/SambaHelper.java b/src/main/java/org/codelibs/fess/helper/SambaHelper.java index ea022a601..580962aee 100644 --- a/src/main/java/org/codelibs/fess/helper/SambaHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SambaHelper.java @@ -20,7 +20,7 @@ import javax.annotation.PostConstruct; import org.codelibs.fess.mylasta.direction.FessConfig; import org.codelibs.fess.util.ComponentUtil; -import jcifs.smb.SID; +import jcifs.SID; public class SambaHelper {