fix #1136 smb2 support
This commit is contained in:
parent
3187fcb776
commit
fa55def68a
5 changed files with 23 additions and 15 deletions
|
@ -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);
|
||||
|
|
|
@ -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<String> 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);
|
||||
|
|
|
@ -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<String, String> parameterMap =
|
||||
|
|
|
@ -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<String, String> parameterMap = ParameterUtil.parse(getParameters());
|
||||
return new FormScheme(parameterMap);
|
||||
|
|
|
@ -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 {
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue