diff --git a/pom.xml b/pom.xml
index 6782cc6d6a402df0165ec353eaa4bf8d3c58718c..dccb3a6e90cdda35a1e8f00fd59e42c2cbbd7530 100644
--- a/pom.xml
+++ b/pom.xml
@@ -391,6 +391,9 @@
 						<passphrase>${gpg.passphrase}</passphrase>
 					</keyPassphrase>
 					-->
+					<requires>
+						<require>elasticsearch &gt;= ${elasticsearch.version}</require>
+					</requires>
 					<mappings>
 						<!-- fess home -->
 						<mapping>
@@ -486,7 +489,7 @@
 						</mapping>
 						<!-- Add environment vars file -->
 						<mapping>
-							<directory>/etc/sysconfig/</directory>
+							<directory>/etc/sysconfig</directory>
 							<directoryIncluded>false</directoryIncluded>
 							<username>root</username>
 							<groupname>root</groupname>
diff --git a/src/main/java/org/codelibs/fess/Constants.java b/src/main/java/org/codelibs/fess/Constants.java
index 1538fd6be7416bd4cc3a886b0b0428eaf4a77482..c11958daeb5f73a373ebb207433252e35748bd33 100644
--- a/src/main/java/org/codelibs/fess/Constants.java
+++ b/src/main/java/org/codelibs/fess/Constants.java
@@ -353,4 +353,6 @@ public class Constants extends CoreLibConstants {
     public static final String DEFAULT_FIELD = "_default";
 
     public static final Integer DEFAULT_DAY_FOR_CLEANUP = 3;
+
+    public static final String FESS_CONF_PATH = "fess.conf.path";
 }
diff --git a/src/main/java/org/codelibs/fess/FessBoot.java b/src/main/java/org/codelibs/fess/FessBoot.java
index 9a1cc0362894ada4bd2c56f990c4b7ff44883a69..edfe41686e139ed06bd58f94ee856cb35a61d92e 100644
--- a/src/main/java/org/codelibs/fess/FessBoot.java
+++ b/src/main/java/org/codelibs/fess/FessBoot.java
@@ -15,6 +15,8 @@
  */
 package org.codelibs.fess;
 
+// DO NOT DEPEND OTHER JARs
+
 import java.io.File;
 
 import org.dbflute.tomcat.TomcatBoot;
diff --git a/src/main/java/org/codelibs/fess/app/web/admin/wizard/AdminWizardAction.java b/src/main/java/org/codelibs/fess/app/web/admin/wizard/AdminWizardAction.java
index 1c3fbefcfb4672e0d2027cd7914fde2582910797..0e7d07569d1b5182abd16e9c53dbddc2f6936cc6 100644
--- a/src/main/java/org/codelibs/fess/app/web/admin/wizard/AdminWizardAction.java
+++ b/src/main/java/org/codelibs/fess/app/web/admin/wizard/AdminWizardAction.java
@@ -28,7 +28,6 @@ import org.codelibs.fess.Constants;
 import org.codelibs.fess.app.service.FileConfigService;
 import org.codelibs.fess.app.service.ScheduledJobService;
 import org.codelibs.fess.app.service.WebConfigService;
-import org.codelibs.fess.app.web.admin.dashboard.AdminDashboardAction;
 import org.codelibs.fess.app.web.base.FessAdminAction;
 import org.codelibs.fess.crawler.util.CharUtil;
 import org.codelibs.fess.es.config.exentity.FileConfig;
@@ -299,6 +298,6 @@ public class AdminWizardAction extends FessAdminAction {
         } else {
             saveError(messages -> messages.addErrorsFailedToStartCrawlProcess(GLOBAL));
         }
-        return redirect(AdminDashboardAction.class);
+        return redirect(AdminWizardAction.class);
     }
 }
\ No newline at end of file
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 b569c7aa2f7406a2410e3ab5cfa9d084e948c02a..c225258c24f7828797100325c3e496e4ef5a79fd 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
@@ -115,7 +115,7 @@ public class DataConfig extends BsDataConfig implements CrawlingConfig {
                         labelIdList.add(mapping.getLabelTypeId());
                     }
                     final LabelTypeBhv labelTypeBhv = ComponentUtil.getComponent(LabelTypeBhv.class);
-                    labelTypeList = labelTypeBhv.selectList(cb -> {
+                    labelTypeList = labelIdList.isEmpty() ? Collections.emptyList() : labelTypeBhv.selectList(cb -> {
                         cb.query().setId_InScope(labelIdList);
                         cb.query().addOrderBy_SortOrder_Asc();
                     });
diff --git a/src/main/java/org/codelibs/fess/es/config/exentity/FileConfig.java b/src/main/java/org/codelibs/fess/es/config/exentity/FileConfig.java
index 9f83c676dfef0e7b0a76a9fcedd9c0bcd91f852b..9814f6861c45da538c0af3e6faec4271a064e29f 100644
--- a/src/main/java/org/codelibs/fess/es/config/exentity/FileConfig.java
+++ b/src/main/java/org/codelibs/fess/es/config/exentity/FileConfig.java
@@ -90,7 +90,7 @@ public class FileConfig extends BsFileConfig implements CrawlingConfig {
                         labelIdList.add(mapping.getLabelTypeId());
                     }
                     final LabelTypeBhv labelTypeBhv = ComponentUtil.getComponent(LabelTypeBhv.class);
-                    labelTypeList = labelTypeBhv.selectList(cb -> {
+                    labelTypeList = labelIdList.isEmpty() ? Collections.emptyList() : labelTypeBhv.selectList(cb -> {
                         cb.query().setId_InScope(labelIdList);
                         cb.query().addOrderBy_SortOrder_Asc();
                     });
diff --git a/src/main/java/org/codelibs/fess/job/CrawlJob.java b/src/main/java/org/codelibs/fess/job/CrawlJob.java
index 536bcb6205386135b64b704a1040cfc7763a6b70..dc044726967d4451469c0876000ad64a79f11cb5 100644
--- a/src/main/java/org/codelibs/fess/job/CrawlJob.java
+++ b/src/main/java/org/codelibs/fess/job/CrawlJob.java
@@ -234,7 +234,7 @@ public class CrawlJob {
         // -cp
         crawlerCmdList.add("-cp");
         final StringBuilder buf = new StringBuilder();
-        final String confPath = System.getProperty("fess.conf.path");
+        final String confPath = System.getProperty(Constants.FESS_CONF_PATH);
         if (StringUtil.isNotBlank(confPath)) {
             buf.append(confPath);
             buf.append(cpSeparator);
diff --git a/src/main/java/org/codelibs/fess/job/SuggestJob.java b/src/main/java/org/codelibs/fess/job/SuggestJob.java
index 08ad46963b1d90b222fd4f745027b935f9042acd..adae1e71a938f2aba8c70987bc31ed7b014b3450 100644
--- a/src/main/java/org/codelibs/fess/job/SuggestJob.java
+++ b/src/main/java/org/codelibs/fess/job/SuggestJob.java
@@ -104,7 +104,7 @@ public class SuggestJob {
         // -cp
         suggestCreatorCmdList.add("-cp");
         final StringBuilder buf = new StringBuilder();
-        final String confPath = System.getProperty("fess.conf.path");
+        final String confPath = System.getProperty(Constants.FESS_CONF_PATH);
         if (StringUtil.isNotBlank(confPath)) {
             buf.append(confPath);
             buf.append(cpSeparator);
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 e8e08a1f1bada7606a62f936814affe554a4034c..8ff95819996d662edac1eac2ab8a265ce4dd03f0 100644
--- a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java
+++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java
@@ -31,6 +31,15 @@ public interface FessConfig extends FessEnv {
     /** The key of the configuration. e.g. http://localhost:9201 */
     String ELASTICSEARCH_HTTP_URL = "elasticsearch.http.url";
 
+    /** The key of the configuration. e.g. aes */
+    String APP_CIPHER_ALGORISM = "app.cipher.algorism";
+
+    /** The key of the configuration. e.g. __change_me__ */
+    String APP_CIPHER_KEY = "app.cipher.key";
+
+    /** The key of the configuration. e.g. sha256 */
+    String APP_DIGEST_ALGORISM = "app.digest.algorism";
+
     /** The key of the configuration. e.g. false */
     String CRAWLER_DOCUMENT_CACHE_ENABLE = "crawler.document.cache.enable";
 
@@ -322,7 +331,7 @@ public interface FessConfig extends FessEnv {
     /**
      * Get the value for the key 'elasticsearch.cluster.name'. <br>
      * The value is, e.g. elasticsearch <br>
-     * comment: elasticsearch
+     * comment: Elasticsearch
      * @return The value of found property. (NotNull: if not found, exception but basically no way)
      */
     String getElasticsearchClusterName();
@@ -334,6 +343,28 @@ public interface FessConfig extends FessEnv {
      */
     String getElasticsearchHttpUrl();
 
+    /**
+     * Get the value for the key 'app.cipher.algorism'. <br>
+     * The value is, e.g. aes <br>
+     * comment: Cryptographer
+     * @return The value of found property. (NotNull: if not found, exception but basically no way)
+     */
+    String getAppCipherAlgorism();
+
+    /**
+     * Get the value for the key 'app.cipher.key'. <br>
+     * The value is, e.g. __change_me__ <br>
+     * @return The value of found property. (NotNull: if not found, exception but basically no way)
+     */
+    String getAppCipherKey();
+
+    /**
+     * Get the value for the key 'app.digest.algorism'. <br>
+     * The value is, e.g. sha256 <br>
+     * @return The value of found property. (NotNull: if not found, exception but basically no way)
+     */
+    String getAppDigestAlgorism();
+
     /**
      * Get the value for the key 'crawler.document.cache.enable'. <br>
      * The value is, e.g. false <br>
@@ -1163,6 +1194,18 @@ public interface FessConfig extends FessEnv {
             return get(FessConfig.ELASTICSEARCH_HTTP_URL);
         }
 
+        public String getAppCipherAlgorism() {
+            return get(FessConfig.APP_CIPHER_ALGORISM);
+        }
+
+        public String getAppCipherKey() {
+            return get(FessConfig.APP_CIPHER_KEY);
+        }
+
+        public String getAppDigestAlgorism() {
+            return get(FessConfig.APP_DIGEST_ALGORISM);
+        }
+
         public String getCrawlerDocumentCacheEnable() {
             return get(FessConfig.CRAWLER_DOCUMENT_CACHE_ENABLE);
         }
diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessFwAssistantDirector.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessFwAssistantDirector.java
index f461726c7c82358949c3d69a2d900fcf1ccb4e0d..fa36a1881f8a91643c78d8490eb23e67aecdf225 100644
--- a/src/main/java/org/codelibs/fess/mylasta/direction/FessFwAssistantDirector.java
+++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessFwAssistantDirector.java
@@ -92,9 +92,29 @@ public class FessFwAssistantDirector extends CachedFwAssistantDirector {
         return new FessCurtainFinallyHook();
     }
 
-    protected FessSecurityResourceProvider createSecurityResourceProvider() { // #change_it_first
-        final InvertibleCryptographer inver = InvertibleCryptographer.createAesCipher("*unused@");
-        final OneWayCryptographer oneWay = OneWayCryptographer.createSha256Cryptographer();
+    protected FessSecurityResourceProvider createSecurityResourceProvider() {
+        final InvertibleCryptographer inver;
+        final String cipherAlgorism = fessConfig.getAppCipherAlgorism();
+        if ("blowfish".equalsIgnoreCase(cipherAlgorism)) {
+            inver = InvertibleCryptographer.createBlowfishCipher(fessConfig.getAppCipherKey());
+        } else if ("des".equalsIgnoreCase(cipherAlgorism)) {
+            inver = InvertibleCryptographer.createDesCipher(fessConfig.getAppCipherKey());
+        } else if ("rsa".equalsIgnoreCase(cipherAlgorism)) {
+            inver = InvertibleCryptographer.createRsaCipher(fessConfig.getAppCipherKey());
+        } else {
+            inver = InvertibleCryptographer.createAesCipher(fessConfig.getAppCipherKey());
+        }
+
+        final OneWayCryptographer oneWay;
+        final String digestAlgorism = fessConfig.getAppDigestAlgorism();
+        if ("sha512".equalsIgnoreCase(digestAlgorism)) {
+            oneWay = OneWayCryptographer.createSha512Cryptographer();
+        } else if ("md5".equalsIgnoreCase(digestAlgorism)) {
+            oneWay = new OneWayCryptographer("MD5", OneWayCryptographer.ENCODING_UTF8);
+        } else {
+            oneWay = OneWayCryptographer.createSha256Cryptographer();
+        }
+
         return new FessSecurityResourceProvider(inver, oneWay);
     }
 
diff --git a/src/main/java/org/codelibs/fess/util/ResourceUtil.java b/src/main/java/org/codelibs/fess/util/ResourceUtil.java
index f88a4673a780d2f6a76f741ab3cd10ae2f58433a..7b2b7bef823aff10f7ae1eb0789f0d29bf8dc9ce 100644
--- a/src/main/java/org/codelibs/fess/util/ResourceUtil.java
+++ b/src/main/java/org/codelibs/fess/util/ResourceUtil.java
@@ -26,6 +26,7 @@ import java.util.regex.Pattern;
 import javax.servlet.ServletContext;
 
 import org.codelibs.core.lang.StringUtil;
+import org.codelibs.fess.Constants;
 import org.codelibs.fess.mylasta.direction.FessConfig;
 import org.lastaflute.di.core.SingletonLaContainer;
 import org.lastaflute.web.util.LaServletContextUtil;
@@ -45,6 +46,10 @@ public class ResourceUtil {
     }
 
     public static Path getConfPath(final String... names) {
+        final String confPath = System.getProperty(Constants.FESS_CONF_PATH);
+        if (StringUtil.isNotBlank(confPath)) {
+            return Paths.get(confPath, names);
+        }
         return getPath("conf", names);
     }
 
diff --git a/src/main/resources/fess_config.properties b/src/main/resources/fess_config.properties
index 48330d284af95e4970e1b5120d93730c6fc4ea96..b00c9bbbbc6091565b06e25eca247148b065fd2e 100644
--- a/src/main/resources/fess_config.properties
+++ b/src/main/resources/fess_config.properties
@@ -8,10 +8,15 @@
 # The title of domain the application for logging
 domain.title = Fess
 
-# elasticsearch
+# Elasticsearch
 elasticsearch.cluster.name=elasticsearch
 elasticsearch.http.url=http://localhost:9201
 
+# Cryptographer
+app.cipher.algorism=aes
+app.cipher.key=__change_me__
+app.digest.algorism=sha256
+
 # ========================================================================================
 #                                                                                   Index
 #                                                                                     ====