diff --git a/pom.xml b/pom.xml index 41880de9c..bcbf64eea 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ 1.1.0-sp9 - 0.7.1 + 0.7.2 0.6.6 3.1.0 2.3.1 diff --git a/src/main/java/org/codelibs/fess/Constants.java b/src/main/java/org/codelibs/fess/Constants.java index a99f6d855..bbd285df5 100644 --- a/src/main/java/org/codelibs/fess/Constants.java +++ b/src/main/java/org/codelibs/fess/Constants.java @@ -358,4 +358,12 @@ public class Constants extends CoreLibConstants { public static final String FESS_CONF_PATH = "fess.conf.path"; public static final TimeZone TIMEZONE_UTC = TimeZone.getTimeZone("UTC"); + + public static final String LDAP_SECURITY_PRINCIPAL = "ldap.security.principal"; + + public static final String LDAP_PROVIDER_URL = "ldap.provider.url"; + + public static final String LDAP_SECURITY_AUTHENTICATION = "ldap.security.authentication"; + + public static final String LDAP_INITIAL_CONTEXT_FACTORY = "ldap.initial.context.factory"; } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java b/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java index 77d920eb4..6a6d48140 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java @@ -160,6 +160,8 @@ public class AdminGeneralAction extends FessAdminAction { updateProperty(Constants.SUGGEST_DOCUMENTS_PROPERTY, form.suggestDocuments != null && Constants.ON.equalsIgnoreCase(form.suggestDocuments) ? Constants.TRUE : Constants.FALSE); updateProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY, form.purgeSuggestSearchLogDay.toString()); + updateProperty(Constants.LDAP_PROVIDER_URL, form.ldapProviderUrl); + updateProperty(Constants.LDAP_SECURITY_PRINCIPAL, form.ldapSecurityPrincipal); crawlerProperties.store(); saveInfo(messages -> messages.addSuccessUpdateCrawlerParams(GLOBAL)); @@ -195,6 +197,8 @@ public class AdminGeneralAction extends FessAdminAction { form.purgeSuggestSearchLogDay = Integer.parseInt(crawlerProperties.getProperty(Constants.PURGE_SUGGEST_SEARCH_LOG_DAY_PROPERTY, Constants.DEFAULT_SUGGEST_PURGE_DAY)); + form.ldapProviderUrl = crawlerProperties.getProperty(Constants.LDAP_PROVIDER_URL, StringUtil.EMPTY); + form.ldapSecurityPrincipal = crawlerProperties.getProperty(Constants.LDAP_SECURITY_PRINCIPAL, StringUtil.EMPTY); } private void updateProperty(final String key, final String value) { diff --git a/src/main/java/org/codelibs/fess/app/web/admin/general/EditForm.java b/src/main/java/org/codelibs/fess/app/web/admin/general/EditForm.java index 3ecb39f33..fa6714ab7 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/general/EditForm.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/general/EditForm.java @@ -116,4 +116,9 @@ public class EditForm implements Serializable { @ValidateTypeFailure public Integer purgeSuggestSearchLogDay; + @Size(max = 1000) + public String ldapProviderUrl; + + @Size(max = 1000) + public String ldapSecurityPrincipal; } diff --git a/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java b/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java index 1ec075040..206939bcf 100644 --- a/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java +++ b/src/main/java/org/codelibs/fess/app/web/base/FessSearchAction.java @@ -193,6 +193,5 @@ public abstract class FessSearchAction extends FessBaseAction { protected HtmlResponse redirectToRoot() { final String contextPath = request.getServletContext().getContextPath(); return newHtmlResponseAsRediect(StringUtil.isBlank(contextPath) ? "/" : contextPath); - } } diff --git a/src/main/java/org/codelibs/fess/app/web/base/login/FessLoginAssist.java b/src/main/java/org/codelibs/fess/app/web/base/login/FessLoginAssist.java index 0635b6678..37cdc8a64 100644 --- a/src/main/java/org/codelibs/fess/app/web/base/login/FessLoginAssist.java +++ b/src/main/java/org/codelibs/fess/app/web/base/login/FessLoginAssist.java @@ -25,6 +25,7 @@ import org.codelibs.fess.es.user.exentity.User; import org.codelibs.fess.exception.UserRoleLoginException; import org.codelibs.fess.mylasta.action.FessUserBean; import org.codelibs.fess.mylasta.direction.FessConfig; +import org.codelibs.fess.util.ComponentUtil; import org.dbflute.optional.OptionalEntity; import org.dbflute.optional.OptionalThing; import org.lastaflute.core.magic.async.AsyncManager; @@ -65,6 +66,15 @@ public class FessLoginAssist extends TypicalLoginAssist 0; } + @Override + public OptionalEntity findLoginUser(String username, String password) { + OptionalEntity ldapUser = ComponentUtil.getLdapManager().login(username, password); + if (ldapUser.isPresent()) { + return ldapUser; + } + return doFindLoginUser(username, encryptPassword(password)); + } + @Override protected OptionalEntity doFindLoginUser(final String username, final String cipheredPassword) { return userBhv.selectEntity(cb -> { diff --git a/src/main/java/org/codelibs/fess/app/web/login/LoginAction.java b/src/main/java/org/codelibs/fess/app/web/login/LoginAction.java index eb4b199e6..52c1f2df4 100644 --- a/src/main/java/org/codelibs/fess/app/web/login/LoginAction.java +++ b/src/main/java/org/codelibs/fess/app/web/login/LoginAction.java @@ -17,6 +17,7 @@ package org.codelibs.fess.app.web.login; import org.codelibs.fess.app.web.admin.dashboard.AdminDashboardAction; import org.codelibs.fess.app.web.base.FessSearchAction; +import org.codelibs.fess.mylasta.action.FessUserBean; import org.lastaflute.web.Execute; import org.lastaflute.web.login.exception.LoginFailureException; import org.lastaflute.web.response.HtmlResponse; @@ -44,10 +45,6 @@ public class LoginAction extends FessSearchAction { return getHtmlResponse().useForm(LoginForm.class); } - private HtmlResponse getHtmlResponse() { - return getUserBean().map(user -> redirect(AdminDashboardAction.class)).orElse(asHtml(path_Login_IndexJsp)); - } - @Execute public HtmlResponse login(final LoginForm form) { validate(form, messages -> {}, () -> { @@ -67,4 +64,15 @@ public class LoginAction extends FessSearchAction { return redirect(getClass()); } + private HtmlResponse getHtmlResponse() { + return getUserBean().map(user -> redirectByUser(user)).orElse(asHtml(path_Login_IndexJsp)); + } + + private HtmlResponse redirectByUser(FessUserBean user) { + if (!user.hasRoles(fessConfig.getAuthenticationAdminRoles().split(","))) { + return redirectToRoot(); + } + return redirect(AdminDashboardAction.class); + } + } \ No newline at end of file diff --git a/src/main/java/org/codelibs/fess/filter/AdLoginInfoFilter.java b/src/main/java/org/codelibs/fess/filter/AdLoginInfoFilter.java index 70de4b6db..7e3729954 100644 --- a/src/main/java/org/codelibs/fess/filter/AdLoginInfoFilter.java +++ b/src/main/java/org/codelibs/fess/filter/AdLoginInfoFilter.java @@ -38,6 +38,7 @@ import org.codelibs.fess.util.ComponentUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +// TODO refactoring public class AdLoginInfoFilter implements Filter { private static final Logger logger = LoggerFactory.getLogger(AdLoginInfoFilter.class); diff --git a/src/main/java/org/codelibs/fess/helper/AdRoleHelper.java b/src/main/java/org/codelibs/fess/helper/AdRoleHelper.java index d49b9af76..ba4debd20 100644 --- a/src/main/java/org/codelibs/fess/helper/AdRoleHelper.java +++ b/src/main/java/org/codelibs/fess/helper/AdRoleHelper.java @@ -31,6 +31,7 @@ import javax.naming.directory.SearchResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +// TODO refactoring public class AdRoleHelper { private static final Logger logger = LoggerFactory.getLogger(AdRoleHelper.class); diff --git a/src/main/java/org/codelibs/fess/ldap/LdapManager.java b/src/main/java/org/codelibs/fess/ldap/LdapManager.java new file mode 100644 index 000000000..fc303f24c --- /dev/null +++ b/src/main/java/org/codelibs/fess/ldap/LdapManager.java @@ -0,0 +1,71 @@ +/* + * Copyright 2012-2015 CodeLibs Project and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package org.codelibs.fess.ldap; + +import java.util.Hashtable; + +import javax.naming.Context; +import javax.naming.NamingException; +import javax.naming.directory.DirContext; +import javax.naming.directory.InitialDirContext; + +import org.codelibs.core.lang.StringUtil; +import org.codelibs.fess.es.user.exentity.User; +import org.codelibs.fess.filter.AdLoginInfoFilter; +import org.codelibs.fess.mylasta.direction.FessConfig; +import org.codelibs.fess.util.ComponentUtil; +import org.dbflute.optional.OptionalEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class LdapManager { + private static final Logger logger = LoggerFactory.getLogger(AdLoginInfoFilter.class); + + public OptionalEntity login(String username, String password) { + FessConfig fessConfig = ComponentUtil.getFessConfig(); + String providerUrl = fessConfig.getLdapProviderUrl(); + + if (StringUtil.isBlank(providerUrl)) { + return OptionalEntity.empty(); + } + + DirContext ctx = null; + try { + Hashtable env = new Hashtable<>(); + env.put(Context.INITIAL_CONTEXT_FACTORY, fessConfig.getLdapInitialContextFactory()); + env.put(Context.SECURITY_AUTHENTICATION, fessConfig.getLdapSecurityAuthentication()); + env.put(Context.PROVIDER_URL, providerUrl); + env.put(Context.SECURITY_PRINCIPAL, fessConfig.getLdapSecurityPrincipal(username)); + env.put(Context.SECURITY_CREDENTIALS, password); + ctx = new InitialDirContext(env); + if (logger.isDebugEnabled()) { + logger.debug("Logged in.", ctx); + } + return OptionalEntity.of(new LdapUser(username)); + } catch (NamingException e) { + logger.warn("Login failed.", e); + } finally { + if (ctx != null) { + try { + ctx.close(); + } catch (NamingException e) { + // ignore + } + } + } + return OptionalEntity.empty(); + } +} diff --git a/src/main/java/org/codelibs/fess/ldap/LdapUser.java b/src/main/java/org/codelibs/fess/ldap/LdapUser.java new file mode 100644 index 000000000..d2cfc74a7 --- /dev/null +++ b/src/main/java/org/codelibs/fess/ldap/LdapUser.java @@ -0,0 +1,28 @@ +/* + * Copyright 2012-2015 CodeLibs Project and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package org.codelibs.fess.ldap; + +import org.codelibs.fess.es.user.exentity.User; + +public class LdapUser extends User { + + private static final long serialVersionUID = 1L; + + public LdapUser(String username) { + setId(username); + } + +} diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java index ccb16b881..3bbd86c0f 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java @@ -197,7 +197,7 @@ public class FessLabels extends ActionMessages { /** The key of the message: Failure Count */ public static final String LABELS_FAILURE_COUNT_THRESHOLD = "{labels.failureCountThreshold}"; - /** The key of the message: FS Config Name */ + /** The key of the message: File System Config Name */ public static final String LABELS_FILE_CONFIG_NAME = "{labels.fileConfigName}"; /** The key of the message: File name */ @@ -425,6 +425,12 @@ public class FessLabels extends ActionMessages { /** The key of the message: Extended Query */ public static final String LABELS_ex_q = "{labels.ex_q}"; + /** The key of the message: LDAP URL */ + public static final String LABELS_LDAP_PROVIDER_URL = "{labels.ldapProviderUrl}"; + + /** The key of the message: LDAP Principal */ + public static final String LABELS_LDAP_SECURITY_PRINCIPAL = "{labels.ldapSecurityPrincipal}"; + /** The key of the message: System */ public static final String LABELS_menu_system = "{labels.menu_system}"; @@ -1307,10 +1313,10 @@ public class FessLabels extends ActionMessages { /** The key of the message: Back */ public static final String LABELS_design_button_back = "{labels.design_button_back}"; - /** The key of the message: Data Crawling */ + /** The key of the message: Data Store Crawling */ public static final String LABELS_data_crawling_configuration = "{labels.data_crawling_configuration}"; - /** The key of the message: Data Crawling Configuration */ + /** The key of the message: Data Store Crawling Configuration */ public static final String LABELS_data_crawling_title_details = "{labels.data_crawling_title_details}"; /** The key of the message: Handler Name */ @@ -1518,7 +1524,7 @@ public class FessLabels extends ActionMessages { /** The key of the message: Parameters */ public static final String LABELS_file_auth_parameters = "{labels.file_auth_parameters}"; - /** The key of the message: FS Config */ + /** The key of the message: File System Config */ public static final String LABELS_file_auth_file_crawling_config = "{labels.file_auth_file_crawling_config}"; /** The key of the message: Samba */ @@ -1974,6 +1980,15 @@ public class FessLabels extends ActionMessages { /** The key of the message: Suggest */ public static final String LABELS_general_menu_suggest = "{labels.general_menu_suggest}"; + /** The key of the message: LDAP */ + public static final String LABELS_general_menu_ldap = "{labels.general_menu_ldap}"; + + /** The key of the message: LDAP URL */ + public static final String LABELS_ldap_provider_url = "{labels.ldap_provider_url}"; + + /** The key of the message: LDAP Principal */ + public static final String LABELS_ldap_security_principal = "{labels.ldap_security_principal}"; + /** The key of the message: Send TestMail */ public static final String LABELS_send_testmail = "{labels.send_testmail}"; diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java index 965abc97a..48bc48c26 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java @@ -174,7 +174,7 @@ public interface FessConfig extends FessEnv { /** The key of the configuration. e.g. 1.3 */ String QUERY_BOOST_CONTENT_LANG = "query.boost.content.lang"; - /** The key of the configuration. e.g. false */ + /** The key of the configuration. e.g. true */ String ACL_AS_ROLE = "acl.as.role"; /** The key of the configuration. e.g. admin */ @@ -775,7 +775,7 @@ public interface FessConfig extends FessEnv { /** * Get the value for the key 'acl.as.role'.
- * The value is, e.g. false
+ * The value is, e.g. true
* comment: acl * @return The value of found property. (NotNull: if not found, exception but basically no way) */ @@ -783,7 +783,7 @@ public interface FessConfig extends FessEnv { /** * Is the property for the key 'acl.as.role' true?
- * The value is, e.g. false
+ * The value is, e.g. true
* comment: acl * @return The determination, true or false. (if not found, exception but basically no way) */ diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessEnv.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessEnv.java index d8080c9d3..72afe36a2 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessEnv.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessEnv.java @@ -21,7 +21,7 @@ import org.lastaflute.core.direction.exception.ConfigPropertyNotFoundException; /** * @author FreeGen */ -public interface FessEnv { +public interface FessEnv extends FessProp { /** The key of the configuration. e.g. hot */ String lasta_di_SMART_DEPLOY_MODE = "lasta_di.smart.deploy.mode"; diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java new file mode 100644 index 000000000..d958d30e4 --- /dev/null +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java @@ -0,0 +1,46 @@ +/* + * Copyright 2012-2015 CodeLibs Project and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package org.codelibs.fess.mylasta.direction; + +import org.codelibs.core.lang.StringUtil; +import org.codelibs.fess.Constants; +import org.codelibs.fess.util.ComponentUtil; + +public interface FessProp { + public default String getProperty(String key) { + return ComponentUtil.getCrawlerProperties().getProperty(key); + } + + public default String getProperty(String key, String defaultValue) { + return ComponentUtil.getCrawlerProperties().getProperty(key, defaultValue); + } + + public default String getLdapInitialContextFactory() { + return getProperty(Constants.LDAP_INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); + } + + public default String getLdapSecurityAuthentication() { + return getProperty(Constants.LDAP_SECURITY_AUTHENTICATION, "simple"); + } + + public default String getLdapProviderUrl() { + return getProperty(Constants.LDAP_PROVIDER_URL); + } + + public default String getLdapSecurityPrincipal(String username) { + return String.format(getProperty(Constants.LDAP_SECURITY_PRINCIPAL, StringUtil.EMPTY), username); + } +} diff --git a/src/main/java/org/codelibs/fess/util/ComponentUtil.java b/src/main/java/org/codelibs/fess/util/ComponentUtil.java index 463f5e216..f92999702 100644 --- a/src/main/java/org/codelibs/fess/util/ComponentUtil.java +++ b/src/main/java/org/codelibs/fess/util/ComponentUtil.java @@ -47,12 +47,15 @@ import org.codelibs.fess.helper.UserInfoHelper; import org.codelibs.fess.helper.ViewHelper; import org.codelibs.fess.indexer.IndexUpdater; import org.codelibs.fess.job.JobExecutor; +import org.codelibs.fess.ldap.LdapManager; import org.codelibs.fess.mylasta.direction.FessConfig; import org.lastaflute.core.message.MessageManager; import org.lastaflute.di.core.SingletonLaContainer; import org.lastaflute.di.core.factory.SingletonLaContainerFactory; public final class ComponentUtil { + private static final String LDAP_MANAGER = "ldapManager"; + private static final String ROLE_QUERY_HELPER = "roleQueryHelper"; private static final String SUGGEST_HELPER = "suggestHelper"; @@ -278,6 +281,10 @@ public final class ComponentUtil { return SingletonLaContainer.getComponent(ROLE_QUERY_HELPER); } + public static LdapManager getLdapManager() { + return SingletonLaContainer.getComponent(LDAP_MANAGER); + } + public static boolean hasQueryHelper() { return SingletonLaContainerFactory.getContainer().hasComponentDef(QUERY_HELPER); } diff --git a/src/main/resources/app.xml b/src/main/resources/app.xml index 17231b67e..52bfaf8e5 100644 --- a/src/main/resources/app.xml +++ b/src/main/resources/app.xml @@ -6,7 +6,7 @@ - + diff --git a/src/main/resources/fess_config.properties b/src/main/resources/fess_config.properties index 820a4ce20..111deca72 100644 --- a/src/main/resources/fess_config.properties +++ b/src/main/resources/fess_config.properties @@ -96,7 +96,7 @@ query.boost.content=1.0 query.boost.content.lang=1.3 # acl -acl.as.role=false +acl.as.role=true # ======================================================================================== # Web diff --git a/src/main/resources/fess_label.properties b/src/main/resources/fess_label.properties index 5d0aa147a..59a3fa4a3 100644 --- a/src/main/resources/fess_label.properties +++ b/src/main/resources/fess_label.properties @@ -55,7 +55,7 @@ labels.errorLog=Error Log labels.errorName=Error Name labels.expiredTime=Expired labels.failureCountThreshold=Failure Count -labels.fileConfigName=FS Config Name +labels.fileConfigName=File System Config Name labels.fileName=File name labels.handlerName=Handler Name labels.handlerParameter=Parameters @@ -133,6 +133,8 @@ labels.term=Term labels.searchParams=Search Parameters labels.fields=Fields labels.ex_q=Extended Query +labels.ldapProviderUrl=LDAP URL +labels.ldapSecurityPrincipal=LDAP Principal labels.menu_system=System labels.menu_wizard=Wizard @@ -431,8 +433,8 @@ labels.design_file_errorBadRequest=Error Page (BadRequest) labels.design_title_edit_content=Edit JSP File labels.design_button_update=Update labels.design_button_back=Back -labels.data_crawling_configuration=Data Crawling -labels.data_crawling_title_details=Data Crawling Configuration +labels.data_crawling_configuration=Data\u3000Store Crawling +labels.data_crawling_title_details=Data\u3000Store Crawling Configuration labels.handler_name=Handler Name labels.handler_parameter=Parameter labels.handler_script=Script @@ -502,7 +504,7 @@ labels.file_auth_scheme=Scheme labels.file_auth_username=Username labels.file_auth_password=Password labels.file_auth_parameters=Parameters -labels.file_auth_file_crawling_config=FS Config +labels.file_auth_file_crawling_config=File System Config labels.file_auth_scheme_samba=Samba labels.pagination_page_guide_msg={0}/{1} ({2} items) labels.list_could_not_find_crud_table=No data. @@ -654,4 +656,7 @@ labels.general_menu_system=System labels.general_menu_crawler=Crawler labels.general_menu_logging=Logging labels.general_menu_suggest=Suggest +labels.general_menu_ldap=LDAP +labels.ldap_provider_url=LDAP URL +labels.ldap_security_principal=LDAP Principal labels.send_testmail=Send TestMail diff --git a/src/main/resources/fess_label_en.properties b/src/main/resources/fess_label_en.properties index bf72ea0d5..59a3fa4a3 100644 --- a/src/main/resources/fess_label_en.properties +++ b/src/main/resources/fess_label_en.properties @@ -55,7 +55,7 @@ labels.errorLog=Error Log labels.errorName=Error Name labels.expiredTime=Expired labels.failureCountThreshold=Failure Count -labels.fileConfigName=FS Config Name +labels.fileConfigName=File System Config Name labels.fileName=File name labels.handlerName=Handler Name labels.handlerParameter=Parameters @@ -133,6 +133,8 @@ labels.term=Term labels.searchParams=Search Parameters labels.fields=Fields labels.ex_q=Extended Query +labels.ldapProviderUrl=LDAP URL +labels.ldapSecurityPrincipal=LDAP Principal labels.menu_system=System labels.menu_wizard=Wizard @@ -431,8 +433,8 @@ labels.design_file_errorBadRequest=Error Page (BadRequest) labels.design_title_edit_content=Edit JSP File labels.design_button_update=Update labels.design_button_back=Back -labels.data_crawling_configuration=Data Crawling -labels.data_crawling_title_details=Data Crawling Configuration +labels.data_crawling_configuration=Data\u3000Store Crawling +labels.data_crawling_title_details=Data\u3000Store Crawling Configuration labels.handler_name=Handler Name labels.handler_parameter=Parameter labels.handler_script=Script @@ -502,7 +504,7 @@ labels.file_auth_scheme=Scheme labels.file_auth_username=Username labels.file_auth_password=Password labels.file_auth_parameters=Parameters -labels.file_auth_file_crawling_config=FS Config +labels.file_auth_file_crawling_config=File System Config labels.file_auth_scheme_samba=Samba labels.pagination_page_guide_msg={0}/{1} ({2} items) labels.list_could_not_find_crud_table=No data. @@ -654,5 +656,7 @@ labels.general_menu_system=System labels.general_menu_crawler=Crawler labels.general_menu_logging=Logging labels.general_menu_suggest=Suggest +labels.general_menu_ldap=LDAP +labels.ldap_provider_url=LDAP URL +labels.ldap_security_principal=LDAP Principal labels.send_testmail=Send TestMail - diff --git a/src/main/resources/fess_label_ja.properties b/src/main/resources/fess_label_ja.properties index 7b60ac8a8..f00bb8f65 100644 --- a/src/main/resources/fess_label_ja.properties +++ b/src/main/resources/fess_label_ja.properties @@ -273,7 +273,7 @@ labels.role_type = \u30ed\u30fc\u30eb labels.label_type = \u30e9\u30d9\u30eb labels.file_crawling_button_create = \u4f5c\u6210 labels.file_crawling_button_create_job = \u65b0\u3057\u3044\u30b8\u30e7\u30d6\u306e\u4f5c\u6210 -labels.web_crawling_configuration = \u30a6\u30a7\u30d6\u30af\u30ed\u30fc\u30ea\u30f3\u30b0 +labels.web_crawling_configuration = \u30a6\u30a7\u30d6\u306e\u30af\u30ed\u30fc\u30eb labels.web_crawling_title_details = \u30a6\u30a7\u30d6\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a labels.included_urls = \u30af\u30ed\u30fc\u30eb\u5bfe\u8c61\u3068\u3059\u308bURL labels.excluded_urls = \u30af\u30ed\u30fc\u30eb\u5bfe\u8c61\u304b\u3089\u9664\u5916\u3059\u308bURL @@ -428,8 +428,8 @@ labels.design_file_errorBadRequest = \u30a8\u30e9\u30fc\u30da\u30fc\u30b8 (BadRe labels.design_title_edit_content = \u30da\u30fc\u30b8\u306e\u7de8\u96c6\u30d5\u30a1\u30a4\u30eb\u306e\u8868\u793a labels.design_button_update = \u66f4\u65b0 labels.design_button_back = \u623b\u308b -labels.data_crawling_configuration = \u30c7\u30fc\u30bf\u306e\u30af\u30ed\u30fc\u30eb -labels.data_crawling_title_details = \u30c7\u30fc\u30bf\u306e\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a +labels.data_crawling_configuration = \u30c7\u30fc\u30bf\u30b9\u30c8\u30a2\u306e\u30af\u30ed\u30fc\u30eb +labels.data_crawling_title_details = \u30c7\u30fc\u30bf\u30b9\u30c8\u30a2\u306e\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a labels.handler_name = \u30cf\u30f3\u30c9\u30e9\u540d labels.handler_parameter = \u30d1\u30e9\u30e1\u30fc\u30bf labels.handler_script = \u30b9\u30af\u30ea\u30d7\u30c8 @@ -487,7 +487,7 @@ labels.file_auth_configuration = \u30d5\u30a1\u30a4\u30eb\u8a8d\u8a3c labels.file_auth_list_hostname = \u30db\u30b9\u30c8\u540d labels.file_auth_list_file_crawling_config = \u8a2d\u5b9a\u540d labels.file_auth_any = \u4efb\u610f -labels.file_auth_create_file_config = \u65b0\u3057\u3044FS\u8a2d\u5b9a\u306e\u4f5c\u6210 +labels.file_auth_create_file_config = \u65b0\u3057\u3044\u30d5\u30a1\u30a4\u30eb\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a\u306e\u4f5c\u6210 labels.file_auth_title_details = \u30d5\u30a1\u30a4\u30eb\u8a8d\u8a3c labels.file_auth_hostname = \u30db\u30b9\u30c8\u540d labels.file_auth_port = \u30dd\u30fc\u30c8 @@ -495,7 +495,7 @@ labels.file_auth_scheme = \u30b9\u30ad\u30fc\u30e0 labels.file_auth_username = \u30e6\u30fc\u30b6\u30fc\u540d labels.file_auth_password = \u30d1\u30b9\u30ef\u30fc\u30c9 labels.file_auth_parameters = \u30d1\u30e9\u30e1\u30fc\u30bf -labels.file_auth_file_crawling_config = FS\u8a2d\u5b9a +labels.file_auth_file_crawling_config = \u30d5\u30a1\u30a4\u30eb\u30af\u30ed\u30fc\u30eb\u8a2d\u5b9a labels.file_auth_scheme_samba = Samba labels.pagination_page_guide_msg = {0}/{1} ({2} \u4ef6) labels.list_could_not_find_crud_table = \u767b\u9332\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 @@ -645,3 +645,8 @@ labels.general_menu_crawler = \u30af\u30ed\u30fc\u30e9 labels.general_menu_logging = \u30ed\u30ae\u30f3\u30b0 labels.general_menu_suggest = \u30b5\u30b8\u30a7\u30b9\u30c8 labels.send_testmail=\u30c6\u30b9\u30c8\u30e1\u30fc\u30eb\u306e\u9001\u4fe1 +labels.ldapProviderUrl=LDAP URL +labels.ldapSecurityPrincipal=LDAP \u30d7\u30ea\u30f3\u30b7\u30d1\u30eb +labels.general_menu_ldap=LDAP +labels.ldap_provider_url=LDAP URL +labels.ldap_security_principal=LDAP \u30d7\u30ea\u30f3\u30b7\u30d1\u30eb diff --git a/src/main/resources/fess_ldap.xml b/src/main/resources/fess_ldap.xml new file mode 100644 index 000000000..a6f04cc32 --- /dev/null +++ b/src/main/resources/fess_ldap.xml @@ -0,0 +1,7 @@ + + + + + + diff --git a/src/main/webapp/WEB-INF/view/admin/general/admin_general.jsp b/src/main/webapp/WEB-INF/view/admin/general/admin_general.jsp index 7a52141b8..d5eea9955 100644 --- a/src/main/webapp/WEB-INF/view/admin/general/admin_general.jsp +++ b/src/main/webapp/WEB-INF/view/admin/general/admin_general.jsp @@ -288,6 +288,28 @@ + <%-- LDAP --%> +

+
+ +
+ + +
+
+
+ +
+ + +
+