Specify where to get the overridden properties. Updates should not be made on portal.properties or on portal-bundle.properties, but in portal-ext.properties.
The default read order is: portal.properties, portal-bundle.properties, portal-ext.properties, and then portal-setup-wizard.properties.
Defaults:include-and-override=portal-bundle.properties include-and-override=${liferay.home}/portal-bundle.properties include-and-override=portal-ext.properties include-and-override=${liferay.home}/portal-ext.properties include-and-override=portal-setup-wizard.properties include-and-override=${liferay.home}/portal-setup-wizard.properties
Each portal instance can have its own overridden property file following the convention portal-companyWebId.properties. To enable this feature, set the "company-id-properties" system property to true.
To enable:
java ... -Dcompany-id-properties=true
The read order will now be: portal.properties, then portal-ext.properties, and then portal-liferay.com.properties.
Note that not all properties can have different values per company. This functionality is only available for legacy reasons. The preferred way to configure a portal instance is through the Control Panel.
Defaults:include-and-override=portal-${easyconf:companyId}.properties include-and-override=${liferay.home}/portal-${easyconf:companyId}.properties
Additional property files can be used by setting the "external-properties" system property.
A common use case is to keep legacy property values when upgrading to newer versions of Liferay. To enable:
java ... -Dexternal-properties=portal-legacy-5.1.properties
The read order will now be: portal.properties, then portal-ext.properties, and then portal-legacy-5.1.properties.
Defaults:include-and-override=${external-properties} include-and-override=${liferay.home}/${external-properties}
Specify the Liferay home directory.
Defaults:liferay.home=${resource.repositories.root}
This property is available for backwards compatibility. Please set the property "liferay.home" instead.
Defaults:resource.repositories.root=${default.liferay.home}
Set the application server's protocol. Lucene will use it to load the index from the cluster when the hostname and port are not detected on the first request. Note that this property refers to the application server's protocol, and not the web server's as specified in the property "web.server.protocol".
Defaults:portal.instance.protocol=Examples:
portal.instance.protocol=http portal.instance.protocol=https
Set the application server's hostname and port for the protocol specified in the property "portal.instance.protocol". Lucene will use it to load the index from the cluster when the hostname and port are not detected on the first request. Note that this property must be used with the property "portal.instance.protocol" and it refers to the application server's hostname and port, not the web server's port as specified in the properties "web.server.http.port" and "web.server.https.port".
Defaults:portal.instance.inet.socket.address=Examples:
portal.instance.inet.socket.address=localhost:8080 portal.instance.inet.socket.address=localhost:8443
Set this property if the application server is served behind a proxy and a prefix needs to be added to the portal servlet context path. This prefix will also be added to static resources served by layout templates, portlets, and themes.
Defaults:portal.proxy.path=
Set this to true to automatically create tables and populate with default data if the database is empty.
Defaults:schema.run.enabled=true
Set this to true to automatically upgrade the database when a module's build number has been increased since the last deployment.
Defaults:schema.module.build.auto.upgrade=false
Set this to true to disable database transaction management during upgrades. This forces autocommit, which will speed up the upgrade process.
Defaults:upgrade.database.transactions.disabled=true
Input a list of comma delimited class names that implement com.liferay.portal.verify.VerifyProcess. These classes will run on startup to verify and fix any integrity problems found in the database. Please be aware that this may make modifications directly to the database.
Defaults:verify.processes=com.liferay.portal.verify.VerifyProcessSuite
Specify the frequency for verifying the integrity of the database.
Constants in VerifyProcess:
public static final int ALWAYS = -1; public static final int NEVER = 0; public static final int ONCE = 1;Defaults:
verify.frequency=1
Set this to true to disable database transaction management during verification. This forces autocommit, which will speed up the verify process.
Defaults:verify.database.transactions.disabled=true
Set this to true to disable patch level checking on portal-impl and portal-kernel JAR files. This is not recommended as a mixed patch level can cause unexpected behavior.
Defaults:verify.patch.levels.disabled=false
Configure this threshold to indicate when to execute certain com.liferay.portal.verify.VerifyProcess tasks concurrently. Each VerifyProcess implementation governs what it may concurrently execute.
Defaults:verify.process.concurrency.threshold=5
Input a list of comma delimited class names that implement com.liferay.portal.kernel.deploy.auto.AutoDeployListener. These classes are used to process the auto deployment of WARs.
Defaults:auto.deploy.listeners=\ com.liferay.portal.deploy.auto.ExtAutoDeployListener,\ com.liferay.portal.deploy.auto.HookAutoDeployListener,\ com.liferay.portal.deploy.auto.LayoutTemplateAutoDeployListener,\ com.liferay.portal.deploy.auto.ModuleAutoDeployListener,\ com.liferay.portal.deploy.auto.PortletAutoDeployListener,\ com.liferay.portal.deploy.auto.ThemeAutoDeployListener,\ com.liferay.portal.deploy.auto.WebAutoDeployListener
Set this to true to enable auto deploy of layout templates, portlets, and themes.
Defaults:auto.deploy.enabled=true
Set the directory to scan for layout templates, portlets, and themes to auto deploy.
Defaults:auto.deploy.deploy.dir=${liferay.home}/deploy
Set the directory where auto deployed WARs are copied to. The application server or servlet container must know to listen on that directory. Different containers have different hot deploy paths. For example, Tomcat listens on "${catalina.base}/webapps" whereas JBoss listens on "${jboss.home.dir}/deploy". Set a blank directory to automatically use the application server specific directory.
Defaults:auto.deploy.dest.dir= auto.deploy.default.dest.dir=../webapps auto.deploy.glassfish.dest.dir=${com.sun.aas.instanceRoot}/autodeploy auto.deploy.jboss.dest.dir=${jboss.home.dir}/standalone/deployments auto.deploy.jboss.dest.dir[5]=${jboss.server.home.dir}/deploy auto.deploy.jetty.dest.dir=${jetty.home}/webapps auto.deploy.jonas.dest.dir=${jonas.base}/deploy auto.deploy.resin.dest.dir=${resin.home}/webapps auto.deploy.tomcat.dest.dir=${catalina.base}/webapps auto.deploy.weblogic.dest.dir=${env.DOMAIN_HOME}/autodeploy auto.deploy.websphere.dest.dir=${env.USER_INSTALL_ROOT}/wsadmin-deploy auto.deploy.wildfly.dest.dir=${jboss.home.dir}/standalone/deployments
Set the interval in milliseconds on how often to scan the directory for changes.
Defaults:auto.deploy.interval=3000
Set this to true if deployed WARs are unpacked. Set this to false if your application server has concurrency issues with deploying large WARs.
Defaults:auto.deploy.unpack.war=true
Set this to true if plugins should automatically copy Commons Logging.
Defaults:auto.deploy.copy.commons.logging=true
Set this to true if plugins should automatically copy Log4j.
Defaults:auto.deploy.copy.log4j=true
Set this to true if you want the deployer to rename portlet.xml to portlet-custom.xml. This is only needed when deploying the portal on WebSphere 6.1.x with a version before 6.1.0.7 because WebSphere's portlet container will try to process a portlet at the same time that Liferay is trying to process a portlet.
Defaults:auto.deploy.custom.portlet.xml=false
Set this to 1 if you are using JBoss' PrefixDeploymentSorter. This will append a 1 in front of your WAR name. For example, if you are deploying a portlet called test-portlet.war, it will deploy it to 1test-portlet.war. JBoss now knows to load this portlet after the other WARs have loaded. However, it will remove the 1 from the context path.
Modify /server/default/conf/jboss-service.xml. See org.jboss.deployment.scanner.PrefixDeploymentSorter.
Defaults:auto.deploy.jboss.prefix=
Set the Glassfish settings to enable JSR 88 application deployment.
Defaults:auto.deploy.glassfish.jee.deployment.enabled=false auto.deploy.glassfish.jee.dm.id=deployer:Sun:AppServer::localhost:4848 auto.deploy.glassfish.jee.dm.user=admin auto.deploy.glassfish.jee.dm.passwd=adminadmin auto.deploy.glassfish.jee.df.classname=com.sun.enterprise.deployapi.SunDeploymentFactory
Set the path to Tomcat's configuration directory. This property is used to auto deploy exploded WARs. Tomcat context XML files found in the auto deploy directory will be copied to Tomcat's configuration directory. The context XML file must have a docBase attribute that points to a valid WAR directory.
Defaults:auto.deploy.tomcat.conf.dir=../conf/Catalina/localhost
Set the path to Tomcat's global class loader. This property is only used by Tomcat in a standalone environment.
Defaults:auto.deploy.tomcat.lib.dir=../common/lib/ext
Set the options used when calling the AdminApp.install command.
See http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.express.doc/info/exp/ae/rxml_adminapp.html#rxml_adminapp__cmd9 for more information.
Defaults:auto.deploy.websphere.wsadmin.app.manager.install.options=-appname ${auto.deploy.websphere.wsadmin.app.name} -contextroot /${plugin.servlet.context.name} -usedefaultbindings
Set the options used when calling the AdminApp.list command.
See http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.express.doc/info/exp/ae/rxml_adminapp.html#rxml_adminapp__cmd9 for more information.
Defaults:auto.deploy.websphere.wsadmin.app.manager.list.options=
Set the options used when calling the AdminApp.update command.
See http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.express.doc/info/exp/ae/rxml_adminapp.html#rxml_adminapp__cmd9 for more information.
Defaults:auto.deploy.websphere.wsadmin.app.manager.update.options=-contents ${auto.deploy.dest.dir}/${plugin.servlet.context.name}.war -contextroot /${plugin.servlet.context.name} -operation update -usedefaultbindings
WebSphere 6 and 7 do not support the ability to hot deploy a WAR. The portal will attempt to use the wsadmin script to install a hot deployed plugin at runtime if this property is set. The wsadmin script uses this property to query the WebSphere application manager. Set this property to a blank value to disable this feature.
Defaults:auto.deploy.websphere.wsadmin.app.manager.query=type=ApplicationManager,process=server1,*Examples:
auto.deploy.websphere.wsadmin.app.manager.query=
Set the suffix to be added to the plugin servlet context name in order to identify the WebSphere process it is deployed to. Leave it blank to use the plugin servlet context name only.
Defaults:auto.deploy.websphere.wsadmin.app.name.suffix=
Set the properties file name to use when invoking the wsadmin command. Configure this property to change the behavior of the wsadmin command, such as connection port or protocol.
Defaults:auto.deploy.websphere.wsadmin.properties.file.name=
hot.deploy.dependency.management.enabled=true
Input a list of comma delimited class names that implement com.liferay.portal.kernel.deploy.hot.HotDeployListener. These classes are used to process the deployment and undeployment of WARs at runtime.
The listeners are invoked in the order defined by this property. PluginPackageHotDeployListener must always be invoked first. SpringHotDeployListener must always be invoked before ServletContextListenerHotDeployListener. MessagingHotDeployListener must always be invoked last.
Defaults:hot.deploy.listeners=\ com.liferay.portal.deploy.hot.PluginPackageHotDeployListener,\ \ com.liferay.portal.deploy.hot.SpringHotDeployListener,\ \ com.liferay.portal.deploy.hot.ServletContextListenerHotDeployListener,\ \ com.liferay.portal.deploy.hot.ExtHotDeployListener,\ com.liferay.portal.deploy.hot.HookHotDeployListener,\ com.liferay.portal.deploy.hot.JSONWebServiceHotDeployListener,\ com.liferay.portal.deploy.hot.LayoutTemplateHotDeployListener,\ com.liferay.portal.deploy.hot.PortletHotDeployListener,\ com.liferay.portal.deploy.hot.SocialHotDeployListener,\ com.liferay.portal.deploy.hot.ThemeHotDeployListener,\ com.liferay.portal.deploy.hot.ThemeLoaderHotDeployListener,\ \ com.liferay.portal.deploy.hot.OSGiHotDeployListener,\ \ com.liferay.portal.deploy.hot.MessagingHotDeployListener
Set this to true to enable undeploying plugins.
Defaults:hot.undeploy.enabled=true
Set the undeploy interval in milliseconds on how long to wait for the undeploy process to finish.
Defaults:hot.undeploy.interval=0
Set this to true to undeploy a plugin before deploying a new version. This property will only be used if the property "hot.undeploy.enabled" is set to true.
Defaults:hot.undeploy.on.redeploy=false
Input a list of comma delimited supported plugin types.
Defaults:plugin.types=portlet,theme,layout-template,hook,web
Input a list of Liferay plugin repositories separated by \n characters.
Defaults:plugin.repositories.trusted= plugin.repositories.untrusted=
Set this property to false to avoid receiving on screen notifications when there is a new version of an installed plugin.
Defaults:plugin.notifications.enabled=false
Input a list of plugin packages IDs separated by \n characters. Administrators won't be notified when a new version of these plugins are available. The IDs are of the form groupId/artifactId. You can also end the ID with an asterisk to match any ID that starts with the previous character.
Examples:plugin.notifications.packages.ignored=liferay/sample-jsp-portlet
Set this property to set the default virtual path for all hot deployed portlets. See liferay-portlet-app_7_1_0.dtd and the virtual-path element for more information.
Defaults:portlet.virtual.path=
Set this property to true to validate portlet.xml against the portlet schema.
Defaults:portlet.xml.validate=true
Portlets that have configured liferay-portlet.xml with the element "add-default-resource" set to true will allow those portlets to be dynamically added to any page by any user. This is useful (and necessary) for some portlets that need to be dynamically added to a page, but it can also pose a security risk because it also allows any user to do it.
Set this property to true to add a security check around this behavior. If set to true, then portlets can only be dynamically added to a page if it contains a proper security token. This security token is automatically passed when using a portlet URL from one portlet to another portlet.
Modify the property "portlet.add.default.resource.check.whitelist" to whitelist certain portlets from this security check.
The security check utilizes the implementation set in the property "auth.token.impl".
Defaults:portlet.add.default.resource.check.enabled=true
Set a list of comma delimited portlet IDs that will bypass the security check set in the property "portlet.add.default.resource.check.enabled".
Defaults:portlet.add.default.resource.check.whitelist=\ com_liferay_calendar_web_portlet_CalendarPortlet,\ com_liferay_login_web_portlet_FastLoginPortlet,\ com_liferay_login_web_portlet_LoginPortlet,\ com_liferay_portlet_configuration_css_web_portlet_PortletConfigurationCSSPortlet,\ com_liferay_portlet_configuration_web_portlet_PortletConfigurationPortlet,\ com_liferay_product_navigation_simulation_web_portlet_SimulationPortlet,\ com_liferay_staging_bar_web_portlet_StagingBarPortlet
Input a list of comma delimited struts actions that will bypass the security check set in the property "portlet.add.default.resource.check.enabled".
Defaults:portlet.add.default.resource.check.whitelist.actions=
Set a list of comma delimited portlet IDs that will bypass the checks at first login (pages like terms of use, update password, password reminder query, etc.).
Such a portlet can also be embedded in a theme.
Keep in mind that this can be risky, because an attacker can issue POST requests on these portlets, even when there is no portlet embedded in a theme.
Defaults:portlet.interrupted.request.whitelist=
Input a list of comma delimited struts actions that will bypass the checks at first login (pages like terms of use, update password, password reminder query, etc.).
Defaults:portlet.interrupted.request.whitelist.actions=
Input a regular expression to ban paths that cannot be used to serve resources in portlets.
Defaults:portlet.resource.id.banned.paths.regexp=.*[\\\\/](?:META-INF|WEB-INF)[\\\\/].*
Set this property to true to enable portlet session replication. This is only needed when session replication is enabled on the application server.
Defaults:portlet.session.replicate.enabled=false
Set this property to true to show the portlet ID as a subtitle of the portlet configuration modal.
Defaults:portlet.config.show.portlet.id=false
Input a list of portlet resources that will be loaded.
Defaults:portlet.configs=\ /WEB-INF/portlet-custom.xml,\ /WEB-INF/portlet-ext.xml,\ /WEB-INF/liferay-portlet.xml,\ /WEB-INF/liferay-portlet-ext.xml,\ /WEB-INF/web.xml
Set this property to true to restrict portlet communication via request attributes. See the property "layout.parallel.render.enable" on how that property affects this property.
Defaults:portlet.container.restrict=true
This property controls how cross layout portlet URLs are invoked. When set to "render", only render URLs will be allowed invocation across different layouts. When set to "all", all portlet URL types will be allowed invocation.
Defaults:portlet.cross.layout.invocation.mode=render
Set this property to specify how events are distributed. If the value is "layout-set", then events will be distributed to all portlets contained in a layout set. If the value is "layout", then events will be distributed to all portlets that are present in a layout.
Defaults:portlet.event.distribution=layout
Set this property to specify how public render parameters are distributed. If the value is "layout-set", then public render parameters will be distributed to all portlets contained in a layout set. This will only work correctly if the property "layout.default.p_l_reset" is set to false. If the value is "layout", then public render parameters will be distributed to all portlets that are present in a layout.
Defaults:portlet.public.render.parameter.distribution=layout
Set the location of the default error content for portlet display templates for each language type.
Defaults:portlet.display.templates.error[ftl]=com/liferay/portlet/portletdisplaytemplate/dependencies/portlet_display_template_error.ftl portlet.display.templates.error[vm]=com/liferay/portlet/portletdisplaytemplate/dependencies/portlet_display_template_error.vm
Set the location of the default help content for portlet display templates for each language type.
Defaults:portlet.display.templates.help[ftl]=com/liferay/portlet/portletdisplaytemplate/dependencies/portlet_display_template_help.ftl portlet.display.templates.help[vm]=com/liferay/portlet/portletdisplaytemplate/dependencies/portlet_display_template_help.vm
Input a list of portlet filters that will be applied to all portlets.
Defaults:portlet.filters.system=com.liferay.portlet.ScriptDataPortletFilter
PortletPreferencesFactoryImpl caches the portlet preferences' XML content, where the XML content is used as a cache key. In some cases, the content can be very large (i.e. larger than 1 mb). This property defines a threshold to use XML content as key only below this threshold. Above the threshold, an SHA-1 hash will be generated, but that's an expensive operation, so this property should be specified wisely. The default value is 1 kb.
Defaults:portlet.preferences.cache.key.threshold.size=1024
Set this property to false to break PLT.17.1's restriction to allow portlet preferences to be stored during render phase. This property exists for backwards compatibility with legacy portlets.
Defaults:portlet.preferences.strict.store=true
Set this property to true to load the theme's merged CSS files for faster loading for production.
Set this property to false for easier debugging for development. You can also disable fast loading by setting the URL parameter "css_fast_load" to "0" when the property "theme.css.fast.load.check.request.parameter" is also set to true.
Defaults:theme.css.fast.load=true
Set this property to false to ignore the URL parameter "css_fast_load". See the property "theme.css.fast.load".
Defaults:theme.css.fast.load.check.request.parameter=false
Set this property to true to load the theme's merged image files for faster loading for production.
Set this property to false for easier debugging for development. You can also disable fast loading by setting the URL parameter "images_fast_load" to "0" when the property "theme.images.fast.load.check.request.parameter" is also set to true.
Defaults:theme.images.fast.load=true
Set this property to false to ignore the URL parameter "images_fast_load". See the property "theme.images.fast.load".
Defaults:theme.images.fast.load.check.request.parameter=false
Set this property to true to allow directly invoked JSPs to be overridden by a different version of the JSP that exists in a theme.
Defaults:theme.jsp.override.enabled=false
Set the theme's shortcut icon.
Defaults:theme.shortcut.icon=favicon.ico
Set this property to set the default virtual path for all hot deployed themes. See liferay-look-and-feel_7_1_0.dtd and the virtual-path element for more information.
Defaults:theme.virtual.path=
Set this with an absolute path to specify where imported theme files from a LAR will be stored. This path will override the file-storage path specified in liferay-theme-loader.xml.
Defaults:theme.loader.storage.path=
Themes can be imported via LAR files. Set this to true if imported themes should use a new theme ID on every import. This will ensure that a copy of the old theme is preserved in the theme loader storage path. However, this also means that a lot of themes that are no longer used remain in the file system. It is recommended that you set this to false.
Defaults:theme.loader.new.theme.id.on.import=false
Set this to true to decorate portlets by default.
Defaults:theme.portlet.decorate.default=true
Set this to true to expose sharing icons for portlets by default.
Defaults:theme.portlet.sharing.default=false
Input a list of comma delimited resource action configurations that will be read from the class path.
Defaults:resource.actions.configs=\ META-INF/resource-actions/default.xml,\ resource-actions/default.xml
This should only be set to false when it is called by Service Builder outside of an application server or servlet container.
Defaults:resource.actions.read.portlet.resources=true
Input a list of comma delimited model hints configurations.
Defaults:model.hints.configs=\ META-INF/portal-model-hints.xml,\ classpath*:META-INF/ext-model-hints.xml,\ classpath*:META-INF/portlet-model-hints.xml
Set the batch size of database query results returned during the tree rebuilding operation. If set to -1, the results will not be paginated and may result in a larger memory footprint.
Defaults:model.tree.rebuild.query.results.batch.size=10000
Input a list of comma delimited Spring configurations. These will be loaded after the bean definitions specified in the contextConfigLocation parameter in web.xml.
Defaults:spring.configs=\ META-INF/base-spring.xml,\ \ META-INF/util-spring.xml,\ \ META-INF/executor-spring.xml,\ META-INF/fabric-spring.xml,\ \ META-INF/messaging-core-spring.xml,\ META-INF/messaging-misc-spring.xml,\ \ META-INF/asset-spring.xml,\ META-INF/cluster-spring.xml,\ META-INF/comment-spring.xml,\ META-INF/company-provider-spring.xml,\ META-INF/document-library-spring.xml,\ META-INF/layout-spring.xml,\ META-INF/model-listener-spring.xml,\ META-INF/notifications-spring.xml,\ META-INF/poller-spring.xml,\ META-INF/prefs-spring.xml,\ META-INF/repository-spring.xml,\ META-INF/search-spring.xml,\ META-INF/security-spring.xml,\ META-INF/service-configurator-spring.xml,\ META-INF/social-spring.xml,\ META-INF/workflow-spring.xml,\ \ META-INF/counter-spring.xml,\ META-INF/mail-spring.xml,\ META-INF/portal-spring.xml,\ META-INF/portlet-container-spring.xml,\ META-INF/staging-spring.xml,\ META-INF/virtual-layouts-spring.xml,\ \ META-INF/monitoring-spring.xml,\ \ #META-INF/dynamic-data-source-spring.xml,\ \ classpath*:META-INF/ext-spring*.xml
Input a list of comma delimited Spring infrastructure configurations. These will be loaded after the module framework is initialized but before it is started.
Defaults:spring.infrastructure.configs=\ META-INF/infrastructure-spring.xml,\ \ META-INF/counter-infrastructure-spring.xml,\ #META-INF/dynamic-data-source-infrastructure-spring.xml,\ META-INF/hibernate-spring.xml
Input a list of comma delimited Spring configurations for plugins. These will be loaded before portalContextConfigLocation parameter in portlet web.xml and spring.configs in service.properties
Defaults:spring.portlet.configs=\ classpath*:com/liferay/portal/spring/context/xml/*-spring.xml
Set the bean name for the Liferay data source.
Defaults:spring.hibernate.data.source=liferayDataSource
Set the bean name for the Liferay session factory.
Defaults:spring.hibernate.session.factory=&liferaySessionFactory
Set this property to true to verify that the session factory is owned by the proper transaction manager. Set this property to false to turn off verification for better performance.
Defaults:spring.hibernate.session.factory.verify=true
Set the list of portal classes that will be preloaded by the PreloadClassloader and therefore available to a plugin's Hibernate session factory.
Defaults:spring.hibernate.configuration.proxy.factory.preload.classloader.classes=\ javassist.util.proxy.MethodHandler,\ javassist.util.proxy.ProxyObject,\ javassist.util.proxy.RuntimeSupport,\ org.hibernate.proxy.HibernateProxy,\ org.hibernate.proxy.LazyInitializer
Set the list of portal classes that will be preloaded by the PreloadClassloader and therefore available to a plugin's Hibernate session factory.
Defaults:spring.hibernate.session.factory.preload.classloader.classes=\ org.hibernate.engine.jdbc.WrappedBlob
Set this property to false to manually open and close sessions.
Defaults:spring.hibernate.session.delegated=true
Input a list of comma delimited Hibernate configurations.
Defaults:hibernate.configs=\ META-INF/mail-hbm.xml,\ META-INF/portal-hbm.xml,\ classpath*:META-INF/ext-hbm.xml
Liferay will automatically detect the Hibernate dialect in com.liferay.portal.spring.PortalHibernateConfiguration. Set this property to manually override the automatically detected dialect.
Examples:hibernate.dialect=
Set the Hibernate connection release mode. You should not modify this unless you know what you're doing. The default setting works best for Spring managed transactions. See the method buildSessionFactory in class org.springframework.orm.hibernate3.LocalSessionFactoryBean and search for the phrase "on_close" to understand how this works.
Examples:hibernate.connection.release_mode=on_close
Set the JDBC batch size to improve performance.
If you're using Hypersonic, you SHOULD set the batch size to 0 as a workaround for a logging bug in the Hypersonic driver. See LPS-5426 for more information.
If you're using Oracle 9i, you MUST set the batch size to 0 as a workaround for a hanging bug in the Oracle driver. See LEP-1234 for more information.
Defaults:hibernate.jdbc.batch_size=20Examples:
hibernate.jdbc.batch_size=0
Set other miscellaneous Hibernate properties.
Defaults:hibernate.jdbc.use_scrollable_resultset=true hibernate.bytecode.use_reflection_optimizer=true hibernate.show_sql=false
Use the classic query factory until WebLogic and Hibernate 3 can get along. See http://www.hibernate.org/250.html#A23 for more information.
Defaults:hibernate.query.factory_class=org.hibernate.hql.classic.ClassicQueryTranslatorFactory
Set this property to true to enable Hibernate cache monitoring. See LPS-2056 for more information.
Defaults:hibernate.generate_statistics=false
Set the regexp pattern to filter a Hibernate session factory imported class name before continuing with classloader resolving.
This is used to fix the infamous Hibernate ReflectHelper.classForName() synchronization problem. For more details, see the Hibernate issues HHH-1810, HHH-4959, HHH-10746, and HHH-11246.
If no regexp pattern is set, classloader resolving is skipped, resulting in the class name being resolved against the configuration's imports map.
The wildcard pattern ".*" disables this optimization, reverting back to the original Hibernate behavior.
Any other pattern resolves the class name against the configuration's imports map first. If it can not be resolved, it attempts to match this pattern. If it matches, continue with classloader resolving; otherwise, return null as unable to resolve.
Defaults:hibernate.session.factory.imported.class.name.regexp=
Set the JNDI name to lookup the JDBC data source. If none is set, then the portal will attempt to create the JDBC data source based on the properties prefixed with "jdbc.default.".
Examples:jdbc.default.jndi.name=jdbc/LiferayPool
Set the properties used to create the JDBC data source. These properties will only be read if the property "jdbc.default.jndi.name" is not set.
The default settings are configured for an in-memory database called Hypersonic that is not recommended for production use. Please change the properties to use another database.
To configure the portal to use one data source for read calls and another data source for read-write calls, follow these steps:
1. Similar to the settings prefixed with "jdbc.default.", create a set of properties prefixed with "jdbc.read." to handle read calls and another set of properties prefixed with "jdbc.write." to handle read-write calls.
2. Add "jdbc.read.jndi.name" and "jdbc.write.jndi.name" properties that specify the data source JNDI names.
3. Add dynamic-data-source-spring.xml to the property "spring.configs" and dynamic-data-source-infrastructure-spring.xml to the property "spring.infrastructure.configs"
DB2
Examples:jdbc.default.driverClassName=com.ibm.db2.jcc.DB2Driver jdbc.default.url=jdbc:db2://localhost:50000/lportal:deferPrepares=false;fullyMaterializeInputStreams=true;fullyMaterializeLobData=true;progresssiveLocators=2;progressiveStreaming=2; jdbc.default.username=db2admin jdbc.default.password=lportal
Hypersonic
Defaults:jdbc.default.driverClassName=org.hsqldb.jdbc.JDBCDriver jdbc.default.url=jdbc:hsqldb:${liferay.home}/data/hypersonic/lportal;hsqldb.write_delay=false jdbc.default.username=sa jdbc.default.password=
MariaDB
Examples:jdbc.default.driverClassName=org.mariadb.jdbc.Driver jdbc.default.url=jdbc:mariadb://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false jdbc.default.username= jdbc.default.password=
MySQL
Examples:jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql://localhost/lportal?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&useFastDateParsing=false&useUnicode=true jdbc.default.username= jdbc.default.password=
Oracle
Examples:jdbc.default.driverClassName=oracle.jdbc.OracleDriver jdbc.default.url=jdbc:oracle:thin:@localhost:1521:xe jdbc.default.username=lportal jdbc.default.password=lportal
P6Spy
Examples:jdbc.default.driverClassName=com.p6spy.engine.spy.P6SpyDriver jdbc.default.url=jdbc:mysql://localhost/lportal?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&useFastDateParsing=false&useUnicode=true jdbc.default.username= jdbc.default.password=
PostgreSQL
Examples:jdbc.default.driverClassName=org.postgresql.Driver jdbc.default.url=jdbc:postgresql://localhost:5432/lportal jdbc.default.username=sa jdbc.default.password=
SQL Server
Examples:jdbc.default.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc.default.url=jdbc:sqlserver://localhost;databaseName=lportal jdbc.default.username=sa jdbc.default.password=
Sybase
Examples:jdbc.default.driverClassName=com.sybase.jdbc4.jdbc.SybDriver jdbc.default.url=jdbc:sybase:Tds:localhost:5000/lportal jdbc.default.username=sa jdbc.default.password=
Liferay can use C3PO, DBCP, HikariCP, or Tomcat for connection pooling. See com.liferay.portal.dao.jdbc.util.DataSourceFactoryBean for the actual implementation. It is important to understand the strengths and weaknesses of each provider so that you can choose the best one that fits your deployment scenario. Provider specific properties can also be passed along directly to the provider. For example, the property "jdbc.default.acquireIncrement" is read by C3PO, and the property "jdbc.default.maxActive" is read by DBCP.
The default provider is HikariCP.
Defaults:jdbc.default.liferay.pool.provider=hikaricpExamples:
jdbc.default.liferay.pool.provider=c3po jdbc.default.liferay.pool.provider=dbcp jdbc.default.liferay.pool.provider=tomcat
The following properties will be read by C3PO if Liferay is configured to use C3PO in the property "jdbc.default.liferay.pool.provider". See http://www.mchange.com/projects/c3p0/index.html#configuration for a list of additional fields used by C3PO for configuring database connections.
Defaults:jdbc.default.acquireIncrement=5 jdbc.default.acquireRetryAttempts=3 jdbc.default.acquireRetryDelay=1000 jdbc.default.connectionCustomizerClassName=com.liferay.portal.dao.jdbc.pool.c3p0.PortalConnectionCustomizer jdbc.default.idleConnectionTestPeriod=60 jdbc.default.initialPoolSize=10 jdbc.default.maxIdleTime=3600 jdbc.default.maxPoolSize=100 jdbc.default.minPoolSize=10 jdbc.default.numHelperThreads=10Examples:
jdbc.default.transactionIsolation=1
The following properties will be read by HikariCP if Liferay is configured to use HikariCP in the property "jdbc.default.liferay.pool.provider". See https://github.com/brettwooldridge/HikariCP for a list of additional fields used by HikariCP for configuring database connections.
HikariCP recommends to also tune database settings. See https://github.com/brettwooldridge/HikariCP/wiki for additional setting details for database.
Defaults:jdbc.default.connectionTimeout=30000 jdbc.default.idleTimeout=600000 jdbc.default.maximumPoolSize=100 jdbc.default.maxLifetime=0 jdbc.default.minimumIdle=10 jdbc.default.registerMbeans=trueExamples:
jdbc.default.autoCommit=true jdbc.default.connectionTestQuery=SELECT releaseId FROM Release_ jdbc.default.initializationFailFast=false
The following properties will be read by both DBCP and Tomcat JDBC Connection Pool if Liferay is configured to use DBCP or Tomcat JDBC Connection Pool in the property "jdbc.default.liferay.pool.provider". See http://commons.apache.org/dbcp/configuration.html and http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html for a list of additional fields used by DBCP or Tomcat JDBC Connection Pool for configuring database connections.
Defaults:jdbc.default.maxActive=100 jdbc.default.minIdle=10 jdbc.default.testWhileIdle=true jdbc.default.timeBetweenEvictionRunsMillis=30000 jdbc.default.validationQuery=SELECT releaseId FROM Release_Examples:
jdbc.default.defaultTransactionIsolation=READ_UNCOMMITTED jdbc.default.logAbandoned=true jdbc.default.removeAbandonedTimeout=3600
The following properties will be read by Tomcat JDBC Connection Pool if Liferay is configured to use Tomcat JDBC Connection Pool in the property "jdbc.default.liferay.pool.provider". See http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html for a list of additional fields used by Tomcat JDBC Connection Pool for configuring database connections.
Defaults:jdbc.default.jdbcInterceptors=org.apache.tomcat.jdbc.pool.interceptor.ConnectionState jdbc.default.jmxEnabled=true jdbc.default.fairQueue=true jdbc.default.useEquals=false
Set this property to true to automatically escape wildcards to literal values.
Defaults:custom.sql.auto.escape.wildcards.enabled=false
Input a list of comma delimited custom SQL configurations.
Defaults:custom.sql.configs=custom-sql/default.xml
Some databases do not recognize a NULL IS NULL check. Set the "custom.sql.function.isnull" and "custom.sql.function.isnotnull" properties for your specific database.
There is no need to manually set these properties because com.liferay.portal.spring.PortalHibernateConfiguration already sets it. However, these properties are available so that you can see how you can override it for a database that PortalHibernateConfiguration does not yet know how to auto configure.
DB2
Examples:custom.sql.function.isnull=CAST(? AS VARCHAR(32672)) IS NULL custom.sql.function.isnotnull=CAST(? AS VARCHAR(32672)) IS NOT NULL
MySQL (for testing only)
Examples:custom.sql.function.isnull=IFNULL(?, '1') = '1' custom.sql.function.isnotnull=IFNULL(?, '1') = '0'
Sybase
Examples:custom.sql.function.isnull=CONVERT(VARCHAR,?) IS NULL custom.sql.function.isnotnull=CONVERT(VARCHAR,?) IS NOT NULL
Set this property to true to update database indexes on startup. This will ensure that all necessary indexes are added and that unnecessary indexes are removed. Only indexes that have names that match "LIFERAY_" OR "IX_" will be updated. Make sure that your custom indexes do not match the Liferay pattern to ensure that your custom indexes are not removed as unnecessary indexes.
Defaults:database.indexes.update.on.startup=false
Set the max number of columns in an ORDER BY clause.
Defaults:database.order.by.max.columns[sybase]=31
Set the max length for string type of index.
Defaults:database.string.index.max.length[mariadb]=255 database.string.index.max.length[mysql]=255
Specify any database vendor specific settings.
MySQL
Set the MySQL engine type. InnoDB is the recommended engine because it provides transactional integrity.
Defaults:database.mysql.engine=InnoDB
Set the transaction isolation level for the Counter service. See "transaction.isolation.portal" for more information. The preferred value is 8 when the transaction manager supports it. If the transaction manager does not support it, set this to -1 to use the database's default isolation level.
Defaults:transaction.isolation.counter=2
Set the definition of the "portal" transaction isolation level. The "portal" transaction isolation level is not a real isolation level. It is just a pointer to a real isolation level that can be configured by setting this property. Set the value to -1 to use the database's default isolation level. Set the value to 2 to use "read committed". Set the value to 1 to use "read uncommitted". Set the value to 4 to use "repeatable read". Set the value to 8 to use "serializable".
Defaults:transaction.isolation.portal=2
Set the transaction manager. It must be a class that extends org.springframework.transaction.support.AbstractPlatformTransactionManager.
The application server specific transaction managers provide XA transactions by leveraging application server specific data sources and thus require additional application server specific configuration. You should not modify this unless you know what you're doing.
Defaults:transaction.manager.impl=com.liferay.portal.spring.hibernate.LastSessionRecorderHibernateTransactionManagerExamples:
transaction.manager.impl=org.springframework.transaction.jta.JtaTransactionManager transaction.manager.impl=org.springframework.transaction.jta.OC4JJtaTransactionManager transaction.manager.impl=org.springframework.transaction.jta.WebLogicJtaTransactionManager transaction.manager.impl=org.springframework.transaction.jta.WebSphereUowTransactionManager
Additional properties that follow the pattern "transaction.manager.property.*" will be read to call the setters on the transaction manager. For example, the property "transaction.manager.property.globalRollbackOnParticipationFailure", will call the setter "setGlobalRollbackOnParticipationFailure" on the transaction manager. The list of available setters depends on the implementation specified in the property "transaction.manager.impl".
"allowCustomIsolationLevels" should be set to true when using the JtaTransactionManager.
Defaults:transaction.manager.property.globalRollbackOnParticipationFailure=falseExamples:
transaction.manager.property.allowCustomIsolationLevels=true
Set this property to true to enable transactional cache. When enabled, changes to caches take effect when transaction commits successfully. Caches rollback when transactions rollback.
Defaults:transactional.cache.enable=true
Set a list of comma delimited transactional portal cache names. The "?" character represents a single character wildcard. The "*" symbol character a multiple character wildcard. The "%" character is used to escape characters.
Defaults:transactional.cache.names=com.liferay.portal.kernel.dao.orm.EntityCache*,com.liferay.portal.kernel.dao.orm.FinderCache*,com.liferay.portal.kernel.service.persistence.impl.TableMapper-*,com.liferay.portlet.PortalPreferencesWrapperCacheUtil
Set the classpath to the location of the Ehcache config file for internal caches. Edit the file specified in the property "ehcache.multi-vm.config.location" to enable clustered cache.
Defaults:ehcache.single.vm.config.location=/ehcache/liferay-single-vm.xml ehcache.multi.vm.config.location=/ehcache/liferay-multi-vm-clustered.xml
Set this to true to enable the Ehcache bootstrap cache loader.
Defaults:ehcache.bootstrap.cache.loader.enabled=false
Input a list of comma delimited key value pair to set bootstrap loader properties for the default cache.
Defaults:ehcache.bootstrap.cache.loader.properties.default=
Input a list of comma delimited key value pair to set bootstrap loader properties for a specific cache.
Examples:ehcache.bootstrap.cache.loader.properties.${specific.cache.name}=
Input a list of comma delimited key value pair to set replication properties for the default cache.
Defaults:ehcache.replicator.properties.default=
Input a list of comma delimited key value pair to set replication properties for a specific cache.
Defaults:ehcache.replicator.properties.com.liferay.dynamic.data.mapping.data.provider.internal.rest.DDMRESTDataProvider=replicatePuts=false ehcache.replicator.properties.com.liferay.journal.util.JournalContent=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.kernel.template.TemplateResourceLoader.css=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.kernel.template.TemplateResourceLoader.ftl=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.kernel.template.TemplateResourceLoader.vm=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.security.permission.PermissionCacheUtil_PERMISSION=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.security.permission.PermissionCacheUtil_PERMISSION_CHECKER_BAG=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.security.permission.PermissionCacheUtil_RESOURCE_BLOCK_IDS_BAG=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.servlet.filters.cache.CacheUtil=replicatePuts=false ehcache.replicator.properties.com.liferay.portal.kernel.webserver.WebServerServletToken=replicatePuts=false ehcache.replicator.properties.com.liferay.portlet.social.service.impl.SocialActivitySettingLocalServiceImpl=replicatePuts=false ehcache.replicator.properties.com.liferay.wiki.model.WikiPageDisplay=replicatePuts=falseExamples:
ehcache.replicator.properties.${specific.cache.name}=
Set this to true to enable JMX integration in com.liferay.portal.cache.EhcachePortalCacheManager. Set this to false if the portal needs to be reloaded under WebSphere.
Defaults:ehcache.portal.cache.manager.jmx.enabled=true
Set this to true to allow Ehcache to use blocking caches. This improves performance significantly by locking on keys instead of the entire cache. The drawback is that threads can hang if the cache is not used properly. Make sure that all queries that return a miss also immediately populate the cache, or else other threads that are blocked on a query of that same key will continue to hang. Reference Ehcache's BlockingCache for more information. The blocking cache is no longer implemented by Ehcache's BlockingCache, but by Liferay's BlockingPortalCache for better safety and faster performance.
Blocking cache together with transactional cache performs poorly, because transactional cache affects the cache population visibility across transactions. When transactional cache is on, blocking cache most likely does nothing useful unless the transaction window time is short. When transactional cache is off, it is better to turn on blocking cache for better database access performance.
Defaults:ehcache.blocking.cache.allowed=falseDefaults:
ehcache.rmi.peer.listener.factory.class=com.liferay.portal.cache.ehcache.internal.rmi.LiferayRMICacheManagerPeerListenerFactory ehcache.rmi.peer.listener.factory.properties= ehcache.rmi.peer.provider.factory.class=net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory ehcache.rmi.peer.provider.factory.properties=peerDiscovery=automatic,multicastGroupAddress=${multicast.group.address["multi-vm"]},multicastGroupPort=${multicast.group.port["multi-vm"]},timeToLive=1
Set the socket timeout in milliseconds.
Defaults:ehcache.socket.so.timeout=10000
Set the start port for Ehcache socket. The port number will increase by 1 until it finds an unused port.
Defaults:ehcache.socket.start.port=32454
The need to specify two separate lists of JavaScript files for performance reasons (the "javascript.barebone.files" and "javascript.everything.files" properties) in this file is deprecated because it can be configured via OSGi using BND headers. These properties will be removed in a future release.
Set a list of JavaScript files that will be loaded automatically in /html/common/themes/top_js.jsp.
There are two lists of files specified in the properties "javascript.barebone.files" and "javascript.everything.files".
As the name suggests, the barebone list is the minimum list of JavaScript files required for most cases. The everything list includes everything else not listed in the barebone list.
The two lists of files exist for performance reasons because unauthenticated users usually do not utilize all the JavaScript that is available. See the property "javascript.barebone.enabled" for more information on the logic of when the barebone list is used and when the everything list is used and how to customize that logic.
The list of files are also merged and packed for further performance improvements. See the property "javascript.fast.load" for more details.
Specify the list of barebone files.
The ordering of the JavaScript files is important and should follow a specific format. The first grouping denotes utility scripts that are used by the second and third groups. The second grouping denotes utility classes that rely on the first group, but do not rely on the second or third group. The third grouping denotes modules that rely on the first and second group.
This configuration is deprecated because it can be configured in a modular way using the "Liferay-JS-Resources-Top-Head" header in OSGi bundles' manifest files. It will be removed from this file in a future release.
Defaults:javascript.barebone.files=
Specify the list of remaining JavaScript files not already specified in the list of barebone files (i.e., "javascript.barebone.files").
This configuration is deprecated because it can be configured in a modular way using the "Liferay-JS-Resources-Top-Head-Authenticated" header in OSGi bundles' manifest files. It will be removed from this file in a future release.
Defaults:javascript.everything.files=
Set this property to false to always load JavaScript files listed under the property "Liferay-JS-Resources-Top-Head-Authenticated" of OSGi bundles' manifest files.
Set this to true to sometimes load JavaScript files listed under the property "Liferay-JS-Resources-Top-Head" and sometimes load those under "Liferay-JS-Resources-Top-Head-Authenticated".
The default logic is coded in com.liferay.portal.events.ServicePreAction in such a way that unauthenticated users get the list of "Liferay-JS-Resources-Top-Head" JavaScript files whereas authenticated users get both the list of "Liferay-JS-Resources-Top-Head" JavaScript files and the list of "Liferay-JS-Resources-Top-Head-Authenticated" JavaScript files.
Defaults:javascript.barebone.enabled=true
Set this property to true to load the packed version of files listed in the properties "Liferay-JS-Resources-Top-Head" and/or "Liferay-JS-Resources-Top-Head-Authenticated" of OSGi bundles' manifest files.
Set this property to false for easier debugging for development. You can also disable fast loading by setting the URL parameter "js_fast_load" to "0".
Defaults:javascript.fast.load=true
Input a list of comma delimited properties that are valid bundle IDs for the JavaScript minifier.
This mechanism is deprecated and will be removed in a future release.
Defaults:javascript.bundle.ids=\ javascript.barebone.files,\ javascript.everything.files
Define a bundle directory for each property listed in "javascript.bundle.ids".
This mechanism is deprecated and will be removed in a future release.
Defaults:javascript.bundle.dir[javascript.barebone.files]=/ javascript.bundle.dir[javascript.everything.files]=/
Define the bundle dependencies using any property listed in "javascript.bundle.ids".
This mechanism is deprecated and will be removed in a future release.
Defaults:javascript.bundle.dependencies[javascript.everything.files]=javascript.barebone.files
Set this to true to enable the display of JavaScript logging.
Defaults:javascript.log.enabled=false
Set this to true to enable Single Page Application links.
Defaults:javascript.single.page.application.enabled=true
Set the timeout in milliseconds before SPA navigation times out and falls back to standard navigation.
Defaults:javascript.single.page.application.timeout=0
Set the default SQL IDs for common objects.
Defaults:sql.data.com.liferay.portal.kernel.model.Country.country.id=19 sql.data.com.liferay.portal.kernel.model.Region.region.id=5 sql.data.com.liferay.portal.kernel.model.ListType.account.address=10000 sql.data.com.liferay.portal.kernel.model.ListType.account.email.address=10004 sql.data.com.liferay.portal.kernel.model.ListType.contact.email.address=11003 sql.data.com.liferay.portal.kernel.model.ListType.organization.status=12017
Set the maximum parameters that a SQL transaction query can contain. Some databases do not allow for more than 2000 parameters in a query.
Defaults:sql.data.max.parameters=1000
Set the strategy for non-serializable wrapping on Weblogic. If set to true, the wrapping is done for all objects. If set to false, no wrapping is done, but Weblogic must be configured not serializae request attributes.
Defaults:weblogic.request.wrap.non.serializable=true
company.default.name=Liferay
This sets the default web ID. Omniadmin users must belong to the company with this web ID.
Defaults:company.default.web.id=liferay.com
This sets the default home URL of the portal.
Defaults:company.default.home.url=/web/guest
This sets the default locale of the portal, overriding the properties "user.language" and "user.country" specified in system.properties.
Examples:company.default.locale=en_US
This sets the default time zone of the portal during initial setup.
To change the default time zone of an existing portal instance, use the Control Panel options.
Defaults:company.default.time.zone=UTC
Set this to the appropriate encryption algorithm to be used for company level encryption algorithms (except password encryption which is defined via the property "passwords.encryption.algorithm").
If you change this setting, you may need to also change the property "company.encryption.key.size" to configure the desired encryption key size.
For more details about encryption keys, see the Java Cryptography Extension documentation.
Defaults:company.encryption.algorithm=AESExamples:
company.encryption.algorithm=Blowfish company.encryption.algorithm=DES company.encryption.algorithm=DESede
Set this to define the size used for the company wide encryption key. If you change this setting, you may need to also change the property "company.encryption.algorithm" to ensure the algorithm supports your key size. Most encryption algorithm implementations do not support key sizes stronger than 128. Only those with unlimited strength cryptography support stronger keys.
For more details about supported key sizes for encryption keys, see the Java Cryptography Extension documentation.
Defaults:company.encryption.key.size=128Examples:
company.encryption.key.size=56 company.encryption.key.size=168 company.encryption.key.size=256 company.encryption.key.size=384 company.encryption.key.size=512
The login field is prepopulated with the company's domain name if the login is unpopulated and user authentication is based on email addresses. Set this to false to disable the behavior.
Defaults:company.login.prepopulate.domain=true
The portal can authenticate users based on their email address, screen name, or user ID.
Defaults:company.security.auth.type=emailAddressExamples:
company.security.auth.type=screenName company.security.auth.type=userId
Set this to true to ensure users login with https. If this is set to true and you want your HTTP session to contain your credentials after logging in, then the property "session.enable.phishing.protection" must be set to false or your credentials will only be available in the HTTPS session.
Defaults:company.security.auth.requires.https=false
Set this to true to allow users to select the "remember me" feature to automatically login to the portal.
Defaults:company.security.auto.login=true
Set this to the maximum age (in number of seconds) of the browser cookie that enables the "remember me" feature. A value of 31536000 signifies lifespan of one year. A value of -1 signifies a lifespan of a browser session.
Rather than setting this to 0, set the property "company.security.auto.login" to false to disable the "remember me" feature.
Defaults:company.security.auto.login.max.age=31536000
Set this to true to allow users to autocomplete the login form based on their previously entered values.
Defaults:company.security.login.form.autocomplete=true
Set this to true to allow users to autocomplete the reminder query form based on their previously entered values.
Defaults:company.security.password.reminder.query.form.autocomplete=true
Set this to true to allow users to ask the portal to send them their password.
Defaults:company.security.send.password=true
Set this to true to allow users to ask the portal to send them a password reset link.
Defaults:company.security.send.password.reset.link=true
Set this to true to allow strangers to create accounts and register themselves on the portal.
Defaults:company.security.strangers=true
Enter a friendly URL of a page that will be used to create new accounts whenever the user clicks the "create account" link in the login portlet. This allows providing custom portlets to create accounts. By default, the portal's create account will be used.
Examples:company.security.strangers.url=/create_account
Set this to true if strangers can create accounts with email addresses that match the company mail suffix. This property is not used unless "company.security.strangers" is also set to true.
Defaults:company.security.strangers.with.mx=true
Set this to true if strangers who create accounts need to be verified via email.
Defaults:company.security.strangers.verify=false
Set this to true to allow site administrators to use their own logo instead of the enterprise logo.
Defaults:company.security.site.logo=true
Input a list of sections that will be included as part of the company authentication settings form.
Defaults:company.settings.form.authentication=
Set this to false if users cannot be deleted.
Defaults:users.delete=true
Set this to true when you want the validation to allow for creation of numeric screen names.
Defaults:users.screen.name.allow.numeric=true
Set this to true to always autogenerate user screen names even if the user gives a specific user screen name. If this is set to true, the LDAP importer will fetch users by their email address even if the property "company.security.auth.type" is set to screenName.
Defaults:users.screen.name.always.autogenerate=false
Input a class name that implements com.liferay.portal.security.auth.ScreenNameGenerator. This class will be called to generate user screen names.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:users.screen.name.generator=com.liferay.portal.security.auth.DefaultScreenNameGenerator
Input a list of special characters that are allowed in screen names. This property is read by the default screen name validator implementation. Custom implementations need to also use this property to account for screen names with special characters.
Defaults:users.screen.name.special.characters=-._
Input a class name that implements com.liferay.portal.security.auth.ScreenNameValidator. This class will be called to validate user screen names.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:users.screen.name.validator=com.liferay.portal.security.auth.DefaultScreenNameValidator users.screen.name.validator=com.liferay.portal.security.auth.LiberalScreenNameValidator
Set this to false if you want to be able to create users without an email address. An email address will be automatically assigned to a user based on the property "users.email.address.auto.suffix".
Defaults:users.email.address.required=true
Set the suffix of the email address that will be automatically generated for a user that does not have an email address. This property is not used unless the property "users.email.address.required" is set to false. The autogenerated email address will be the user ID plus the specified suffix.
Defaults:users.email.address.auto.suffix=@no-emailaddress.com
Input a class name that implements com.liferay.portal.security.auth.EmailAddressGenerator. This class will be called to generate an email address for a user that does not specify an email address. This class will only be used if the property "users.email.address.required" is set to false.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:users.email.address.generator=com.liferay.portal.security.auth.DefaultEmailAddressGenerator
Input a class name that implements com.liferay.portal.security.auth.EmailAddressValidator. This class will be called to validate user email addresses.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:users.email.address.validator=com.liferay.portal.security.auth.DefaultEmailAddressValidator users.email.address.validator=com.liferay.portal.security.auth.LiberalEmailAddressValidator
Input a class name that implements com.liferay.portal.security.auth.FullNameGenerator. This class will be called to generate a full name from the user's first, middle, and last names.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:users.full.name.generator=com.liferay.portal.security.auth.DefaultFullNameGenerator users.full.name.generator=com.liferay.portal.security.auth.FamilyNameFirstFullNameGenerator
Input a class name that implements com.liferay.portal.security.auth.FullNameValidator. This class will be called to validate the user's first, middle, and last names.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:users.full.name.validator=com.liferay.portal.security.auth.DefaultFullNameValidator
Set this to true to record last login information for a user.
Defaults:users.update.last.login=true
Set the allowed user list views.
Defaults:users.list.views=tree,flat-user-groups
Set this to true to enable reminder queries that are used to help reset a user's password.
Defaults:users.reminder.queries.enabled=true users.reminder.queries.custom.question.enabled=true
Set this to false to enable users without a reminder query to reset their password.
Defaults:users.reminder.queries.required=false
Input a list of questions used for reminder queries.
Defaults:users.reminder.queries.questions=what-is-your-primary-frequent-flyer-number,what-is-your-library-card-number,what-was-your-first-phone-number,what-was-your-first-teacher's-name,what-is-your-father's-middle-name
Set this to true to search users from the index. Set this to false to search users from the database. Note that setting this to false will disable the ability to search users based on Expando attributes. This setting is not used unless the indexer is enabled through the control panel.
Defaults:users.search.with.index=true
Set a property with the prefix "users.update.user.name." and a suffix with the class name that should be updated whenever a user's name has changed.
Defaults:users.update.user.name.com.liferay.message.boards.model.MBMessage=true
Input a list of user attributes that will be included when exporting users to a CSV file. You can include custom fields by adding the prefix "expando:" to the attribute name.
Defaults:users.export.csv.fields=fullName,emailAddress
Set the friendly URL to a user's profile page. If none is specified, the portal will query the user's first public page at runtime.
The following variables can be used: ${liferay:screenName} and ${liferay:userId}.
Examples:users.profile.friendly.url=/web/${liferay:screenName}/profile
Set the maximum number of organizations, roles, and user groups to display for each user in the user's administration search container.
Defaults:users.admin.organization.column.limit=50 users.admin.role.column.limit=50 users.admin.user.group.column.limit=50
Input a list of comma delimited system group names that will exist in addition to the standard system groups. When the server starts, the portal checks to ensure all system groups exist. Any missing system group will be created by the portal.
Defaults:system.groups=
Input a list of comma delimited system role names that will exist in addition to the standard system roles. When the server starts, the portal checks to ensure all system roles exist. Any missing system role will be created by the portal.
The standard system roles are: Administrator, Guest, Power User, and User. These roles cannot be removed or renamed.
Defaults:system.roles=
Set the description of the Administrator system role.
Defaults:system.role.Administrator.description=Administrators are super users who can do anything.
Set the description of the Guest system role.
Defaults:system.role.Guest.description=Unauthenticated users always have this role.
Set the description of the Owner system role.
Defaults:system.role.Owner.description=This is an implied role with respect to the objects users create.
Set the description of the Power User system role.
Defaults:system.role.Power.User.description=Power Users have their own personal site.
Set the description of the User system role.
Defaults:system.role.User.description=Authenticated users should be assigned this role.
Input a list of comma delimited system organization role names that will exist in addition to the standard system organization roles. When the server starts, the portal checks to ensure all system organization roles exist. Any missing system organization role will be created by the portal.
The standard system organization roles are: Organization Administrator, Organization Member, and Organization Owner. These roles cannot be removed or renamed.
Defaults:system.organization.roles=
Set the description of the Organization Administrator system organization role.
Defaults:system.organization.role.Organization.Administrator.description=Organization Administrators are super users of their organization but cannot make other users into Organization Administrators.
Set the description of the Organization Member system organization role.
Defaults:system.organization.role.Organization.User.description=All users who belong to an organization have this role within that organization.
Set the description of the Organization Owner system organization role.
Defaults:system.organization.role.Organization.Owner.description=Organization Owners are super users of their organization and can assign organization roles to users.
Input a list of comma delimited system site role names that will exist in addition to the standard system site roles. When the server starts, the portal checks to ensure all system site roles exist. Any missing system site role will be created by the portal.
The standard system site roles are: Site Administrator, Site Member, and Site Owner. These roles cannot be removed or renamed.
Defaults:system.site.roles=
Set the description of the Site Administrator system site role.
Defaults:system.site.role.Site.Administrator.description=Site Administrators are super users of their site but cannot make other users into Site Administrators.
Set the description of the Site Member system site role.
Defaults:system.site.role.Site.Member.description=All users who belong to a site have this role within that site.
Set the description of the Site Owner system site role.
Defaults:system.site.role.Site.Owner.description=Site Owners are super users of their site and can assign site roles to users.
Omniadmin users can administer the portal's core functionality: gc, shutdown, etc. Omniadmin users must belong to the default company.
Multiple portal instances might be deployed on one application server, but not all of the administrators should have access to this core functionality. Input the IDs of users who are omniadmin users.
Leave this field blank if users who belong to the right company and have the Administrator role are allowed to administer the portal's core functionality.
Defaults:omniadmin.users=
Set this to true if all users are required to agree to the terms of use.
Defaults:terms.of.use.required=true
Input a list of group class names that will trigger a complex SQL query to delegate filtering in the database tier. A group class name corresponds to the className column in the Group_ table. Filtering in memory at the application tier after a simple SQL query can be much better on performance.
Defaults:groups.complex.sql.class.names=com.liferay.portal.kernel.model.User
Specify subtypes of roles if you want to be able to search for roles using your custom criteria.
Defaults:roles.site.subtypes= roles.organization.subtypes= roles.regular.subtypes=
Set this to true when you want the validation to allow for creation of roles with numeric names.
Defaults:roles.name.allow.numeric=false
Set this property to false if you want any administrator of an organization to be able to assign any user to that organization. By default, he will only be able to assign the users of the organizations and suborganizations that he can manage.
Defaults:organizations.assignment.strict=true
Set this property to true if you want users to only be members of the organizations to which they are assigned explicitly. By default, they will also become implicit members of the ancestors of those organizations. For example, if a user belongs to Liferay Spain, he will implicitly be a member of the ancestors Liferay Europe and Liferay Global and will be able to access their private pages.
Defaults:organizations.membership.strict=false
Set this to true to search organizations from the index. Set this to false to search organizations from the database. Note that setting this to false will disable the ability to search organizations based on Expando attributes. This setting is not used unless the indexer is enabled through the control panel.
Defaults:organizations.search.with.index=true
Set this to true when you want the validation to allow for creation of user groups with numeric names.
Defaults:user.groups.name.allow.numeric=false
Set this to true to enable the legacy behavior of copying user group pages to user personal sites. This behavior is deprecated and is likely to be removed and replaced with a different scheme in future releases.
Defaults:user.groups.copy.layouts.to.user.personal.site=false
Set this to true to search user groups from the index. Set this to false to search user groups from the database. Note that setting this to false will disable the ability to search user groups based on Expando attributes. This setting is not used unless the indexer is enabled through the control panel.
Defaults:user.groups.search.with.index=true
Set this to true to verify membership policies every time the server starts or when a membership policy hook is deployed.
Defaults:membership.policy.auto.verify=false
Input a class name that implements com.liferay.portal.security.membershippolicy.OrganizationMembershipPolicy. This class will be called whenever a user is added or removed from an organization or when a user is assigned or unassigned to a organization role or when a new organization is added or updated.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:membership.policy.organizations=com.liferay.portal.security.membershippolicy.DummyOrganizationMembershipPolicy
Input a class name that implements com.liferay.portal.security.membershippolicy.RoleMembershipPolicy. This class will be called whenever a user is assign or unassigned from a regular role or when a new role is added or updated.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:membership.policy.roles=com.liferay.portal.security.membershippolicy.DummyRoleMembershipPolicy
Input a class name that implements com.liferay.portal.security.membershippolicy.SiteMembershipPolicy. This class will be called whenever a user is added or removed from a site or when a user is assigned or unassigned to a site role or a new site is added or updated.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:membership.policy.sites=com.liferay.portal.security.membershippolicy.DummySiteMembershipPolicy membership.policy.sites=com.liferay.portal.security.membershippolicy.DefaultSiteMembershipPolicy
Input a class name that implements com.liferay.portal.security.membershippolicy.UserGroupsMembershipPolicy. This class will be called whenever a user is added or removed from a user group or a new user group is added or updated.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:membership.policy.user.groups=com.liferay.portal.security.membershippolicy.DummyUserGroupMembershipPolicy
Specify the available locales. Messages corresponding to a specific language are specified in properties files with file names matching that of content/Language_*.properties. These values can also be overridden in properties files with file names matching that of content/Language-ext_*.properties. Use a comma to separate each entry.
If there is more than one locale for the same language, the first one in the list will be used when a translation is requested in another locale of the same language but a translated value cannot be found. For example, if there are two locales such us pt_BR and pt_PT (in this order), any key not found in pt_PT will be looked for in pt_BR.
Language codes follow the ISO 639-1 standard. Content for each locale must be UTF-8 encoded.
See the following links, which specify language and country codes:
http://www.loc.gov/standards/iso639-2/php/code_list.php http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.htmlDefaults:
locales=ar_SA,eu_ES,bg_BG,ca_AD,ca_ES,zh_CN,zh_TW,hr_HR,cs_CZ,da_DK,nl_NL,nl_BE,en_US,en_GB,en_AU,et_EE,fi_FI,fr_FR,fr_CA,gl_ES,de_DE,el_GR,iw_IL,hi_IN,hu_HU,in_ID,it_IT,ja_JP,ko_KR,lo_LA,lt_LT,nb_NO,fa_IR,pl_PL,pt_BR,pt_PT,ro_RO,ru_RU,sr_RS,sr_RS_latin,sl_SI,sk_SK,es_ES,sv_SE,th_TH,tr_TR,uk_UA,vi_VN
Specify the locales that are in beta. Go to http://translate.liferay.com to participate in the translation efforts.
Defaults:locales.beta=ar_SA,eu_ES,bg_BG,ca_AD,zh_TW,hr_HR,cs_CZ,da_DK,nl_BE,en_GB,en_AU,et_EE,gl_ES,el_GR,hi_IN,in_ID,it_IT,ko_KR,lo_LA,lt_LT,nb_NO,fa_IR,pl_PL,pt_PT,ro_RO,ru_RU,sr_RS,sr_RS_latin,sl_SI,sk_SK,sv_SE,tr_TR,uk_UA,vi_VN
Specify the locales that are enabled by default.
Defaults:locales.enabled=ca_ES,zh_CN,nl_NL,en_US,fi_FI,fr_FR,de_DE,iw_IL,hu_HU,ja_JP,pt_BR,es_ES
Specify the collator rules to be used by the CollatorUtil. These rules, if set, are provided to a RulesBasedCollator for text sorting and are only configurable by locale. A file can also be used by prefixing "file\:" to a path on the file system. Using a file means property escaping can be avoided.
See https://issues.liferay.com/browse/LPS-73600 for more information.
Examples:collator.rules[en_US]=
Set this to true if unauthenticated users get their preferred language from the Accept-Language header. Set this to false if unauthenticated users get their preferred language from their company.
Defaults:locale.default.request=false
Set this to 0 if the locale is not automatically prepended to a URL. This means that each URL could potentially point to many different languages. For example, the URL http://localhost:8080/web/guest/home could then be viewed by users in many different languages.
Set this to 1 if the locale is automatically prepended to a URL when the requested locale is not the default locale. This means that each URL points to just one language. For example, the URL http://localhost:8080/web/guest/home would point to the default language. The URL http://localhost:8080/zh/web/guest/home and http://localhost:8080/zh_CN/web/guest/home would both point to the Chinese language.
In cases where the prepended locale is "zh" and not the complete locale "zh_CN", then the full locale returned will be based on the order in which the locales appear in the property "locales". If "zh_CN" appears before "zh_TW", then "zh" will be a short hand for "zh_TW".
The default language is set in system.properties with the properties "user.country" and "user.language".
Set this to 2 if the locale is automatically prepended to every URL. This means that each URL points to just one language.
Set this to 3 if the locale is automatically prepended to a URL when the requested locale is not the default user locale. In the case of guest users, the behavior is the same as having a value of 1.
Note that each language requires an entry in the property "locales" and a servlet mapping in web.xml for the I18n Servlet.
Defaults:locale.prepend.friendly.url.style=3
Set this to false to return an HTTP 404 status code and page if the requested URL includes a locale that is not available among the locales set in the "locales" and "locales.beta" properties.
For example, if Spanish is not one of the available locales and http://localhost:8080/es/web/guest is requested, then a 404 error code and page is returned.
This can improve SEO since it avoids duplicated pages, if in the installation, there are a set of definded locales available.
Defaults:locale.use.default.if.not.available=false
Set this to true to disable language translations. When a translation is requested for the key "first-name", instead of returning "First Name" in English (or in its relevant locale), it will return "first-name".
Defaults:translations.disabled=false
Specify the available time zones. The specified IDs must match those from the class java.util.TimeZone.
Defaults:time.zones=\ Pacific/Midway,\ Pacific/Honolulu,\ America/Anchorage,\ America/Los_Angeles,\ America/Phoenix,\ America/Denver,\ America/Chicago,\ America/New_York,\ America/Caracas,\ America/Puerto_Rico,\ America/St_Johns,\ America/Sao_Paulo,\ America/Noronha,\ Atlantic/Azores,\ UTC,\ Europe/Lisbon,\ Europe/Paris,\ Europe/Istanbul,\ Asia/Jerusalem,\ Asia/Baghdad,\ Asia/Tehran,\ Asia/Dubai,\ Asia/Kabul,\ Asia/Karachi,\ Asia/Calcutta,\ Asia/Katmandu,\ Asia/Dhaka,\ Asia/Rangoon,\ Asia/Saigon,\ Asia/Shanghai,\ Asia/Tokyo,\ Asia/Seoul,\ Australia/Perth,\ Australia/Eucla,\ Australia/Darwin,\ Australia/Sydney,\ Australia/Lord_Howe,\ Pacific/Guadalcanal,\ Pacific/Auckland,\ Pacific/Enderbury,\ Pacific/Kiritimati
Set this to false if the system does not allow users to modify the look and feel.
Defaults:look.and.feel.modifiable=true
Set the default layout template ID.
Defaults:default.layout.template.id=2_columns_ii
Set the default portlet decorator CSS class.
Defaults:default.portlet.decorator.css.class=decorate
Set the default portlet decorator ID.
Defaults:default.portlet.decorator.id=decorate
Set the default theme ID for regular themes.
Defaults:default.regular.theme.id=classic_WAR_classictheme
Set the default color scheme ID for regular themes.
Defaults:default.regular.color.scheme.id=01
Set this to true if you want a change in the theme selection of the public or private group to automatically be applied to the other (i.e. if public and private group themes should always be the same).
Defaults:theme.sync.on.group=false
Portlets that have been configured to use private request attributes in liferay-portlet.xml may still want to share some request attributes. This property allows you to configure which request attributes will be shared. Set a comma delimited list of attribute names that will be shared when the attribute name starts with one of the specified attribute names. For example, if you set the value to "hello_,world_", then all attribute names that start with "hello_" or "world_" will be shared.
Defaults:request.shared.attributes=LIFERAY_SHARED_
Set a comma delimited list of Java packages that have to be unwrapped by servlet requests managing. See LPS-67793 for more information.
Defaults:request.unwrap.packages=com.liferay.,com.ibm.ws.cache.servlet.
Set the maximum number of key value pairs that can be stored in the session via SessionClicks. See LPS-20096 for more information.
Defaults:session.clicks.max.allowed.values=1024
Set the maximum size of key and value terms that can be stored in the session via SessionClicks. See LPS-20096 for more information.
Defaults:session.clicks.max.size.terms=1024
Specify the delimiter for parsing compound session IDs.
This addresses an issue with Weblogic and all application servers where the application server appends a unique JVM code to the session ID. See LPS-18587.
Set a blank delimiter for the portal to attempt to detect a delimiter based on the application server.
Defaults:session.id.delimiter= session.id.weblogic.delimiter=!
Specify the maximum number of sessions allowed. A value of 0 or less than 0 means there is no limit. A value greater than 0 limits the number of sessions by invalidating newer sessions.
This property is not used unless the session max allowed filter is enabled.
Defaults:session.max.allowed=0
Specify the number of minutes before a session expires. This value is always overridden by the value set in web.xml.
Defaults:session.timeout=30
Specify the number of minutes before a warning is sent to the user informing the user of the session expiration. Specify 0 to disable any warnings.
Defaults:session.timeout.warning=1
Set the auto-extend mode to true to avoid having to ask the user whether to extend the session or not. Instead, it will be automatically extended. The purpose of this mode is to keep the session open as long as the user's browser is open with a portal page loaded. It is recommended to use this setting along with a smaller "session.timeout", such as 5 minutes, for better performance.
Defaults:session.timeout.auto.extend=false
When the property "session.timeout.auto.extend" is set to true, set the number of seconds between when the extend process is launched and the actual expiration of the session.
Defaults:session.timeout.auto.extend.offset=0
Set this to true if the user is redirected to the default page when the session expires.
Defaults:session.timeout.redirect.on.expire=false
Portlets that have been configured to use private session attributes in liferay-portlet.xml may still want to share some session attributes. This property allows you to configure which session attributes will be shared. Set a comma delimited list of attribute names that will be shared when the attribute name starts with one of the specified attribute names. For example, if you set the value to "hello_,world_", then all attribute names that start with "hello_" or "world_" will be shared.
Note that this property is used to specify the sharing of session attributes from the portal to the portlet. This is not used to specify session sharing between portlet WARs or from the portlet to the portal.
Defaults:session.shared.attributes=COMPANY_,LIFERAY_SHARED_,org.apache.struts.action.LOCALE,PORTLET_RENDER_PARAMETERS_,PUBLIC_RENDER_PARAMETERS_POOL_,USER_
Explicitly exclude attributes that are shared from the portal to portlets.
Defaults:session.shared.attributes.excludes=USER_PASSWORD
Set this to true to store the user's password in the session.
Defaults:session.store.password=false
Set this to false to disable all persistent cookies. Features like automatically logging in will not work.
Defaults:session.enable.persistent.cookies=true
Set this to true to enable sessions when cookies are disabled. See LEP-4787. This behavior is configurable because enabling it can break certain setups.
Defaults:session.enable.url.with.session.id=false
The login process sets several cookies if persistent cookies are enabled. Set this property to set the domain of those cookies.
Examples:session.cookie.domain=
Set this to true to use the full hostname for cookie domain values. By default the domain is trimmed to use only the root domain to allow cross domain logins.
Defaults:session.cookie.use.full.hostname=false session.cookie.use.full.hostname[tomcat]=true
Set this to true to invalidate the session when a user logs into the portal. This helps prevent phishing. Set this to false if you need the guest user and the authenticated user to have the same session.
Set this to false if the property "company.security.auth.requires.https" is set to true and you want to maintain the same credentials across HTTP and HTTPS sessions.
Defaults:session.enable.phishing.protection=true
Set a comma delimited list of attribute names that will be copied to the new session when the property "session.enable.phishing.protection" is set to true.
Defaults:session.phishing.protected.attributes=CAS_LOGIN,HTTPS_INITIAL,LAST_PATH,OPEN_ID_CONNECT_SESSION
Set this to true to test whether users have cookie support before allowing them to sign in.
Defaults:session.test.cookie.support=true
Set this to true to allow com.liferay.portal.kernel.servlet.SerializableSessionAttributeListener to test if an added session variable is serializable. Unserializable values stored into the session will cause a session to not replicate if session replication was enabled by the application server.
Defaults:session.verify.serializable.attribute=true
Set this to true to disable sessions. Doing this will use cookies to remember the user across requests. This is useful if you want to scale very large sites where the user may be sent to a different server for each request. The drawback to this approach is that you must not rely on the API for sessions provided by the servlet and portlet specs.
This feature is only available for Tomcat and requires that you set Tomcat's Manager class to "com.liferay.support.tomcat.session.SessionLessManagerBase".
Setting this to true will forcibly set "layout.ajax.render.enable" to false since ajax rendering requires sessions to be enabled.
Defaults:session.disabled=false
Input a list of comma delimited class names that extend com.liferay.portal.struts.SessionAction. These classes will run at the specified event.
Servlet Session Create Event
Defaults:servlet.session.create.events=com.liferay.portal.events.SessionCreateAction
Servlet Session Destroy Event
Defaults:servlet.session.destroy.events=com.liferay.portal.events.SessionDestroyAction,com.liferay.portal.events.ChannelSessionDestroyAction
Set this to true to track user clicks in memory for the duration of a user's session. Setting this to true allows you to view all live sessions in the Admin portlet.
Defaults:session.tracker.memory.enabled=true
Set this to true to track user clicks in the database after a user's session is invalidated. Setting this to true allows you to generate usage reports from the database. Use this cautiously because this will store a lot of usage data.
Defaults:session.tracker.persistence.enabled=false
Set this to true to convert the tracked paths to friendly URLs.
Defaults:session.tracker.friendly.paths.enabled=false
Enter a list of comma delimited paths that should not be tracked.
Defaults:session.tracker.ignore.paths=\ /portal/render_portlet,\ \ /document_library/get_file
Set this to false to disable JAAS security checks. Disabling JAAS speeds up login. JAAS must be disabled if administrators are to be able to impersonate other users.
Defaults:portal.jaas.enable=false
JAAS can authenticate users based on their email address, screen name, user ID, or login as determined by the property "company.security.auth.type".
Defaults:portal.jaas.auth.type=userIdExamples:
portal.jaas.auth.type=emailAddress portal.jaas.auth.type=screenName portal.jaas.auth.type=login
By default, com.liferay.portal.security.jaas.PortalLoginModule loads the correct JAAS login module based on what application server or servlet container the portal is deployed on. Set a JAAS implementation class to override this behavior.
Examples:portal.jaas.impl=
Some JAAS login modules only work with a plain text password. Set this property to true to pass plain text passwords to JAAS.
Defaults:portal.jaas.plain.password=false
The JAAS process may pass in an encrypted password and the authentication will only succeed if there is an exact match. Set this property to false to relax that behavior so the user can input an unencrypted password.
Defaults:portal.jaas.strict.password=false
Set this to true to enable administrators to impersonate other users.
Defaults:portal.impersonation.enable=true
This sets the default impersonation URL of the portal. This property is not used if the company has a home URL set.
Defaults:portal.impersonation.default.url=/web/guest
Set the configuration values for the JNDI context. Any property prefixed with "jndi.environment." will be passed to the JNDI context as an environment variable. The valid values are those specified in javax.naming.Context.
Examples:jndi.environment.java.naming.security.credentials= jndi.environment.java.naming.security.principal=
Set this property to "default" to use the default security manager configured by the application server. A security manager will not be used if the application server did not configure one.
Set this property to "liferay" to use Liferay's security manager if the application server has not configured a security manager.
Defaults:portal.security.manager.strategy=default
Set the PACL policy checker to use for checking a security manager permission.
Defaults:portal.security.manager.pacl.policy.checker[com.liferay.portal.kernel.security.pacl.permission.PortalHookPermission]=com.liferay.portal.security.pacl.checker.PortalHookChecker portal.security.manager.pacl.policy.checker[com.liferay.portal.kernel.security.pacl.permission.PortalMessageBusPermission]=com.liferay.portal.security.pacl.checker.PortalMessageBusChecker portal.security.manager.pacl.policy.checker[com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission]=com.liferay.portal.security.pacl.checker.PortalRuntimeChecker portal.security.manager.pacl.policy.checker[com.liferay.portal.kernel.security.pacl.permission.PortalServicePermission]=com.liferay.portal.security.pacl.checker.PortalServiceChecker portal.security.manager.pacl.policy.checker[java.awt.AWTPermission]=com.liferay.portal.security.pacl.checker.AWTChecker portal.security.manager.pacl.policy.checker[java.io.FilePermission]=com.liferay.portal.security.pacl.checker.FileChecker portal.security.manager.pacl.policy.checker[java.io.SerializablePermission]=com.liferay.portal.security.pacl.checker.DefaultRejectChecker portal.security.manager.pacl.policy.checker[java.lang.RuntimePermission]=com.liferay.portal.security.pacl.checker.RuntimeChecker portal.security.manager.pacl.policy.checker[java.lang.reflect.ReflectPermission]=com.liferay.portal.security.pacl.checker.ReflectChecker portal.security.manager.pacl.policy.checker[java.net.NetPermission]=com.liferay.portal.security.pacl.checker.NetChecker portal.security.manager.pacl.policy.checker[java.net.SocketPermission]=com.liferay.portal.security.pacl.checker.SocketChecker portal.security.manager.pacl.policy.checker[java.security.SecurityPermission]=com.liferay.portal.security.pacl.checker.SecurityChecker portal.security.manager.pacl.policy.checker[java.sql.SQLPermission]=com.liferay.portal.security.pacl.checker.DefaultRejectChecker portal.security.manager.pacl.policy.checker[java.util.PropertyPermission]=com.liferay.portal.security.pacl.checker.PropertyChecker portal.security.manager.pacl.policy.checker[javax.management.MBeanPermission]=com.liferay.portal.security.pacl.checker.MBeanChecker portal.security.manager.pacl.policy.checker[javax.management.MBeanServerPermission]=com.liferay.portal.security.pacl.checker.MBeanChecker portal.security.manager.pacl.policy.checker[javax.management.MBeanTrustPermission]=com.liferay.portal.security.pacl.checker.MBeanChecker portal.security.manager.pacl.policy.checker[javax.management.remote.SubjectDelegationPermission]=com.liferay.portal.security.pacl.checker.MBeanChecker portal.security.manager.pacl.policy.checker[javax.net.ssl.SSLPermission]=com.liferay.portal.security.pacl.checker.DefaultRejectCheckerExamples:
portal.security.manager.pacl.policy.checker[java.lang.management.ManagementPermission]=com.liferay.portal.security.pacl.checker.DefaultAcceptChecker portal.security.manager.pacl.policy.checker[java.security.AllPermission]= portal.security.manager.pacl.policy.checker[java.security.UnresolvedPermission]= portal.security.manager.pacl.policy.checker[java.util.logging.LoggingPermission]=com.liferay.portal.security.pacl.checker.DefaultAcceptChecker portal.security.manager.pacl.policy.checker[javax.security.auth.AuthPermission]=com.liferay.portal.security.pacl.checker.DefaultAcceptChecker portal.security.manager.pacl.policy.checker[javax.security.auth.PrivateCredentialPermission]=com.liferay.portal.security.pacl.checker.DefaultAcceptChecker portal.security.manager.pacl.policy.checker[javax.security.auth.kerberos.DelegationPermission]=com.liferay.portal.security.pacl.checker.DefaultAcceptChecker portal.security.manager.pacl.policy.checker[javax.security.auth.kerberos.ServicePermission]=com.liferay.portal.security.pacl.checker.DefaultAcceptChecker portal.security.manager.pacl.policy.checker[javax.sound.sampled.AudioPermission]=com.liferay.portal.security.pacl.checker.DefaultAcceptChecker
Set the default read paths used by com.liferay.portal.security.pacl.checker.FileChecker.
Defaults:portal.security.manager.file.checker.default.read.paths[glassfish]=\ ${liferay.web.portal.dir}html/common/-,\ ${liferay.web.portal.dir}html/taglib/-Defaults:
portal.security.manager.file.checker.default.read.paths[jetty]=\ ${liferay.web.portal.dir},\ ${liferay.web.portal.dir}html/common/-,\ ${liferay.web.portal.dir}html/taglib/-Defaults:
portal.security.manager.file.checker.default.read.paths[resin]=\ ${resin.home}ext-lib/-,\ ${liferay.web.portal.dir},\ ${liferay.web.portal.dir}html/common/-,\ ${liferay.web.portal.dir}html/taglib/-Defaults:
portal.security.manager.file.checker.default.read.paths[weblogic]=\ ${auto.deploy.installed.dir}/${plugin.servlet.context.name}/-,\ ${auto.deploy.installed.dir}/ROOT/html/common/-,\ ${auto.deploy.installed.dir}/ROOT/html/taglib/-Defaults:
portal.security.manager.file.checker.default.read.paths[websphere]=\ ${liferay.web.portal.dir}html/common/-,\ ${liferay.web.portal.dir}html/taglib/-,\ ${liferay.web.portal.dir}WEB-INF/classes,\ ${liferay.web.portal.dir}WEB-INF/classes/html/common/-,\ ${liferay.web.portal.dir}WEB-INF/classes/html/taglib/-
Set the list of classes that will be preloaded by the PreloadClassloader to be made available to plugins when the portal security manager is enabled. These classes will be exempt from the security checks that result from class loading.
Defaults:portal.security.manager.preload.classloader.classes=\ org.aopalliance.aop.Advice,\ org.springframework.aop.Advisor,\ org.springframework.aop.SpringProxy,\ org.springframework.aop.TargetSource,\ org.springframework.aop.framework.Advised,\ org.springframework.aop.framework.AopConfigException,\ org.springframework.jmx.export.MBeanExporter
You can write your own class that implements com.liferay.portal.security.ldap.AttributesTransformer to transform the LDAP attributes before a user or group is imported to the LDAP store.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:ldap.attrs.transformer.impl=com.liferay.portal.security.ldap.DefaultAttributesTransformer
Set this to true to require a password when using basic authentication. Only set this to false if additional security measures are in place to ensure users have been properly authenticated.
Defaults:basic.auth.password.required=true
See http://jcifs.samba.org/src/docs/ntlmhttpauth.html for more available properties.
Examples:jcifs.netbios.cachePolicy=30 jcifs.smb.client.soTimeout=35000
open.id.providers=yahooExamples:
open.id.ax.schema[default]=email,firstname,lastname open.id.ax.type.email[default]=http://schema.openid.net/contact/email open.id.ax.type.firstname[default]=http://schema.openid.net/namePerson/first open.id.ax.type.lastname[default]=http://schema.openid.net/namePerson/lastExamples:
open.id.ax.schema[yahoo]=email,fullname open.id.ax.type.email[yahoo]=http://axschema.org/contact/email open.id.ax.type.fullname[yahoo]=http://axschema.org/namePerson open.id.url[yahoo]=open.login.yahooapis.com
Set this to true to automatically import users from LDAP if they do not exist in the portal. The property "auto.login.hooks" must contain a reference to the class com.liferay.portal.security.auto.login.request.header.RequestHeaderAutoLogin to enable request header authentication.
Examples:request.header.auth.import.from.ldap=false
Input a list of comma delimited IPs that can automatically authenticate via request headers. Input a blank list to allow any IP to automatically authenticate via request headers. SERVER_IP will be replaced with the IP of the host server.
Examples:request.header.auth.hosts.allowed=
Input a list of comma delimited init parameters that should never be set in the request header by the header filter.
Defaults:request.header.ignore.init.params=url-regex-ignore-pattern,url-regex-pattern
Set this to true to enable user UUID store. User UUID store is deprecated and will be removed in a future release.
Defaults:auth.user.uuid.store.enabled=false
Input a list of comma delimited class names that implement com.liferay.portal.security.auth.Authenticator. These classes will run before or after the portal authentication begins.
The Authenticator class defines the constant values that should be used as return codes from the classes implementing the interface. If authentication is successful, return SUCCESS; if the user exists but the passwords do not match, return FAILURE; and if the user does not exist on the system, return DNE.
In the pre-authentication pipeline, if you want to skip password checking by the internal portal authentication, the authenticator should return SKIP_LIFERAY_CHECK. This is needed if passwords are not imported to the portal.
Constants in Authenticator:
public static final int DNE = 0; public static final int FAILURE = -1; public static final int SKIP_LIFERAY_CHECK = 2; public static final int SUCCESS = 1;
In case you have several classes in the authentication pipeline, all of them have to return SKIP_LIFERAY_CHECK or SUCCESS if you want the user to be able to login. If one of the authenticators returns DNE OR FAILURE, the login fails.
Under certain circumstances, you might want to keep the information in the portal database in sync with an external database or an LDAP server. This can easily be achieved by implementing a class via LDAPAuth that updates the information stored in the portal user database whenever a user signs in.
Each portal instance can be configured at run time to either authenticate based on user IDs or email addresses. See the Admin portlet for more information.
Available authenticators are:
com.liferay.portal.security.auth.LDAPAuth
See the LDAP properties to configure the behavior of the LDAPAuth class.
This property is deprecated and only provided for documentation purposes.
Examples:auth.pipeline.pre=com.liferay.portal.security.auth.LDAPAuth auth.pipeline.post=
Set this to true to enable password checking by the internal portal authentication. If set to false, you're essentially delegating password checking to the authenticators configured in "auth.pipeline.pre" and "auth.pipeline.post" settings.
Defaults:auth.pipeline.enable.liferay.check=true
Input a list of comma delimited class names that implement com.liferay.portal.security.auth.AuthFailure. These classes will run when a user has a failed login or when a user has reached the maximum number of failed logins.
This property is deprecated and only provided for documentation purposes.
Examples:auth.failure=com.liferay.portal.security.auth.LoginFailure auth.max.failures=com.liferay.portal.security.auth.LoginMaxFailures
Set the following to true if users are allowed to have simultaneous logins from different sessions. This property is not used unless the property "live.users.enabled" is set to true.
Defaults:auth.simultaneous.logins=true
Set this to true if users are forwarded to the last visited path upon successful login. If set to false, users will be forwarded to their default layout page.
Defaults:auth.forward.by.last.path=true
The login page reads a redirect by a parameter named "redirect". If this property is set to true, then users will be redirected to the given redirect path upon successful login. If the user does not have permission to view that page, then the rule set by the property "auth.forward.by.last.path" will apply.
You can set the redirect manually from another application by appending the "redirect" parameter in a url that looks like this: /c/portal/login?redirect=%2Fgroup%2Femployees%2Fcalendar. This url will redirect the user to the path "/group/employees/calendar" upon successful login.
Defaults:auth.forward.by.redirect=true
Enter a list of comma delimited paths that can be considered part of the last visited path.
Defaults:auth.forward.last.paths=/document_library/get_file
Enter a URL that will be used to login portal users whenever needed. By default, the portal's login page is used.
Examples:auth.login.url=/web/guest/home
Set this to true to prompt a guest user to login when attempting to access a protected page resource in the portal. By setting this value to false, the portal will inform all users that a requested resource is not found if they have no entitlements to view the resource. The portal will not prompt for login even if the user is a guest user. This behavior complies with OWASP best practices.
Defaults:auth.login.prompt.enabled=true
Enter a friendly URL of a page that will be used to login portal users whenever the user is navigating a site and authentication is needed. By default, the portal's login page or the URL set in the property "auth.login.url" is used.
Defaults:auth.login.site.url=/login
Enter the name of the login portlet used in a page identified by the URL of the previous property (if one has been set). This will allow the portlet to have access to the redirect parameter and forward the user to the page he was trying to access, when necessary. You should leave the default value unless you have your own custom login portlet.
Defaults:auth.login.portlet.name=com_liferay_login_web_portlet_LoginPortlet
Set this to true to disable any users from logging into the portal. Preventing users from logging into the portal provides a read-only version of the portal that can be used to minimize site outages during upgrades.
Defaults:auth.login.disabled=false auth.login.disabled.path=/portal/login_disabled
Enter a list of comma delimited paths that do not require authentication.
Defaults:auth.public.paths=\ /activities/rss,\ \ /asset/get_categories,\ \ /document_library/find_file_entry,\ /document_library/find_folder,\ /document_library/get_file,\ \ /dynamic_data_lists/find_record,\ \ /dynamic_data_mapping/render_structure_field,\ \ /flags/edit_flag,\ \ /iframe/proxy,\ \ /image_gallery_display/find_folder,\ /image_gallery_display/find_image,\ \ /login/facebook_connect_oauth,\ \ /message_boards/find_category,\ /message_boards/find_message,\ /message_boards/find_thread,\ /message_boards/get_message_attachment,\ /message_boards/rss,\ \ /portal/comment/edit_discussion,\ /portal/comment/get_comments,\ /portal/emoticons,\ /portal/expire_session,\ /portal/extend_session,\ /portal/extend_session_confirm,\ /portal/json_service,\ /portal/license,\ /portal/logout,\ /portal/open_id_request,\ /portal/open_id_response,\ /portal/portlet_url,\ /portal/robots,\ /portal/session_click,\ /portal/session_tree_js_click,\ /portal/sitemap,\ /portal/status
Input a list of comma delimited class names that implement com.liferay.portal.security.auth.AuthVerifier. These classes are used to verify whether a request is authenticated or not.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:auth.verifier.pipeline=com.liferay.portal.security.auth.verifier.basic.auth.header.BasicAuthHeaderAuthVerifier,com.liferay.portal.security.auth.verifier.DigestAuthenticationAuthVerifier,com.liferay.portal.security.auth.verifier.request.parameter.RequestParameterAuthVerifier,com.liferay.portal.security.auth.verifier.PortalSessionAuthVerifier,com.liferay.portal.security.auth.verifier.internal.tunnel.TunnelAuthVerifier
Each authentication verifier can have custom properties set via the property prefix "auth.verifier." and the authentication verifier's simple class name. All property suffixes are stripped of their prefix and passed directly to the authentication verifier. For example, the property "auth.verifier.BasicAuthHeaderAuthVerifier.hosts.allowed" is passed to BasicAuthHeaderAuthVerifier as "hosts.allowed".
The expected property suffixes are "hosts.allowed" and "urls". See the property "json.service.auth.token.hosts.allowed" for the accepted values for the property suffix "hosts.allowed".
The property suffix "urls.includes" denotes the valid URLs that apply to an authentication verifier.
The property suffix "urls.excludes" denotes URLs that will not be handled even if they match the patterns set in "urls.includes".
BasicAuthHeaderAuthVerifier
Examples:auth.verifier.BasicAuthHeaderAuthVerifier.hosts.allowed= auth.verifier.BasicAuthHeaderAuthVerifier.urls.includes=/api/*,/xmlrpc/* auth.verifier.BasicAuthHeaderAuthVerifier.urls.excludes=/api/liferay/do
DigestAuthenticationAuthVerifier
Examples:auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed= auth.verifier.DigestAuthenticationAuthVerifier.urls.includes=N/A
PortalSessionAuthVerifier
Examples:auth.verifier.PortalSessionAuthVerifier.hosts.allowed= auth.verifier.PortalSessionAuthVerifier.urls.includes=\ /api/json/*,\ /api/jsonws/*,\ /c/portal/json_service/*
RequestParameterAuthVerifier
Examples:auth.verifier.RequestParameterAuthVerifier.hosts.allowed= auth.verifier.RequestParameterAuthVerifier.urls.includes=N/A
Set this to true to enable authentication token security checks. The checks can be disabled for specific actions via the property "auth.token.ignore.actions" or for specific portlets via the init parameter "check-auth-token" in portlet.xml.
Defaults:auth.token.check.enabled=true
Set the authentication token class. This class must implement com.liferay.portal.security.auth.AuthToken. This class is used to prevent CSRF attacks. See https://issues.liferay.com/browse/LPS-8399 for more information.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:auth.token.impl=com.liferay.portal.security.auth.SessionAuthToken
Input a list of comma delimited struts actions that will not be checked for an authentication token.
Defaults:auth.token.ignore.actions=\ /asset/rss,\ \ /blogs/rss,\ /blogs/trackback,\ \ /blogs_aggregator/rss,\ \ /login/create_account,\ /login/login,\ \ /message_boards/rss,\ \ /portal/comment/get_comments
Set a list of comma delimited origins that will not be checked for an authentication token.
Examples:auth.token.ignore.origins=\ com.liferay.portal.action.JSONServiceAction:com.liferay.portlet.expando.service.ExpandoValueServiceUtil#getJSONData,\ com.liferay.portal.jsonwebservice.JSONWebServiceServiceAction:/classname/,\ com.liferay.portal.jsonwebservice.JSONWebServiceServiceAction:/user/get-user-by-email-address,\ com.liferay.portlet.asset.action.GetCategoriesAction,\ com.liferay.portlet.portletconfiguration.action.GetLookAndFeelAction
Set a list of comma delimited portlet IDs that will not be checked for an authentication token.
Defaults:auth.token.ignore.portlets=
Set the length of the authentication token. Longer auth tokens will require more CPU cycles to generate and may impact overall performance.
Defaults:auth.token.length=8
Set the shared secret that is used for requests where it is not possible to generate an authentication token (i.e. WSRP).
Examples:auth.token.shared.secret=
Input a list of comma delimited class names that implement com.liferay.portal.kernel.security.auto.login.AutoLogin. These classes will run in consecutive order for all unauthenticated users until one of them returns a valid user ID and password combination. If no valid combination is returned, then the request continues to process normally. If a valid combination is returned, then the portal will automatically login that user with the returned user ID and password combination.
For example, com.liferay.portal.security.auto.login.remember.me.RememberMeAutoLogin reads from a cookie to automatically log in a user who previously logged in while checking on the "Remember Me" box.
This interface allows deployers to easily configure the portal to work with other SSO servers. See com.liferay.portal.security.sso.cas.internal.auto.login.CASAutoLogin for an example of how to configure the portal with Yale's SSO server.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:auto.login.hooks=com.liferay.portal.security.sso.cas.internal.auto.login.CASAutoLogin,com.liferay.portal.security.sso.facebook.connect.auto.login.FacebookConnectAutoLogin,com.liferay.portal.security.sso.ntlm.auto.login.NtlmAutoLogin,com.liferay.portal.security.sso.openid.auto.login.OpenIdAutoLogin,com.liferay.portal.security.sso.opensso.auto.login.OpenSSOAutoLogin,com.liferay.portal.security.auto.login.remember.me.RememberMeAutoLogin
Set the hosts that will be ignored for auto login.
Defaults:auto.login.ignore.hosts=
Set the paths that will be ignored for auto login.
Defaults:auto.login.ignore.paths=
To use SSO with MAC, post to a URL like:
http://localhost:8080/c/portal/login?cmd=already-registered&login=&password=
Pass the MAC in the password field. Make sure the MAC gets URL encoded because it might contain characters not allowed in a URL.
SSO with MAC also requires that you set the following property in system.properties:
com.liferay.util.servlet.SessionParameters=false
See the following links:
https://issues.liferay.com/browse/LEP-1288 http://en.wikipedia.org/wiki/Message_authentication_code
Set this to true to enable SSO with MAC.
Defaults:auth.mac.allow=false
Set the algorithm to use for MAC encryption.
Defaults:auth.mac.algorithm=MD5
Set the shared key used to generate the MAC. The shared key must not be empty and it should be sufficiently long and complex to withstand a brute force attack.
Defaults:auth.mac.shared.key=
Set the following encryption algorithm to designate the password encryption algorithm to migrate from. This is only necessary if upgrading from a release prior to 6.2 or if you wish to switch password encryption algorithms when there are existing users with passwords in the portal.
Examples:passwords.encryption.algorithm.legacy=BCRYPT passwords.encryption.algorithm.legacy=MD2 passwords.encryption.algorithm.legacy=MD5 passwords.encryption.algorithm.legacy=NONE passwords.encryption.algorithm.legacy=SHA passwords.encryption.algorithm.legacy=SHA-256 passwords.encryption.algorithm.legacy=SHA-384 passwords.encryption.algorithm.legacy=SSHA passwords.encryption.algorithm.legacy=UFC-CRYPT
Set the following encryption algorithm to encrypt passwords. The default algorithm is PBKDF2WithHmacSHA1/160/128000, generating 160 bit hashes using 128,000 rounds.
It is possible to decrease the rounds value in case of slow production hardware, but be aware that 128,000 is the recommended value for 2014 by OWASP.
If set to NONE, passwords are stored in the database as plain text.
Defaults:passwords.encryption.algorithm=PBKDF2WithHmacSHA1/160/128000Examples:
passwords.encryption.algorithm=BCRYPT/10 passwords.encryption.algorithm=MD2 passwords.encryption.algorithm=MD5 passwords.encryption.algorithm=NONE passwords.encryption.algorithm=SHA passwords.encryption.algorithm=SHA-256 passwords.encryption.algorithm=SHA-384 passwords.encryption.algorithm=SSHA passwords.encryption.algorithm=UFC-CRYPT
Digested passwords are encoded via base64 or hex encoding. The default is base64.
Defaults:passwords.digest.encoding=base64Examples:
passwords.digest.encoding=hex
Input a class name that implements com.liferay.portal.security.pwd.Toolkit. This class will be called to generate and validate passwords.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:passwords.toolkit=com.liferay.portal.security.pwd.PasswordPolicyToolkit passwords.toolkit=com.liferay.portal.security.pwd.RegExpToolkit
If you choose to use com.liferay.portal.security.pwd.PasswordPolicyToolkit as your password toolkit, you can choose either static or dynamic password generation. Static is set through the property "passwords.passwordpolicytoolkit.static" and dynamic uses the class com.liferay.util.PwdGenerator to generate the password. If you are using LDAP password syntax checking, you will also have to use the static generator so that you can guarantee that passwords obey its rules.
Defaults:passwords.passwordpolicytoolkit.generator=dynamic passwords.passwordpolicytoolkit.static=iheartliferayExamples:
passwords.passwordpolicytoolkit.generator=static
Set the character sets for password generation. These must be a subset of validation character sets.
Defaults:passwords.passwordpolicytoolkit.generator.charset.lowercase=abcdefghjkmnpqrstuvwxyz passwords.passwordpolicytoolkit.generator.charset.numbers=0123456789 passwords.passwordpolicytoolkit.generator.charset.symbols=_.!@$*=-? passwords.passwordpolicytoolkit.generator.charset.uppercase=ABCDEFGHJKLMNPQRSTUVWXYZ
Set the character sets for password validation.
Defaults:passwords.passwordpolicytoolkit.validator.charset.lowercase=abcdefghijklmnopqrstuvwxyz passwords.passwordpolicytoolkit.validator.charset.numbers=0123456789 passwords.passwordpolicytoolkit.validator.charset.symbols=_.!@$*=-? passwords.passwordpolicytoolkit.validator.charset.uppercase=ABCDEFGHIJKLMNOPQRSTUVWXYZ
If you choose to use com.liferay.portal.security.pwd.RegExpToolkit as your password toolkit, set the regular expression pattern that will be used to generate and validate passwords.
Note that \ is replaced with \\ to work in Java.
The first pattern ensures that passwords must have at least 4 valid characters consisting of digits or letters.
The second pattern ensures that passwords must have at least 8 valid characters consisting of digits or letters.
Defaults:passwords.regexptoolkit.pattern=(?=.{4})(?:[a-zA-Z0-9]*)Examples:
passwords.regexptoolkit.pattern=(?=.{8})(?:[a-zA-Z0-9]*)
Set the length and key for generating passwords.
Defaults:passwords.regexptoolkit.charset=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz passwords.regexptoolkit.length=8Examples:
passwords.regexptoolkit.charset=0123456789 passwords.regexptoolkit.length=4
Set the properties of the default password policy.
Defaults:passwords.default.policy.allow.dictionary.words=true passwords.default.policy.changeable=true passwords.default.policy.change.required=true passwords.default.policy.check.syntax=false passwords.default.policy.expireable=false passwords.default.policy.grace.limit=0 passwords.default.policy.history=false passwords.default.policy.history.count=6 passwords.default.policy.lockout=false passwords.default.policy.lockout.duration=0 passwords.default.policy.max.age=8640000 passwords.default.policy.max.failure=3 passwords.default.policy.min.age=0 passwords.default.policy.min.alphanumeric=0 passwords.default.policy.min.length=6 passwords.default.policy.min.lowercase=0 passwords.default.policy.min.numbers=1 passwords.default.policy.min.symbols=0 passwords.default.policy.min.uppercase=1 passwords.default.policy.name=Default Password Policy passwords.default.policy.regex=(?=.{4})(?:[a-zA-Z0-9]*) passwords.default.policy.reset.failure.count=600 passwords.default.policy.reset.ticket.max.age=86400 passwords.default.policy.warning.time=86400
Set the default permission checker class used by com.liferay.portal.security.permission.PermissionCheckerFactory to check permissions for actions on objects. This class can be overriden with a custom class that implements com.liferay.portal.security.permission.PermissionChecker.
Defaults:permissions.checker=com.liferay.portal.security.permission.AdvancedPermissionCheckerExamples:
permissions.checker=com.liferay.portal.security.permission.SimplePermissionChecker
Set this to true to configure permission caching to block. See the property "ehcache.blocking.cache.allowed" for more information.
Defaults:permissions.object.blocking.cache=false
Configure this threshold to indicate when to use the custom SQL finder to check resource permissions.
Defaults:permissions.role.resource.permission.query.threshold=10
Set this to true to enable inline SQL permission checks.
Defaults:permissions.inline.sql.check.enabled=true
Configure this threshold to indicate when to pass in the resource block IDs directly to the inline SQL statement and when to use a subselect to determine the resource block IDs.
Defaults:permissions.inline.sql.resource.block.query.threshold=100
Set this to true to use permission checking when reading custom attributes by default.
Defaults:permissions.custom.attribute.read.check.by.default=true
Set this to true to use permission checking when writing custom attributes by default.
Defaults:permissions.custom.attribute.write.check.by.default=true
Set the following to true to automatically check the view permission on parent categories or folders when checking the permission on a specific item.
For example, if set to true, to be able to have access to a document, a user must have the view permission on the document's folder and all its parent folders. Or, to have access to a comment, a user must have the view permission on the comments's category and all its parent categories.
Defaults:permissions.view.dynamic.inheritance=true
Set the following to true to enable propagation of permissions between models.
For example, when setting the permissions on a specific Wiki node, if you assign a role a permission (e.g. DELETE), then the assignment of that permission is also propagated to all Wiki pages that belong to that Wiki node.
The actual logic of how permissions are propagated among models is specified per portlet. See liferay-portlet.xml's use of the element "permission-propagator".
Defaults:permissions.propagation.enabled=false
Set this to true if resources should assume that all users have the Guest role. Set this to false if resources will not assume that all users have the Guest role and, thus, do not automatically inherit permissions that belong to the Guest role.
Setting this property to false may require users to grant permissions to roles like Site Member and User.
Defaults:permissions.check.guest.enabled=true
Input a list of comma delimited class names that extend com.liferay.portal.struts.SimpleAction. These classes will run at the specified event.
Global startup event that runs once when the portal initializes.
Defaults:global.startup.events=com.liferay.portal.events.GlobalStartupAction,com.liferay.portal.events.CryptoStartupAction
Application startup event that runs once for every web site instance of the portal that initializes.
Defaults:application.startup.events=com.liferay.portal.events.AppStartupAction,com.liferay.portal.events.ChannelHubAppStartupActionExamples:
application.startup.events=com.liferay.portal.events.AppStartupAction,com.liferay.portal.events.SampleAppStartupAction
Input a list of comma delimited class names that extend com.liferay.portal.struts.SimpleAction. These classes will run at the specified event.
Global shutdown event that runs once when the portal shuts down.
Defaults:global.shutdown.events=com.liferay.portal.events.GlobalShutdownAction
Application shutdown event that runs once for every web site instance of the portal that shuts down.
Defaults:application.shutdown.events=com.liferay.portal.events.AppShutdownAction,com.liferay.portal.events.ChannelHubAppShutdownAction
Programmatically kill the Java process on shutdown. This is a workaround for a bug in Tomcat and Linux where the process hangs on forever.
See https://issues.liferay.com/browse/LEP-2048 for more information.
Defaults:shutdown.programmatically.exit=false
Input a list of comma delimited class names that extend com.liferay.portal.kernel.events.Action. These classes will run before or after the specified event.
Servlet service event (the pre-service events have an associated error page and will forward to that page if an exception is thrown during excecution of the events). The pre-service events process before Struts processes the request. The post-service events process after Struts processes the request.
Defaults:servlet.service.events.pre=com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.ThemeServicePreAction servlet.service.events.pre.error.page=/common/error.jsp servlet.service.events.post=com.liferay.portal.events.ServicePostActionExamples:
servlet.service.events.pre=com.liferay.portal.events.LogMemoryUsageAction,com.liferay.portal.events.LogThreadCountAction,com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.DeviceServicePreAction,com.liferay.portal.events.ThemeServicePreAction servlet.service.events.pre=com.liferay.portal.events.LogSessionIdAction,com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.DeviceServicePreAction,com.liferay.portal.events.ThemeServicePreAction servlet.service.events.pre=com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.DeviceServicePreAction,com.liferay.portal.events.ThemeServicePreAction,com.liferay.portal.events.RandomLayoutAction servlet.service.events.pre=com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.DeviceServicePreAction,com.liferay.portal.events.ThemeServicePreAction,com.liferay.portal.events.RandomLookAndFeelAction servlet.service.events.pre=com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.DeviceServicePreAction,com.liferay.portal.events.ThemeServicePreAction,com.liferay.portal.events.SecureRequestAction
Login Event
Defaults:login.events.pre=com.liferay.portal.events.LoginPreAction login.events.post=com.liferay.portal.events.ChannelLoginPostAction,com.liferay.portal.events.DefaultLandingPageAction,com.liferay.portal.events.LoginPostAction
Logout Event
Defaults:logout.events.pre=com.liferay.portal.events.LogoutPreAction logout.events.post=com.liferay.portal.events.LogoutPostAction,com.liferay.portal.events.DefaultLogoutPageActionExamples:
logout.events.post=com.liferay.portal.events.LogoutPostAction,com.liferay.portal.events.GarbageCollectorAction
Set the default landing page path for logged in users relative to the server path. This is the page users are automatically redirected to after logging in. For example, if you want the default landing page to be http://localhost:8080/web/guest/login, set this to /web/guest/login. To activate this feature, set auth.forward.by.last.path to true. To customize the behavior, see com.liferay.portal.events.DefaultLandingPageAction in the "login.events.post" property above.
The following variables can be used: ${liferay:screenName} and ${liferay:userId}.
Defaults:default.landing.page.path=Examples:
default.landing.page.path=/web/guest/login default.landing.page.path=/user/${liferay:screenName}/home
Set the default logout page path for users relative to the server path. This is the page users are automatically redirected to after logging out. For example, if you want the default logout page to be http://localhost:8080/web/guest/logout, set this to /web/guest/logout. To activate this feature, set auth.forward.by.last.path to true. To customize the behavior, see com.liferay.portal.events.DefaultLogoutPageAction in the "logout.events.post" property above.
Defaults:default.logout.page.path=Examples:
default.logout.page.path=/web/guest/logout
The Guest group must have at least one public page. The settings for the initial public page are specified in the following properties.
If you need to add more than one page, set the property "default.guest.public.layouts.lar" to specifiy a LAR file instead.
For even more complex behavior, override the addDefaultGuestPublicLayouts method in com.liferay.portal.service.impl.GroupLocalServiceImpl.
Set the name of the public layout.
Defaults:default.guest.public.layout.name=Welcome
Set the layout template ID of the public layout.
Defaults:default.guest.public.layout.template.id=1_column
Set the portlet IDs for the columns specified in the layout template.
Defaults:default.guest.public.layout.column-1=com_liferay_hello_world_web_portlet_HelloWorldPortlet default.guest.public.layout.column-2= default.guest.public.layout.column-3= default.guest.public.layout.column-4=
Set the friendly url of the public layout.
Defaults:default.guest.public.layout.friendly.url=/home
Set the regular theme ID for the public layout.
Examples:default.guest.public.layout.regular.theme.id=classic_WAR_classictheme
Set the regular color scheme ID for the public layout.
Examples:default.guest.public.layout.regular.color.scheme.id=01
Specify a LAR file that can be used to create the guest public layouts. If this property is set, the previous layout properties will be ignored.
Examples:default.guest.public.layouts.lar=${liferay.home}/deploy/default_guest_public.lar
If the properties "layout.user.private.layouts.enabled" and "layout.user.private.layouts.auto.create" are both set to true, then users will have private layouts and they will be automatically created. The settings below are used for the creation of the initial private pages.
If you need to add more than one page, set the property "default.user.private.layouts.lar" to specifiy a LAR file instead.
For even more complex behavior, override the addDefaultUserPrivateLayouts method in com.liferay.portal.events.ServicePreAction.
Set the name of the private layout.
Defaults:default.user.private.layout.name=Welcome
Set the layout template ID of the private layout.
Defaults:default.user.private.layout.template.id=1_column
Set the portlet IDs for the columns specified in the layout template.
Defaults:default.user.private.layout.column-1=com_liferay_site_my_sites_web_portlet_MySitesPortlet default.user.private.layout.column-2= default.user.private.layout.column-3= default.user.private.layout.column-4=
Set the friendly url of the private layout.
Defaults:default.user.private.layout.friendly.url=/home
Set the regular theme ID for the private layout.
Defaults:default.user.private.layout.regular.theme.id=classic_WAR_classictheme
Set the regular color scheme ID for the private layout.
Examples:default.user.private.layout.regular.color.scheme.id=01
Specify a LAR file that can be used to create the user private layouts. If this property is set, the previous layout properties will be ignored.
Examples:default.user.private.layouts.lar=${liferay.home}/deploy/default_user_private.lar
If the properties "layout.user.public.layouts.enabled" and "layout.user.public.layouts.auto.create" are both set to true, then users will have public layouts and they will be automatically created. The settings below are used for the creation of the initial public pages.
If you need to add more than one page, set the property "default.user.public.layouts.lar" to specify a LAR file instead.
For even more complex behavior, override the addDefaultUserPublicLayouts method in com.liferay.portal.events.ServicePreAction.
Set the name of the public layout.
Defaults:default.user.public.layout.name=Welcome
Set the layout template ID of the public layout.
Defaults:default.user.public.layout.template.id=1_column
Set the portlet IDs for the columns specified in the layout template.
Defaults:default.user.public.layout.column-1= default.user.public.layout.column-2= default.user.public.layout.column-3= default.user.public.layout.column-4=
Set the friendly url of the public layout.
Defaults:default.user.public.layout.friendly.url=/home
Set the regular theme ID for the public layout.
Defaults:default.user.public.layout.regular.theme.id=classic_WAR_classictheme
Set the regular color scheme ID for the public layout.
Examples:default.user.public.layout.regular.color.scheme.id=01
Specify a LAR file that can be used to create the user public layouts. If this property is set, the previous layout properties will be ignored.
Examples:default.user.public.layouts.lar=${liferay.home}/deploy/default_user_public.lar
Set the default admin password.
Defaults:default.admin.password=test
Set the default admin screen name prefix.
Defaults:default.admin.screen.name=test
Set the default admin email address prefix.
Defaults:default.admin.email.address.prefix=test
Set the default admin first name.
Defaults:default.admin.first.name=Test
Set the default admin middle name.
Defaults:default.admin.middle.name=
Set the default admin last name.
Defaults:default.admin.last.name=Test
Set whether or not private layouts are enabled. Set whether or not private layouts should be auto created if a user has no private layouts. If private layouts are not enabled, then the property "layout.user.private.layouts.auto.create" is assumed to be false.
Defaults:layout.user.private.layouts.enabled=true layout.user.private.layouts.auto.create=true
Set this to true if users must have the Power User role to have private pages.
Defaults:layout.user.private.layouts.power.user.required=false
Set whether or not public layouts are enabled. Set whether or not public layouts should be auto created if a user has no public layouts. If public layouts are not enabled, then the property "layout.user.public.layouts.auto.create" is assumed to be false.
Defaults:layout.user.public.layouts.enabled=true layout.user.public.layouts.auto.create=true
Set this to true if users must have the Power User role to have public pages.
Defaults:layout.user.public.layouts.power.user.required=false
Default settings layouts.
Defaults:layout.edit.page=/portal/layout/edit/portlet.jsp layout.view.page=/portal/layout/view/portlet.jsp layout.url=${liferay:mainPath}/portal/layout?p_l_id=${liferay:plid}&p_v_l_s_g_id=${liferay:pvlsgid} layout.url.friendliable=true layout.parentable=true layout.sitemapable=true layout.first.pageable=trueExamples:
layout.configuration.action.update= layout.configuration.action.delete=
Settings for portlet layouts are inherited from the default settings.
Examples:layout.edit.page[portlet]=/portal/layout/edit/portlet.jsp layout.view.page[portlet]=/portal/layout/view/portlet.jsp layout.url[portlet]=${liferay:mainPath}/portal/layout?p_l_id=${liferay:plid}&p_v_l_s_g_id=${liferay:pvlsgid} layout.url.friendliable[portlet]=true layout.parentable[portlet]=true layout.configuration.action.update[portlet]= layout.configuration.action.delete[portlet]=
Settings for panel layouts.
Defaults:layout.edit.page[panel]=/portal/layout/edit/panel.jsp layout.view.page[panel]=/portal/layout/view/panel.jsp layout.url[panel]=${liferay:mainPath}/portal/layout?p_l_id=${liferay:plid}&p_v_l_s_g_id=${liferay:pvlsgid} layout.url.friendliable[panel]=true layout.parentable[panel]=true layout.first.pageable[panel]=true
Settings for embedded layouts.
Defaults:layout.edit.page[embedded]=/portal/layout/edit/embedded.jsp layout.view.page[embedded]=/portal/layout/view/embedded.jsp layout.url[embedded]=${liferay:mainPath}/portal/layout?p_l_id=${liferay:plid}&p_v_l_s_g_id=${liferay:pvlsgid} layout.url.friendliable[embedded]=true layout.parentable[embedded]=false layout.sitemapable[embedded]=true layout.first.pageable[embedded]=trueExamples:
layout.configuration.action.update[embedded]= layout.configuration.action.delete[embedded]=
Settings for URL layouts.
Defaults:layout.edit.page[url]=/portal/layout/edit/url.jsp layout.view.page[url]= layout.url[url]=${url} layout.url.friendliable[url]=true layout.parentable[url]=false layout.sitemapable[url]=false layout.first.pageable[url]=falseExamples:
layout.configuration.action.update[url]= layout.configuration.action.delete[url]=
Specify static portlets that cannot be moved and will always appear on every layout. Static portlets will take precedence over portlets that may have been dynamically configured for the layout.
For example, if you want the Hello World portlet to always appear at the start of the iteration of the first column for user layouts, set the property "layout.static.portlets.start.column-1[user]" to "47". If you want the Hello World portlet to always appear at the end of the second column for user layouts, set the property "layout.static.portlets.end.column-2[user]" to "47". You can input a list of comma delimited portlet IDs to specify more than one portlet. If the portlet is instanceable, add the suffix "_INSTANCE_abcd" to the portlet ID, where "abcd" is any random alphanumeric string.
The static portlets are fetched based on the properties controlled by custom filters using EasyConf. By default, the available filters are user, community, and organization.
Examples:layout.static.portlets.start.column-1[user]=6 layout.static.portlets.end.column-1[user]=14 layout.static.portlets.start.column-2[user]=71_INSTANCE_abcd,7 layout.static.portlets.end.column-2[user]=34,70 layout.static.portlets.start.column-3[user]= layout.static.portlets.end.column-3[user]=
It is also possible to set static portlets based on the layout's friendly URL.
Examples:layout.static.portlets.start.column-1[user][/home]=6 layout.static.portlets.end.column-2[regular-site][/home]=14
Set the static portlets for the pages of regular sites.
Examples:layout.static.portlets.start.column-1[regular-site]= layout.static.portlets.end.column-1[regular-site]= layout.static.portlets.start.column-2[regular-site]= layout.static.portlets.end.column-2[regular-site]= layout.static.portlets.start.column-3[regular-site]= layout.static.portlets.end.column-3[regular-site]=
Set the static portlets for the pages of organization sites.
Examples:layout.static.portlets.start.column-1[organization]= layout.static.portlets.end.column-1[organization]= layout.static.portlets.start.column-2[organization]= layout.static.portlets.end.column-2[organization]= layout.static.portlets.start.column-3[organization]= layout.static.portlets.end.column-3[organization]=
Set the static portlets that will appear for every layout. See layout_common taglib for the logic of when these portlets will be shown. For example, these portlets will only show for layouts that can contain portlets and are not in a pop up state.
Defaults:layout.static.portlets.all=
Set the private group, private user, and public servlet mapping for com.liferay.portal.servlet.FriendlyURLServlet. This value must match the servlet mapping set in web.xml.
For example, if the private group pages are mapped to "/group" and the group's friendly URL is set to "/guest" and the layout's friendly URL is set to "/company/community", then the friendly URL for the page will be http://www.liferay.com/group/guest/company/community. Private group pages map to a site's private pages and are only available to authenticated users with the proper permissions.
For example, if the public pages are mapped to "/web" and the group or user's friendly URL is set to "/guest" and the layout's friendly URL is set to "/company/community", then the friendly URL for the page will be http://www.liferay.com/web/guest/company/community. Public pages are available to unauthenticated users.
The friendly URL's for users, groups, and layouts can be set during runtime.
Defaults:layout.friendly.url.private.group.servlet.mapping=/group layout.friendly.url.private.user.servlet.mapping=/user layout.friendly.url.public.servlet.mapping=/web
Redirect to this resource if the user requested a friendly URL of a page that does not exist. Leave it blank to display nothing.
A similar configuration for sites is managed with the property "sites.friendly.url.page.not.found".
Note: For backward compatibility, this overrides the property "layout.show.http.status" for the 404 status code.
Examples:layout.friendly.url.page.not.found=/html/portal/404.html
Set the reserved keywords that cannot be used in a friendly URL.
Defaults:layout.friendly.url.keywords=\ _vti_*,\ api*,\ c,\ combo,\ delegate,\ display_chart*,\ dtd,\ elqNow,\ facebook,\ google_gadget,\ group,\ html,\ image,\ language,\ lucene,\ netvibes,\ o,\ osgi,\ page,\ pbhs,\ poller,\ private,\ public,\ rest,\ robots.txt,\ sharepoint*,\ sitemap.xml,\ sprite,\ tunnel-web,\ user,\ wap,\ web,\ webdav*,\ widget,\ xmlrpc
Set this to true if guest users should see the maximize window icon.
Defaults:layout.guest.show.max.icon=false
Set this to true if guest users should see the minimize window icon.
Defaults:layout.guest.show.min.icon=false
Set this to true if users are shown that they do not have access to a portlet. The portlet init parameter "show-portlet-access-denied" will override this setting.
Defaults:layout.show.portlet.access.denied=true
Set this to true if users are shown that a portlet is inactive. The portlet init parameter "show-portlet-inactive" will override this setting.
Defaults:layout.show.portlet.inactive=true
Set this to true if the portal should show HTTP status codes like 404 if the requested page is not found.
Defaults:layout.show.http.status=true
Set the default layout template ID used when creating layouts.
Defaults:layout.default.template.id=2_columns_ii
Set this to false to disable ajax rendering. You can also disable it on a per request basis by setting the attribute key com.liferay.portal.util.WebKeys.PORTLET_AJAXABLE_RENDER to the Boolean.FALSE in a pre service event or by setting the URL parameter "p_p_ajax" to "0". See the property "session.disabled" on how that property effects this property.
Defaults:layout.ajax.render.enable=true
Set this to false to disable server side parallel rendering. You can also disable it on a per request basis by setting the attribute key com.liferay.portal.util.WebKeys.PORTLET_PARALLEL_RENDER to the Boolean.FALSE in a pre service event or by setting the URL parameter "p_p_parallel" to "0".
Set this to true to forcibly set the property "portlet.container.restrict" to true, as server side parallel rendering requires restricted request attributes.
This feature is only available for Tomcat and will be ignored when the portal is running in other environments.
This property is deprecated and only provided for documentation purposes.
Examples:layout.parallel.render.enable=false
Set the number of core threads used for server side parallel rendering.
Defaults:layout.parallel.render.thread.pool.core.thread.count=1
Set the time in seconds to keep a thread alive for server side parallel rendering.
Defaults:layout.parallel.render.thread.pool.keep.alive.time=600
Set the maximum size of the task queue for server side parallel rendering. An unbounded queue size will never trigger RejectedExecutionHandler. Under heavy load, this will lead to massive memory usage. A bounded queue size with a proper RejectedExecutionHandler can help the server perform graceful degradation.
Defaults:layout.parallel.render.thread.pool.max.queue.size=100
Set the maximum number of threads used for server side parallel rendering.
Defaults:layout.parallel.render.thread.pool.max.thread.count=20
Set the timeout time for server side parallel rendering. On timeout, all pending portlets will fail back to ajax loading or trigger an error message depending on whether the portlets are ajaxable.
This timeout is an int value rather than long to avoid some atomic set race condition. The Integer.MAX_VALUE is more than enough for a reasonable timeout.
Defaults:layout.parallel.render.timeout=5000
Set the name of a class that implements com.liferay.portal.util.LayoutClone. This class is used to remember maximized and minimized states on shared pages. The default implementation persists the state in the browser session.
Defaults:layout.clone.impl=com.liferay.portal.util.SessionLayoutClone
Set this to true to cache the content of layout templates. This is recommended because it improves performance for production servers. Setting it to false is useful during development if you need to make a lot of changes.
Defaults:layout.template.cache.enabled=true
Set the default value for the "p_l_reset" parameter. If set to true, render parameters are cleared when different pages are hit. This is not the behavior promoted by the portlet specification, but is the one that most end users seem to prefer.
Defaults:layout.default.p_l_reset=true
Set this to true to enable comments for pages.
Defaults:layout.comments.enabled=true
Set this to true to remember maximized window states across different pages.
Defaults:layout.remember.maximized.window.state=false
Set the initial number of child pages to display in the Manage Pages tree. Set this to -1 to show all.
Defaults:layout.manage.pages.initial.children=20
Set this to true to enable finding scoped layouts with a table join of the Layout and Group_ tables which is not cached. Set this to false to allow in memory joining. Conditional memory joining can be customized with the property "layout.scope.group.finder.threshold".
Defaults:layout.scope.group.finder.enabled=true
Set the threshold for when to use in memory joining. In memory joining will be used when the number of scoped layouts is less than the threshold. Setting the value to negative will ensure in memory joining is always used. This property is ignored if "layout.scope.group.finder.enabled" is set to false.
Defaults:layout.scope.group.finder.threshold=100
Set this to true to enable the propagation of changes to a page from its page template by default.
Defaults:layout.prototype.link.enabled.default=true
In the case that a page template would fail to merge, make sure that we prevent repeated attempts that will inevitably fail by setting a fail threshold.
Defaults:layout.prototype.merge.fail.threshold=3
Set the number of seconds we should expect a lock to last before we recognize that an error occurred and some other process should be able to attempt to take it over.
Defaults:layout.prototype.merge.lock.max.time=300
In the case that a site template would fail to merge, make sure that we prevent repeated attempts that will inevitably fail by setting a fail threshold.
Defaults:layout.set.prototype.merge.fail.threshold=3
Set the number of seconds we should expect a lock to last before we recognize that an error occurred and some other process should be able to attempt to take it over.
Defaults:layout.set.prototype.merge.lock.max.time=600
Set this to true to propagate a site template's logo to a site when the propagation of changes is enabled. Set this to false to propagate a site template's logo only when a site is first created from its site template. Further changes to a site template's logo is not propagated even if the propagation of changes is enabled.
Defaults:layout.set.prototype.propagate.logo=false
Set this to true if calling setParameter on a portlet URL appends the parameter value versus replacing it. There is some disagreement in the interpretation of the JSR 168 spec among portlet developers over this specific behavior. Liferay Portal successfully passes the portlet TCK tests whether this value is set to true or false.
See https://issues.liferay.com/browse/LEP-426 for more information.
Defaults:portlet.url.append.parameters=false
Set this to true to allow portlet URLs to generate with an anchor tag.
Defaults:portlet.url.anchor.enable=false
JSR 286 specifies that portlet URLs are escaped by default. Set this to false to provide for better backwards compatibility.
If this is set to true, but a specific portlet application requires that its portlet URLs not be escaped by default, then modify portlet.xml and set the container runtime option "javax.portlet.escapeXml" to false.
Defaults:portlet.url.escape.xml=false
Set a list of comma delimited reserved parameters that will not be added to refresh URL.
Defaults:portlet.url.refresh.url.reserved.parameters=password,password1,password2,pop3Password,properties--jdbc.default.password,settings--google.apps.password,smtpPassword,settings--ldap.security.credentials
Set this to true to allow portlet URLs to be generated using /c/portal/portlet_url. Enabling can pose a security risk.
Defaults:portlet.url.generate.by.path.enabled=false
Set this to true to validate portlet preferences on startup.
Defaults:preference.validate.on.startup=false
Set this property to "ip" or "domain" for the redirect security method. If set to "domain", the portal will only redirect users to domains listed in the property "redirect.url.domain.allowed". If set to "ip", the portal will only redirect to domains whose IP address resolve to an IP address listed in the property "redirect.url.ip.allowed".
Defaults:redirect.url.security.mode=ipExamples:
redirect.url.security.mode=domain
Input a list of comma delimited domains which the portal is allowed to redirect to. Input a blank list to allow any domain. Specifying a domain with a leading "*." allows redirects to subdomains.
Defaults:redirect.url.domains.allowed=
Input a list of comma delimited IPs which the portal is allowed to redirect to. Input a blank list to allow any IP. SERVER_IP will be replaced with the IP of the host server.
Defaults:redirect.url.ips.allowed=127.0.0.1,SERVER_IP
Specify the parameter names that will be ignored and not available to portlets that use Struts. See LPS-46552 for more information.
Defaults:struts.portlet.ignored.parameters.regexp=(.*\\.|^|.*|\\[('|"))(c|C)lass(\\.|('|")]|\\[).*
Input the custom Struts request processor that will be used by Struts based portlets. The custom class must extend com.liferay.portal.struts.PortletRequestProcessor and have the same constructor.
Defaults:struts.portlet.request.processor=com.liferay.portal.struts.PortletRequestProcessor
Set this to true if the Image servlet will automatically scale an image based on the request "height" and "width" parameters.
Defaults:image.auto.scale=false
Set the location of the default spacer image that is used for missing images. This image must be available in the class path.
Defaults:image.default.spacer=com/liferay/portal/dependencies/spacer.gif
Set the location of the default company logo image that is used for missing company logo images. This image must be available in the class path.
Defaults:image.default.company.logo=com/liferay/portal/dependencies/company_logo.png
Set the location of the default organization logo image that is used for missing organization logo images. This image must be available in the class path.
Defaults:image.default.organization.logo=com/liferay/portal/dependencies/organization_logo.png
Set the locations of the default user portrait images that are used for missing user portrait images. This image must be available in the class path.
Defaults:image.default.user.female.portrait=com/liferay/portal/dependencies/user_female_portrait.png image.default.user.male.portrait=com/liferay/portal/dependencies/user_male_portrait.png
In versions prior to 6.1, the Image Gallery portlet supported persisting images via com.liferay.portal.image.DatabaseHook, com.liferay.portal.image.DLHook, or com.liferay.portal.image.FileSystemHook. Since 6.1, only DLHook is supported.
Set this property to the hook implementation to trigger automatic data migration during an upgrade.
Examples:image.hook.impl=com.liferay.portal.image.DatabaseHook image.hook.impl=com.liferay.portal.image.DLHook image.hook.impl=com.liferay.portal.image.FileSystemHook
This is a legacy property used by the FileSystemHook to allow data migration from other hooks.
Defaults:image.hook.file.system.root.dir=${liferay.home}/data/images
ImageIO's stream cache may reside in memory or on the file system. Setting this to false tells ImageIO to use memory for caching. Memory caches offer better performance since nothing is written to the file system. However, memory is usually more limited and more expensive.
Defaults:image.io.use.disk.cache=true
Set the maximum image height and width in pixels that can be read by the image tool. A value of 0 indicates no restrictions. See LPS-63358 for more information.
Defaults:image.tool.image.max.height=10000 image.tool.image.max.width=10000
You can configure individual JSP pages to use a specific implementation of the available WYSIWYG editors: alloyeditor, alloyeditor_bbcode, alloyeditor_creole, ckeditor, ckeditor_bbcode, ckeditor_creole, simple, tinymce, or tinymce_simple.
Defaults:editor.wysiwyg.default=ckeditor editor.wysiwyg.portal-impl.portlet.ddm.text_html.ftl=alloyeditor editor.wysiwyg.portal-web.docroot.html.portlet.announcements.edit_entry.jsp=alloyeditor editor.wysiwyg.portal-web.docroot.html.portlet.blogs.edit_entry.jsp=alloyeditor editor.wysiwyg.portal-web.docroot.html.portlet.mail.edit.jsp=ckeditor editor.wysiwyg.portal-web.docroot.html.portlet.mail.edit_message.jsp=ckeditor editor.wysiwyg.portal-web.docroot.html.portlet.message_boards.edit_message.bb_code.jsp=alloyeditor_bbcode editor.wysiwyg.portal-web.docroot.html.portlet.message_boards.edit_message.html.jsp=alloyeditor editor.wysiwyg.portal-web.docroot.html.taglib.ui.discussion.jsp=alloyeditor editor.wysiwyg.portal-web.docroot.html.taglib.ui.email_notification_settings.jsp=ckeditor
Set the following fields to false so users cannot see them. Some company policies require gender and birthday information to always be hidden.
Defaults:field.enable.com.liferay.portal.kernel.model.Contact.male=true field.enable.com.liferay.portal.kernel.model.Contact.birthday=true field.enable.com.liferay.portal.kernel.model.Organization.status=false
Input a list of comma delimited user types. Users that match one of these user types have permission to edit all of their own fields. Valid user types are "user-with-mx" and "user-without-mx". A value of "user-with-mx" is a user who has an email address that matches the company mail suffix, and "user-without-mx" is a user who does not have an email address that matches the company mail suffix.
Defaults:field.editable.user.types=user-with-mx,user-without-mx
Input a list of comma delimited role names. Users associated with one of these roles have permission to edit all of their own fields.
Defaults:field.editable.roles=administrator
Input a list of comma delimited domain names. Users with an email address that match one of these domain names have permission to edit all of their own fields.
Examples:field.editable.domains=
Input a list of comma delimited domain names. Users with an email address that match one of these domain names have permission to edit the specified field. Input "*" to allow all users to modify the specified field.
Examples:field.editable.domains[birthday]= field.editable.domains[emailAddress]= field.editable.domains[firstName]= field.editable.domains[gender]= field.editable.domains[jobTitle]= field.editable.domains[lastName]= field.editable.domains[middleName]= field.editable.domains[portrait]= field.editable.domains[prefix]= field.editable.domains[screenName]= field.editable.domains[suffix]=
Input a list of comma delimited extensions for which the content disposition header has to be set to "inline". Note that including "swf" in the list may expose you to a CSRF attack.
Defaults:mime.types.content.disposition.inline=flv,gif,jpg,pdf,png,wmv
Input a list of comma delimited MIME types that are optimized for displaying images on the Internet. One of the use cases for this property is to limit the image file types that a user can upload as a company logo, organization logo, or user portrait.
Defaults:mime.types.web.images=image/gif,image/jpeg,image/pjpeg,image/png,image/x-png
Set this to true if you want the portal to force the browser cache to be disabled. It will only disable the cache for the rendered HTML response. It will not have an impact on static content or other resources.
Defaults:browser.cache.disabled=true
Set this true if you want to disable the cache for authenticated users. This property is not read when the property "browser.cache.signed.in.disabled" is true. This is useful to ensure that authenticated users cannot go to the sign in page by clicking on the back button in their browsers.
Defaults:browser.cache.signed.in.disabled=true
Enter which versions of IE your browser should emulate to render the portal. Enter "edge" to always use IE's latest standards rendering mode.
Defaults:browser.compatibility.ie.versions=IE=edge
Enter a URL to automatically launch a browser to that URL when the portal has fully initialized. Enter a blank URL to disable this feature.
Defaults:browser.launcher.url=http://localhost:8080
Set the name of the layout.
Defaults:control.panel.layout.name=Control Panel
Set the friendly URL of the layout.
Defaults:control.panel.layout.friendly.url=/manage
Set the theme of the layout.
Defaults:control.panel.layout.regular.theme.id=admin_WAR_admintheme
Set the maximum number of sites that will be shown in the navigation menus. A large value might cause performance problems if the number of sites a user can administer is very large.
Defaults:control.panel.navigation.max.sites=100
Set the name of a class that implements com.liferay.portal.kernel.portlet.ControlPanelEntry. This class denotes the default value of of the element "control-panel-entry-class" in liferay-portlet.xml and is called by the Control Panel to decide whether the portlet should be shown to a specific user in a specific context.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:control.panel.default.entry.class=com.liferay.portal.kernel.portlet.DefaultControlPanelEntry
Set this to true to enable spell checking the query.
Defaults:index.search.collated.spell.check.result.enabled=true
Set the limit for considering the returned results as valid. When this threshold is not met, the most relevant spell checked query will be displayed.
Defaults:index.search.collated.spell.check.result.scores.threshold=50
Set the fragment size returned from the search result highlighter.
Defaults:index.search.highlight.fragment.size=80
Set this to true to require field match when highlighting.
Defaults:index.search.highlight.require.field.match=true
Set the number of lines for the snippet returned by a search engine.
Defaults:index.search.highlight.snippet.size=3
Set the limit for results used when performing index searches.
Defaults:index.search.limit=10000
Set this to true to enable indexing of related queries based on successful searches. This does not affect indexing of related queries in the search portlet. To control indexing of related queries in the search portlet, configure the search portlet preferences.
Defaults:index.search.query.indexing.enabled=false
Set the limit for considering the returned results as valid. When this threshold is met, the query will be indexed as related query.
Defaults:index.search.query.indexing.threshold=50
Set the location of the query suggestion dictionary files for specific locales. Specify a comma delimited list of files if a locale has more than one dictionary file. A group ID (e.g. 123456) can also be added to specify a dictionary that only applies to one group.
Examples:index.search.query.suggestion.dictionary[en_US]=com/liferay/portal/search/dependencies/querysuggestions/en_US.txt index.search.query.suggestion.dictionary[es_ES]=com/liferay/portal/search/dependencies/querysuggestions/es_ES.txt index.search.query.suggestion.dictionary[en_US][123456]=com/liferay/portal/search/dependencies/querysuggestions/en_US_123456.txt
Set this to true to enable query suggestion if insufficient scoring or no results are returned for the user's original query. This does not affect suggestion in the search portlet. To control suggestion in the search portlet, configure the search portlet preferences.
Defaults:index.search.query.suggestion.enabled=false
Set the maximum number of query suggestions.
Defaults:index.search.query.suggestion.max=5
Set the limit of the search result score for triggering query suggestions. Setting this to 0 will ignore scoring thresholds and only suggest queries if no results are returned for the original search query.
Defaults:index.search.query.suggestion.scores.threshold=0
Set this to true to enable scoring of results.
Defaults:index.search.scoring.enabled=true
Set the location of the spell checker dictionary files for specific locales. Specify a comma delimited list of files if a locale has more than one dictionary file. A group ID (e.g. 123456) can also be added to specify a dictionary that only applies to one group.
Defaults:index.search.spell.checker.dictionary[en_US]=com/liferay/portal/search/dependencies/spellchecker/en_US.txt index.search.spell.checker.dictionary[es_ES]=com/liferay/portal/search/dependencies/spellchecker/es_ES.txtExamples:
index.search.spell.checker.dictionary[en_US][123456]=com/liferay/portal/search/dependencies/spellchecker/en_US_123456.txt
Specify the locales supported by the spell checker. This is used by the search engine's spell checker when determining whether to execute spell checking for a particular language.
Defaults:index.search.spell.checker.supported.locales=en_US,es_ES
Specify the maximum queue size of the index search writer. Set this to a negative value to allow the queue size to grow until the server runs out of memory.
Defaults:index.search.writer.max.queue.size=1000
Set the amplification factor for permission filtered searches, it must be a number that is larger than 1.
Defaults:index.permission.filter.search.amplification.factor=1.5
Set this to false to disable an indexer with given name by default, otherwise all indexers are enabled by default. This setting can be overridden in portal preferences by enabling or disabling the indexer in the control panel.
Examples:indexer.enabled[com.liferay.portal.kernel.model.User]=false
Set this to true if you want to index your entire library of files on startup. This property is available so that automated test environments index on startup. Do not set this to true on production systems or else your index will be indexed on every startup.
Defaults:index.on.startup=false
Set this to true to add a delay before indexing on startup. A delay may be necessary if a lot of plugins need to be loaded and reindexed. This property is only valid if "index.on.startup" is set to true.
Defaults:index.on.startup.delay=60
Set this to true if you want to index your entire library of files after an upgrade. Only set this property to false if you are running a small upgrade and you do not need to reindex everything.
Defaults:index.on.upgrade=true
Set this to true if you want the indexing on startup to be executed on a separate thread to speed up execution.
Defaults:index.with.thread=true
Set the date format used for storing dates as text in the index.
Defaults:index.date.format.pattern=yyyyMMddHHmmss
Set this to true if you want to compress index files before they are dumped.
Defaults:index.dump.compression.enabled=true
Enter a list of comma delimited field names that will be copied to an untokenized field for sorting.
Defaults:index.sortable.text.fields=firstName,jobTitle,lastName,name,screenName,title
Set the maximum length for sortable keyword fields before they are truncated.
Defaults:index.sortable.text.fields.truncated.length=255
Set the maximum number of clauses to allow in a boolean query. The default is 1024.
Examples:lucene.boolean.query.clause.max.size=1024
Set the multi value map property to 0 to store the map in memory and 1 to store the map in the file system.
Defaults:multi.value.map.com.liferay.portal.convert.ConvertPermissionAlgorithm.convertResourcePermission=0 multi.value.map.com.liferay.portal.convert.ConvertPermissionAlgorithm.convertRoles=0
setup.database.driverClassName[db2]=com.ibm.db2.jcc.DB2Driver setup.database.driverClassName[hypersonic]=org.hsqldb.jdbc.JDBCDriver setup.database.driverClassName[mariadb]=org.mariadb.jdbc.Driver setup.database.driverClassName[mysql]=com.mysql.jdbc.Driver setup.database.driverClassName[oracle]=oracle.jdbc.OracleDriver setup.database.driverClassName[postgresql]=org.postgresql.Driver setup.database.driverClassName[sqlserver]=com.microsoft.sqlserver.jdbc.SQLServerDriver setup.database.driverClassName[sybase]=com.sybase.jdbc4.jdbc.SybDriverDefaults:
setup.database.jar.name[com.mysql.jdbc.Driver]=mysql.jar setup.database.jar.url[com.mysql.jdbc.Driver]=http://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.23/mysql-connector-java-5.1.23.jarDefaults:
setup.database.url[db2]=jdbc:db2://localhost:50000/lportal:deferPrepares=false;fullyMaterializeInputStreams=true;fullyMaterializeLobData=true;progresssiveLocators=2;progressiveStreaming=2; setup.database.url[hypersonic]=jdbc:hsqldb:${liferay.home}/data/hypersonic/lportal setup.database.url[mariadb]=jdbc:mariadb://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false setup.database.url[mysql]=jdbc:mysql://localhost/lportal?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&useFastDateParsing=false&useUnicode=true setup.database.url[oracle]=jdbc:oracle:thin:@localhost:1521:xe setup.database.url[postgresql]=jdbc:postgresql://localhost:5432/lportal setup.database.url[sqlserver]=jdbc:sqlserver://localhost;databaseName=lportal setup.database.url[sybase]=jdbc:sybase:Tds:localhost:5000/lportal
Set this property to true if the Setup Wizard should be displayed the first time the portal is started.
Defaults:setup.wizard.enabled=true
source.forge.mirrors=\ http://downloads.sourceforge.net,\ # Redirect http://internap.dl.sourceforge.net,\ # San Jose, CA http://superb-east.dl.sourceforge.net,\ # McLean, Virginia http://superb-west.dl.sourceforge.net,\ # Seattle, Washington http://easynews.dl.sourceforge.net,\ # Phoenix, AZ http://kent.dl.sourceforge.net,\ # Kent, UK http://ufpr.dl.sourceforge.net,\ # Curitiba, Brazil http://belnet.dl.sourceforge.net,\ # Brussels, Belgium http://switch.dl.sourceforge.net,\ # Lausanne, Switzerland http://mesh.dl.sourceforge.net,\ # Duesseldorf, Germany http://ovh.dl.sourceforge.net,\ # Paris, France http://dfn.dl.sourceforge.net,\ # Berlin, Germany http://heanet.dl.sourceforge.net,\ # Dublin, Ireland http://garr.dl.sourceforge.net,\ # Bologna, Italy http://surfnet.dl.sourceforge.net # Amsterdam, The Netherlands http://jaist.dl.sourceforge.net,\ # Ishikawa, Japan http://nchc.dl.sourceforge.net,\ # Tainan, Taiwan http://optusnet.dl.sourceforge.net # Sydney, Australia
You can add a listener for a specific class by setting the property "value.object.listener" with a list of comma delimited class names that implement com.liferay.portal.kernel.model.ModelListener. These classes are pooled and reused and must be thread safe.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:value.object.listener.com.liferay.portal.kernel.model.Contact=com.liferay.portal.model.ContactModelListener value.object.listener.com.liferay.portal.kernel.model.Layout=com.liferay.portal.model.LayoutModelListener,com.liferay.portal.service.impl.LayoutSetPrototypeLayoutModelListener value.object.listener.com.liferay.portal.kernel.model.LayoutSet=com.liferay.portal.model.LayoutSetModelListener,com.liferay.portal.service.impl.LayoutSetPrototypeLayoutSetModelListener value.object.listener.com.liferay.portal.kernel.model.PortletPreferences=com.liferay.portal.model.PortletPreferencesModelListener value.object.listener.com.liferay.portal.kernel.model.User=com.liferay.portal.model.UserModelListener value.object.listener.com.liferay.portal.kernel.model.UserGroup=com.liferay.portal.model.UserGroupModelListener
Value objects are cached at three levels. They first level is "entity", the second level is "finder", and the third level is "Hibernate".
The entity level cache stores a value object's primary key to the value object itself.
The finder level cache stores the many paths that return a value object and the many paths that return a list of value objects. The finder level cache only caches primary keys and is further helped by the entity level cache that caches the value object to the primary key.
The Hibernate level cache is provided by the "hibernate.cache.provider_class" property.
Set this to true to enable entity level caching.
Defaults:value.object.entity.cache.enabled=true
Set this to true to configure entity level caching to block. See the property "ehcache.blocking.cache.allowed" for more information.
Defaults:value.object.entity.blocking.cache=true
The entity level cache uses a thread local map to store the most frequently accessed items to lower the number of queries to the underlying cache. Set the maximum map size to 0 to disable the thread level cache.
Defaults:value.object.entity.thread.local.cache.max.size=100
Entity level caching for a specific type of value object can be configured by using a property name that includes the value object's class name.
Defaults:value.object.entity.cache.enabled.com.liferay.portal.kernel.model.Layout=true value.object.entity.cache.enabled.com.liferay.portal.kernel.model.User=true
Set this property to true to enable MVCC entity level caching. This feature only applies to entities with that are MVCC enabled. See the attribute "mvcc-enabled" in the Service Builder DTD.
Defaults:value.object.mvcc.entity.cache.enabled=true
Set this to true to enable finder level caching.
Defaults:value.object.finder.cache.enabled=true
Set this to configure the list threshold for the maximum number of objects to cache with the same finder path and arguments. Setting this to 0 disables finder level caching. Setting this to -1 disables the threshold.
Defaults:value.object.finder.cache.list.threshold=10000
The finder level cache uses a thread local map to store the most frequently accessed items to lower the number of queries to the underlying cache. Set the maximum map size to 0 to disable the thread level cache.
Defaults:value.object.finder.thread.local.cache.max.size=100
Finder level caching for a specific type of value object can be configured by using a property name that includes the value object's class name. Mapping tables can also be specified to configure the caching of value object relationships.
Defaults:value.object.finder.cache.enabled.com.liferay.portal.kernel.model.Layout=true value.object.finder.cache.enabled.com.liferay.portal.kernel.model.User=true value.object.finder.cache.enabled.Users_Roles=true
Set a list of comma delimited mapping table names that will not be using cache in their table mappers.
Defaults:table.mapper.cacheless.mapping.table.names=\ Users_Groups,\ Users_Orgs,\ Users_Roles,\ Users_Teams,\ Users_UserGroups
audit.message.com.liferay.portal.kernel.model.Layout.VIEW=false
Buffered incrementing provides logic to batch together requests for writing view count increments to the database. Minimizing these database hits can improve overall performance.
Buffered incrementing only applies to service methods annotated with the @BufferedIncrement(...) annotation. By default, it is used with methods that increment view counters for Message Boards threads, Document Library file entries, and Asset entries.
Disabling buffered increment logic will result in the service methods annotated with the @BufferedIncrement annotation being skipped. Only do this if you want to completely disable the view counters.
If you want to keep the view counters enabled but avoid using the buffered increment logic, one option is to remove the BufferedIncrementAdvice bean from base-spring.xml. As an alternative to disabling the buffered increment logic, consider disabling its standby logic by setting the "buffered.increment.standby.queue.threshold" and "buffered.increment.standby.time.upper.limit" properties to 0.
Defaults:buffered.increment.enabled=true
The standby properties manage the time the dispatcher waits to process an increment requests. The longer the dispatcher waits to process a request, the greater the probability that incoming requests, involving the same entity instances (entries), can be batched together.
For example, if the same Message Boards thread (MBThread instance) is viewed multiple times (n times) while an existing view increment request for that MBThread is waiting to be dispatched, then the incoming increments can be added to the increment value of the existing request. The resulting view count increment for the existing entry then would be modified to 1 + n times and the incoming requests would be discarded. This minimizes the database hits for incrementing that entry. Since the incoming requests were no longer needed, and hence discarded, the memory required for incrementing the view count of the entry was minimized too.
Worker threads submit new increment requests to a BatchablePipe and notify the dispatcher thread pool of the requests. The pipe acts as a mailbox holding increment requests in a queue for the dispatcher to process. On receiving a new increment request, the pipe checks if it already has a request for the same entry. If it does, the pipe adds the incoming increment to the existing entry's increment value and discards the incoming increment request. If it doesn't find an existing request for the same entry, the incoming request is simply added to the tail of the queue.
On being notified by the worker thread of increment requests submitted to the BatchablePipe, the thread pool checks the status of its dispatch threads. If no dispatch threads exist, it creates one. If an idle thread exists, it wakes it up. If threads exist but they are all active, the thread pool leaves them alone. Active dispatch threads check the pipe's queue for requests to process.
The dispatch threads apply the standby logic before processing each request from the pipe. They calculate the standby time for the request at the head of the pipe's queue based on the queue threshold. If the number of requests in the queue exceeds the threshold, the dispatch thread processes the head request as quickly as possible, without waiting. If the number of requests is within the threshold, the dispatch thread calculates the standby time for the head request to be the standby time upper limit (in seconds) divided by the number of requests in the queue. The fewer requests in the queue, the longer the head request waits on standby.
Consider the tradeoff between overall performance and delay in view count updates as you configure standby waiting. The standby times applied to the requests have a linear inverse ratio relationship to the number of requests in the pipe. The standby time is not constant. The fewer requests inside the queue, the longer they wait in standby. This logic increases the probability of maximizing the batching of requests for dispatch. The following chart illustrates the relationship:
^ standby time | |\<---buffered.increment.standby.time.upper.limit | \ | \ | \ | \ --------------> current BatchablePipe size 0 ^ | buffered.increment.standby.queue.threshold
Typical settings for the queue threshold and upper time limit of a heavy loaded system could be 10000 requests and 60 seconds, respectively.
If either the queue threshold or upper time limit are set to 0, requests are processed from the queue as quickly as possible, without waiting. Negative values for either property are treated as 0.
Defaults:buffered.increment.standby.queue.threshold=0 buffered.increment.standby.time.upper.limit=0
The dispatcher thread pool manages the lifecycle of the dispatch threads. By default, the thread pool is configured to use a single dispatch thread. Buffered incrementing is designed for optimal performance using a single dispatch thread.
Set the "buffered.increment.threadpool.keep.alive.time" property to the maximum idle time before a dispatch thread can be recycled. Negative values for this property are treated as 0.
The "buffered.increment.threadpool.max.size" property value should, in in most cases, remain set to 1. If for some reason, more than one dispatch thread is desired, know that this goes against the design of buffered incrementing and may result in less than optimal performance. Values less than or equal to 0 for this property are treated as 1.
Defaults:buffered.increment.threadpool.keep.alive.time=60 buffered.increment.threadpool.max.size=1
Override the global buffered increment settings with specific settings for the AssetEntry view counter.
Examples:buffered.increment.enabled[AssetEntry]=true buffered.increment.standby.queue.threshold[AssetEntry]=0 buffered.increment.standby.time.upper.limit[AssetEntry]=0 buffered.increment.threadpool.keep.alive.time[AssetEntry]=60 buffered.increment.threadpool.max.size[AssetEntry]=1
Override the global buffered increment settings with specific settings for the DLFileEntry view counter.
Examples:buffered.increment.enabled[DLFileEntry]=true buffered.increment.standby.queue.threshold[DLFileEntry]=0 buffered.increment.standby.time.upper.limit[DLFileEntry]=0 buffered.increment.threadpool.keep.alive.time[DLFileEntry]=60 buffered.increment.threadpool.max.size[DLFileEntry]=1
Override the global buffered increment settings with specific settings for the DLFolderEntry last post date.
Examples:buffered.increment.enabled[DLFolderEntry]=true buffered.increment.standby.queue.threshold[DLFolderEntry]=0 buffered.increment.standby.time.upper.limit[DLFolderEntry]=0 buffered.increment.threadpool.keep.alive.time[DLFolderEntry]=60 buffered.increment.threadpool.max.size[DLFolderEntry]=1
Override the global buffered increment settings with specific settings for the MBThread view counter.
Examples:buffered.increment.enabled[MBThread]=true buffered.increment.standby.queue.threshold[MBThread]=0 buffered.increment.standby.time.upper.limit[MBThread]=0 buffered.increment.threadpool.keep.alive.time[MBThread]=60 buffered.increment.threadpool.max.size[MBThread]=1
Clear cache on context initialization.
Defaults:cache.clear.on.context.initialization=true
Clear cache when plugins are undeployed.
Defaults:cache.clear.on.plugin.undeploy=true
The cache filter caches processed web content. Set the threshold size to prevent caching resources that are too large. The default value is 500 kb.
Defaults:cache.content.threshold.size=512000
Set this to false to disable user agent matching in the cache filter. Excluding the user agent improves the cache hit ratio but should not be used when content is browser specific. Each cache filter can be individually configured with the "includeUserAgent" init parameter.
Defaults:cache.filter.include.user.agent=true
Set the cluster node bootup response timeout in milliseconds.
Defaults:cluster.link.node.bootup.response.timeout=10000
Set this to true to enable the cluster link. This is required if you want to cluster indexing and other features that depend on the cluster link.
Defaults:cluster.link.enabled=false
Set the logic name for each JGroups channel. The logic name must be unique for each node in the cluster. If it is not set, a random logic name will be generated. We support up to 10 transport channels and 1 single required control channel.
Defaults:cluster.link.channel.logic.name.control= cluster.link.channel.logic.name.transport.0=Examples:
cluster.link.channel.logic.name.transport.1=
Set the name for each JGroups channel. We support up to 10 transport channels and 1 single required control channel.
Defaults:cluster.link.channel.name.control=liferay-channel-control cluster.link.channel.name.transport.0=liferay-channel-transport-0Examples:
cluster.link.channel.name.transport.1=liferay-channel-transport-1
Set the JGroups properties for each channel, we support up to 10 transport channels and 1 single required control channel. Use as few transport channels as possible for best performance. By default, only one UDP control channel and one UDP transport channel are enabled. Channels can be configured by XML files that are located in the class path or by inline properties.
Defaults:cluster.link.channel.properties.control=UDP(bind_addr=${cluster.link.bind.addr["cluster-link-control"]};mcast_group_addr=${multicast.group.address["cluster-link-control"]};mcast_port=${multicast.group.port["cluster-link-control"]}):PING:MERGE3(min_interval=10000;max_interval=30000):FD_SOCK:FD_ALL:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK2(xmit_interval=500;xmit_table_num_rows=100;xmit_table_msgs_per_row=2000;xmit_table_max_compaction_time=30000;max_msg_batch_size=500;use_mcast_xmit=false;discard_delivered_msgs=true):UNICAST3(xmit_interval=500;xmit_table_num_rows=100;xmit_table_msgs_per_row=2000;xmit_table_max_compaction_time=60000;conn_expiry_timeout=0;max_msg_batch_size=500):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=4M):pbcast.GMS(join_timeout=2000;print_local_addr=true;view_bundling=true):UFC(max_credits=2M;min_threshold=0.4):MFC(max_credits=2M;min_threshold=0.4):FRAG2(frag_size=60K):RSVP(resend_interval=2000;timeout=10000) cluster.link.channel.properties.transport.0=UDP(bind_addr=${cluster.link.bind.addr["cluster-link-udp"]};mcast_group_addr=${multicast.group.address["cluster-link-udp"]};mcast_port=${multicast.group.port["cluster-link-udp"]}):PING:MERGE3(min_interval=10000;max_interval=30000):FD_SOCK:FD_ALL:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK2(xmit_interval=500;xmit_table_num_rows=100;xmit_table_msgs_per_row=2000;xmit_table_max_compaction_time=30000;max_msg_batch_size=500;use_mcast_xmit=false;discard_delivered_msgs=true):UNICAST3(xmit_interval=500;xmit_table_num_rows=100;xmit_table_msgs_per_row=2000;xmit_table_max_compaction_time=60000;conn_expiry_timeout=0;max_msg_batch_size=500):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=4M):pbcast.GMS(join_timeout=2000;print_local_addr=true;view_bundling=true):UFC(max_credits=2M;min_threshold=0.4):MFC(max_credits=2M;min_threshold=0.4):FRAG2(frag_size=60K):RSVP(resend_interval=2000;timeout=10000)Examples:
cluster.link.channel.properties.transport.1=udp.xml cluster.link.channel.properties.transport.2=mping.xml
Set JGroups' system properties. System properties are only used when individual properties are not set.
Defaults:cluster.link.channel.system.properties= # # Common # #\ #jgroups.bind_addr:${cluster.link.bind.addr["cluster-link-udp"]},\ #jgroups.bind_interface:eth0,\ #\ # # Multicast # #\ #jgroups.mping.mcast_addr:${multicast.group.address["cluster-link-mping"]},\ #jgroups.mping.mcast_port:${multicast.group.port["cluster-link-mping"]},\ #jgroups.mping.ip_ttl:8
Set this property to autodetect the default outgoing IP address so that JGroups can bind to it. The property must point to an address that is accessible to the portal server, www.google.com, or your local gateway.
Defaults:cluster.link.autodetect.address=www.google.com:80
Set the bind address for JGroups directly, it only works when the property "cluster.link.autodetect.address" is not set. See the property "cluster.link.channel.properties.control" for more information.
Defaults:cluster.link.bind.addr["cluster-link-control"]=localhost
Set bind address for jgroups directly, it only works when "cluster.link. autodetect.address" is not set. See the properties "cluster.link.channel. properties.transport.0" and "cluster.link.channel.system.properties".
Defaults:cluster.link.bind.addr["cluster-link-udp"]=localhost
Set the clusterable advice call master timeout in seconds.
Defaults:clusterable.advice.call.master.timeout=10
A file extension of * will permit all file extensions.
Defaults:combo.allowed.file.extensions=.css,.js
The combo servlet combines multiple JavaScript files into a bundle based on shared dependencies. This makes loading JavaScript files much faster. Set this to false if the combination should refresh when one of its JavaScript files has changed. This property should be set to true during development for easier debugging but set to false during production for faster performance.
Defaults:combo.check.timestamp=false
Set the minimum wait interval in milliseconds between timestamp checks on resource files. This property is only used if the property "combo.check.timestamp" is set to true.
Defaults:combo.check.timestamp.interval=1000
Set the hostname that will be used to serve static content via a CDN for requests made over the HTTP protocol. This property can be disabled dynamically at runtime by setting the URL parameter "cdn_enabled" to "0". The value must always include the full protocol.
Defaults:cdn.host.http=
Set the hostname that will be used to serve static content via a CDN for requests made over the HTTPS protocol. This property can be disabled dynamically at runtime by setting the URL parameter "cdn_enabled" to "0". The value must always include the full protocol.
Defaults:cdn.host.https=
Set this to true to enable serving dynamically generated CSS, JavaScript, and images via a CDN. Setting this to false allows the usage of CDNs that do not support lazy loading of resources (e.g. Amazon CloudFront).
Defaults:cdn.dynamic.resources.enabled=true
Specify the total number of deployment data centers. Each data center is independent of each other (e.g. not clustered together) and connected via a two way database replication.
Defaults:counter.data.center.count=1
Set the unique identifier for a data center deployment between 0 and the value in the property "counter.data.center.count" minus 1. This will ensure that each data center will generate unique counter values without fear of collision.
The data center algorithm will first shift the counter value to the right by the number of bits needed to represent the value in the property "counter.data.center.count" and then prepend the bits needed to represent the value in "counter.data.center.deployment.id" to the left most byte of the counter value.
Defaults:counter.data.center.deployment.id=0
The counter operates with its own data source to prevent deadlocks. By default, the data source created for the counter uses the same settings as those used to create the data source used for the rest of the portal. That happens because the counter service will look up the properties prefixed with "jdbc.default." to create its data source. See the JDBC properties prefixed with "jdbc.default." for more information.
Setting a different value for the counter JDBC prefix allows you to better fine tune the counter data source with its own set of configuration settings for high availability installations. Note that these settings, though separate, are a copy of the default settings with the newly overridden values.
Defaults:counter.jdbc.prefix=jdbc.default.
Set the number of increments between database updates to the Counter table. Set this value to a higher number for better performance.
Defaults:counter.increment=100
You can further fine tune the counter increment for specific counter names. This entry will ensure that the counter name "com.liferay.portal.kernel.model.Layout" or anything that starts with "com.liferay.portal.kernel.model.Layout#" will only increment by 1.
Defaults:counter.increment.com.liferay.portal.kernel.model.Layout=1
Set this to true to enable dispatching to a servlet directly to speed up request dispatching. This property only takes effect when a developer programmatically wraps a normal ServletContext with a DirectServletContext. See LPS-13776 for more information.
Defaults:direct.servlet.context.enabled=true
Set this to true to refresh the servlet associated with a JSP when the JSP has been modified. This property is not used unless the property "direct.servlet.context.enabled" is set to true.
Defaults:direct.servlet.context.reload=true
The ETag filter needs to process the response in order to calculate the ETag value. A large response may use too much memory. Set the maximum response size that will trigger an ETag calculation. The default maximum response size is 1 megabyte.
Defaults:etag.response.size.max=1048576
The GZip filter will compress files using the specified compression level. Set the value to -1 to use the default compression level. Set the value between 0 and 9 for other compression levels as documented in java.util.zip.Deflater.
Defaults:gzip.compression.level=-1
See system.properties for more HTTP settings.
Set the maximum number of connections per host.
Examples:com.liferay.portal.util.HttpImpl.max.connections.per.host=2 com.liferay.portal.util.HttpImpl.max.connections.per.host[rss.news.yahoo.com]=2
Set the maximum number of connections.
Examples:com.liferay.portal.util.HttpImpl.max.total.connections=20
Set the proxy authentication type.
Examples:com.liferay.portal.util.HttpImpl.proxy.auth.type=username-password com.liferay.portal.util.HttpImpl.proxy.auth.type=ntlm
Set user name and password used for HTTP proxy authentication.
Examples:com.liferay.portal.util.HttpImpl.proxy.username= com.liferay.portal.util.HttpImpl.proxy.password=
Set additional properties for NTLM authentication.
Examples:com.liferay.portal.util.HttpImpl.proxy.ntlm.domain= com.liferay.portal.util.HttpImpl.proxy.ntlm.host=
Set the connection timeout when fetching HTTP content.
Defaults:com.liferay.portal.util.HttpImpl.timeout=10000Examples:
com.liferay.portal.util.HttpImpl.timeout[rss.news.yahoo.com]=10000
See system.properties for more HTTP Header Response settings.
Set the level of verbosity to use for the Liferay-Portal field in the HTTP header response. Valid values are "full", which gives all of the version information (e.g. Liferay Portal Community Edition 6.1.0 CE etc.), "partial", which gives only the name portion (e.g. Liferay Portal Community Edition), or the default release name (e.g. "Liferay Portal Community Edition" or "Liferay Portal Enterprise Edition"), which prevents the Portal from adding the Liferay-Portal field in the HTTP header response. The default release name must match the Portal edition being used.
Defaults:http.header.version.verbosity=full
Do not set this property to false in production environments. It overrides the SSL hostname verification and is used for self assigned certificates. See LPS-18038.
Defaults:com.liferay.portal.kernel.service.http.TunnelUtil.verify.ssl.hostname=true
Set this to the appropriate encryption algorithm that will be used for tunnel level encryption algorithms.
If you change this setting, you may need to also change the property "tunneling.servlet.shared.secret" to make sure that the shared secret length is a valid length for the encryption algorithm.
For more details about encryption keys, see the Java Cryptography Extension documentation.
Defaults:tunneling.servlet.encryption.algorithm=AESExamples:
tunneling.servlet.encryption.algorithm=Blowfish tunneling.servlet.encryption.algorithm=DESede
Set this shared secret to secure communications from one portal to another via the tunneling servlet. This portal will refuse communications from other portals that do not share the same secret.
Secrets must be at least 8 bytes long. Please note that using a secret that is larger than 16 bytes requires that the Java Cryptography Extension Unlimited Strength Jurisdiction Policy Files are installed and that the property "tunneling.servlet.encryption.algorithm" supports that particular key size.
For more details about supported key sizes for encryption keys, see the Java Cryptography Extension documentation.
Examples:tunneling.servlet.shared.secret=
When set to true, tunneling.servlet.shared.secret must be encoded using a hexadecimal encoding.
Examples:tunneling.servlet.shared.secret.hex=true
Set a timeout to enforce a connection timeout for connections between servers via the tunneling servlet. Without setting this value, the actual timeout enforced may vary between environments.
Defaults:tunneling.servlet.timeout=30000
Set this to true to enable ImageMagick. You must install Ghostscript and Imagemagick. See http://www.ghostscript.com and http://www.imagemagick.org for more information.
The search path should point to the directories for the ImageMagick and Ghostscript executables. You may also need to configure the path for fonts used by Ghostscript when in Apple or Unix environments.
Defaults:imagemagick.enabled=false imagemagick.global.search.path[apple]=/opt/local/bin:/opt/local/share/ghostscript/fonts:/opt/local/share/fonts/urw-fonts imagemagick.global.search.path[unix]=/usr/local/bin:/usr/local/share/ghostscript/fonts:/usr/local/share/fonts/urw-fonts imagemagick.global.search.path[windows]=C:\\Program Files\\gs\\bin;C:\\Program Files\\ImageMagick
Set these limits to configure the cache and resource usage of ImageMagick. To determine the current setting of these limits, run the command:
identify -list resource
See http://www.imagemagick.org/script/architecture.php for more information.
Defaults:imagemagick.resource.limit.area=2GiB imagemagick.resource.limit.map=1GiB imagemagick.resource.limit.memory=2GiBExamples:
imagemagick.resource.limit.disk=16GiB imagemagick.resource.limit.file=256 imagemagick.resource.limit.thread=2 imagemagick.resource.limit.time=3600
Specify the class name of an Intraband implementation. The class must implement the com.liferay.portal.kernel.nio.intraband.Intraband interface.
If you leave the value blank, the portal makes a best effort in choosing an implementation for optimal performance on your system, considering your Intraband welder.
If com.liferay.portal.kernel.nio.intraband.welder.socket.SocketWelder is your Intraband welder, either explicitly configured for your "intraband.welder.impl" property value or automatically chosen by the portal, then the portal chooses the com.liferay.portal.kernel.nio.intraband.nonblocking.SelectorIntraband class as the Intraband implementation.
Otherwise the portal chooses the com.liferay.portal.kernel.nio.intraband.blocking.ExecutorIntraband class as the Intraband implementation.
Performance tips:
FIFO, if provided by your Linux or Unix OS, only works with ExecutorIntraband. To use FIFO, you must either specify the ExecutorIntraband class as the Intraband implementation or leave the value blank for the portal to automatically choose it.
SelectorIntraband uses a Selector instance to manage all registered SelectableChannels. It uses the Selector instance with a single polling thread to serve all read/write requests. SelectorIntraband has a lower CPU overhead than ExecutorIntraband. However, SelectorIntraband can potentially have unnecessary read/write latency (if any callback is holding the polling thread).
ExecutorIntraband works with any ScatteringByteChannel/GatheringByteChannel registered pair. ExecutorIntraband launches a dedicated polling thread for each channel, in blocking mode. So ExecutorIntraband has higher CPU overhead than SelectorIntraband, but since each channel polling is isolated, ExecutorIntraband can provide better throughput and response time.
For a system that requires tons of connections over Intraband, it is best to use SelectorIntraband to avoid massive polling threads.
For a system that requires limited connections over Intraband, it is best to use ExecutorIntraband to maximize throughput and response time.
Defaults:intraband.impl=Examples:
intraband.impl=com.liferay.portal.kernel.nio.intraband.blocking.ExecutorIntraband intraband.impl=com.liferay.portal.kernel.nio.intraband.nonblocking.SelectorIntraband
Set this to true to launch a separate dedicated thread to reap overdue mail. Otherwise, the overdue mail is reaped in a lazy manner--reaped only when new mail comes in and old mail goes out.
Performance tips:
With the dedicated reaper thread, overdue mail is reaped in a timely manner, reducing the memory footprint but costing more CPU power. Without the dedicated reaper thread, CPU power is conserved but the memory footprint can potentially grow large.
Generally, for small and frequent mail messages, it is better to turn this off. For huge and infrequent mail messages, it is better to turn this on.
Defaults:intraband.mailbox.reaper.thread.enabled=false
Set the number of milliseconds to keep mail living in the mailbox.
Defaults:intraband.mailbox.storage.life=10000
Set the directory name to contain the dump out class files. This directory will be created under operation system's temporary directory.
Defaults:intraband.proxy.dump.classes.dir=IntrabandProxyClasses
Set this to true to dump out generated proxy classes as class files into the directory specified by the property "intraband.proxy.dump.classes.dir".
Defaults:intraband.proxy.dump.classes.enabled=true
Set default Intraband synchronized operation timeout time in milliseconds.
Defaults:intraband.timeout.default=10000
Specify the class name of an Intraband welder. The class must implement the com.liferay.portal.kernel.nio.intraband.welder.Welder interface.
If you leave the value blank, the portal makes a best effort in choosing an implementation for optimal performance on your system.
If your system's OS is not Windows and the portal finds mkfifo command in your system's PATH, the portal chooses the FIFO welder class com.liferay.portal.kernel.nio.intraband.welder.fifo.FIFOWelder.
Otherwise, the portal chooses the socket welder class com.liferay.portal.kernel.nio.intraband.welder.socket.SocketWelder.
Consider the following example that compares the performance of these two welders:
On average, the FIFO welder outperforms the socket welder on both throughput and response latency, until packages reach about 2 to 4 megabytes in size.
On an uncustomized modern Linux kernel, the best package size for the FIFO FIFO welder is 64 kilobytes. The FIFO welder's best package size is the system's maximum non-blocking package size. To calculate it for your system, multiply your system's pipe size (ulimit -p) by the number of kernel buffers your system can allocate.
Executing 'ulimit -p' returns the following pipe size:
pipe size (512 bytes) * 8 = 4 kilobytes
The kernel can allocate up to 16 buffers. Multiplying the pipe size by the the number of buffers results in the system's maximum non-blocking package size:
4 kilobytes * 16 kernel buffers = 64 kilobytes
As package size grows past this best size, the FIFO welder's performance declines, but is still better than the socket welder's performance; that is, until the package size reaches about 2 to 4 megabytes. At that package size, FIFO welder performs the same as socket welder. It's only when packages are greater than that size that socket welder performs better. For these huge packages, you can either use the socket welder class or recompile the Linux kernel to support a larger pipe size and more kernel buffers.
Defaults:intraband.welder.impl=Examples:
intraband.welder.impl=com.liferay.portal.kernel.nio.intraband.welder.fifo.FIFOWelder intraband.welder.impl=com.liferay.portal.kernel.nio.intraband.welder.socket.SocketWelder
Set the send and receive buffer size, in bytes, for both the server and client socket peers.
Defaults:intraband.welder.socket.buffer.size=65536
Specify whether to keep the socket on both the server and client socket peers alive.
Defaults:intraband.welder.socket.keep.alive=false
Specify whether to recycle the address on the server and client socket peers and on the temporary server socket channel.
Defaults:intraband.welder.socket.reuse.address=true
Specify a port number from which the SocketWelder automatically starts searching for an available port to open up a temporary ServerSocketChannel to bind the server and client. Since it doesn't matter which port this ServerSocketChannel listens on, SocketWelder uses to the first available port.
After one client socket is accepting, the ServerSocketChannel is closed and recycled.
Defaults:intraband.welder.socket.server.start.port=32354
Specify how long, if at all, the socket should linger on both the server and client socket peers. This value is used as the integer parameter in the call to Socket.setSoLinger(boolean, int).
A non-positive value turns off lingering resulting in calling Socket.setSoLinger(false, int).
Defaults:intraband.welder.socket.so.linger=0
Specify the SO_TIMEOUT on both the server and client socket peers. This value is used in calling to Socket.setSoTimeout(int).
Defaults:intraband.welder.socket.so.timeout=0
Specify whether to enable TCP_NODELAY on both the server and client socket peers. This value is used in the calling Socket.setTcpNoDelay(boolean).
Defaults:intraband.welder.socket.tcp.no.delay=true
The invoker filter will attempt to cache InvokerFilterChain objects based on the request URI and dispatcher. Set this property to false to disable caching of InvokerFilterChain objects.
Defaults:invoker.filter.chain.cache.enabled=true
The invoker filter will reject any request to the portal where the request URI is longer than this value. For technical reasons, we should generally not allow more than 4000 characters.
Defaults:invoker.filter.uri.max.length=4000
Set this property to true to enable runtime querying of Javadoc information. This is used by the JSON web service at http://localhost:8080/api/jsonws to give users better information about the API. The Javadoc manager uses very little memory and has little effect on the startup time, but both can be optimized by disabling this feature.
Defaults:javadoc.manager.enabled=true
Set this to true to require JSON service calls to have a valid authentication token. This property is not used unless the property "auth.token.check.enabled" is also set to true.
Defaults:json.service.auth.token.enabled=true
Input a list of comma delimited IPs that can access the JSON service without specifying an authentication token. Input a blank list to allow any IP to access the JSON service. SERVER_IP will be replaced with the IP of the host server.
The default value of 255.255.255.255 means that no one can access the JSON service without an authentication token since 255.255.255.255 is an invalid IP.
Defaults:json.service.auth.token.hosts.allowed=255.255.255.255
Input a list of comma delimited class names that cannot be invoked via JSON.
Defaults:json.service.invalid.class.names=\ com.liferay.documentlibrary.service.DLAppServiceUtil,\ com.liferay.mail.kernel.service.MailServiceUtil,\ com.liferay.portal.kernel.service.CompanyServiceUtil,\ com.liferay.portal.kernel.service.PortalServiceUtil,\ com.liferay.portal.kernel.service.PortletServiceUtil
Input a list of comma delimited method names that cannot be invoked via JSON.
Defaults:json.service.invalid.method.names=\ getOSGiServiceIdentifier
Set this property to true to enable JSON web services. Note that setting this to false will cause portlets that make JSON web service calls from working.
Defaults:json.web.service.enabled=true
Set this property to true if JSON web services are discoverable through the API page.
Defaults:jsonws.web.service.api.discoverable=true
Input a list of comma delimited HTTP methods that are not accessible. For example, if you want to have a read only API, then set this property to "DELETE,POST,PUT".
Defaults:jsonws.web.service.invalid.http.methods=
Set this property to true to ensure that a JSON web service action can only be invoked by its expected HTTP method.
For example, the annotation com.liferay.portal.kernel.jsonwebservice.JSONWebService may configure the expected HTTP method for an action to be a GET request. However, the URL for that GET request may be too long, and so you may need to call that with a POST request. Setting this property to false loosens this requirement and allows the POST request to invoke an action that is supposed to only be called by a GET request.
Defaults:jsonws.web.service.strict.http.method=false
The property "jsonws.web.service.paths.excludes" denotes patterns for JSON web service action paths that are not allowed even if they match one of the patterns set in "jsonws.web.service.paths.includes".
Defaults:jsonws.web.service.paths.excludes=
The property "jsonws.web.service.paths.includes" denotes patterns for JSON web service action paths that are allowed. Set a blank pattern to allow any service action path.
Defaults:jsonws.web.service.paths.includes=
Set this to true to enable tracking via Live Users.
Defaults:live.users.enabled=false
Input a list of comma delimited class names that implement com.liferay.portal.kernel.lock.LockListener. A lock listener allows you to specify logic around how an object is locked. The implementation must be thread safe.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:lock.listeners=com.liferay.portlet.documentlibrary.util.DLFileEntryLockListener
Set the lock expiration time for each class.
Locks for publishing processes should expire after 10 minutes.
Defaults:lock.expiration.time.com.liferay.portal.kernel.staging.Staging=600000
Locks for document library folders should expire after 1 day.
Defaults:lock.expiration.time.com.liferay.document.library.kernel.model.DLFolder=86400000
Locks for document library files should expire after 1 day.
Defaults:lock.expiration.time.com.liferay.document.library.kernel.model.DLFileEntry=86400000
Locks for message board threads should never expire.
Defaults:lock.expiration.time.com.liferay.message.boards.model.MBThread=0
Set the batch size for outbound emails. Set this property to 0 to submit to the mail server a request to send an email with multiple recipients all at once. Set a value greater than 0 to split up the list of recipients by the batch size so that multiple requests are submitted to the mail server to ensure that the mail server's recipient size limit is not reached.
Defaults:mail.batch.size=0
Set the JNDI name to lookup the Java Mail session. If none is set, then the portal will attempt to create the Java Mail session based on the properties prefixed with "mail.session.".
Examples:mail.session.jndi.name=mail/MailSession
Set the properties used to create the Java Mail session. The property prefix "mail.session." will be removed before it is used to create the session object. These properties will only be read if the property "mail.session.jndi.name" is not set.
Defaults:mail.session.mail=false mail.session.mail.pop3.host=localhost mail.session.mail.pop3.password= mail.session.mail.pop3.port=110 mail.session.mail.pop3.user= mail.session.mail.smtp.auth=false mail.session.mail.smtp.host=localhost mail.session.mail.smtp.password= mail.session.mail.smtp.port=25 mail.session.mail.smtp.user= mail.session.mail.store.protocol=pop3 mail.session.mail.transport.protocol=smtp
Set this to false if an administrator should not be allowed to change the mail domain via the Admin portlet.
Defaults:mail.mx.update=true
Input a list of comma delimited email addresses that will receive a BCC of every email sent through the mail server.
Defaults:mail.audit.trail=
Set the name of a class that implements com.liferay.mail.util.Hook. The mail server will use this class to ensure that the mail and portal servers are synchronized on user information. The portal will not know how to add, update, or delete users from the mail server except through this hook.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:mail.hook.impl=com.liferay.mail.util.DummyHook mail.hook.impl=com.liferay.mail.util.SendmailHook mail.hook.impl=com.liferay.mail.util.ShellHook
SendmailHook
Set the commands for adding, updating, and deleting a user where %1% is the user ID and %2% is the password. Set the home and virtual user table information.
Defaults:mail.hook.sendmail.add.user=adduser %1% -s /bin/false mail.hook.sendmail.change.password=autopasswd %1% %2% mail.hook.sendmail.delete.user=userdel -r %1% mail.hook.sendmail.home=/home mail.hook.sendmail.virtusertable=/etc/mail/virtusertable mail.hook.sendmail.virtusertable.refresh=bash -c "makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable"
ShellHook
Set the location of the shell script that will interface with any mail server.
Defaults:mail.hook.shell.script=/usr/sbin/mailadmin.ksh
Set this to true to throw an exception when com.liferay.util.mail.MailEngine fails to send an email.
Defaults:mail.throws.exception.on.failure=false
Set this to true to enable minification of CSS and JavaScript resources.
Defaults:minifier.enabled=true
The strip filter will attempt to cache inline minified CSS and JavaScript content. Set this property to false to disable caching of inline minified content.
Defaults:minifier.inline.content.cache.enabled=true
Input a list of comma delimited values that will cause the minified CSS to not be cached if those values are contained in the content.
Defaults:minifier.inline.content.cache.skip.css=
Input a list of comma delimited values that will cause the minified JavaScript to not be cached if those values are contained in the content.
Defaults:minifier.inline.content.cache.skip.javascript=getSessionId,encryptedUserId
Set this property to true to cache the user's device profile to the HTTP session. If this property is false, then the portal will perform device detection for each request.
Defaults:mobile.device.session.cache.enabled=true
Set this to true if mobile device rules should be published to live by default.
Defaults:mobile.device.rules.publish.to.live.by.default=true
This property defines the postfix that will be localized and appended to the name of a copied rule group.
Defaults:mobile.device.rules.rule.group.copy.postfix=copy
Set the module framework beginning start level. The module framework will proceed to this start level after all static bundles are installed. All static bundles will be configured to this start level by default during installation, unless they have been assigned a different value from the property "module.framework.initial.bundles".
Defaults:module.framework.beginning.start.level=6
Set the module framework runtime start level. The module framework will proceed to this start level after all dynamic bundles are installed.
Defaults:module.framework.dynamic.install.start.level=10
Set the module framework runtime start level. The module framework will proceed to this start level after the Spring context is initialized.
Defaults:module.framework.runtime.start.level=20
Set the module framework asynchronous stop wait timeout in milliseconds.
Defaults:module.framework.stop.wait.timeout=30000
Set the directory which will form the base path of the module framework.
Defaults:module.framework.base.dir=${liferay.home}/osgi
Set a comma delimited list of directories to scan for modules and configurations to auto deploy.
Defaults:module.framework.auto.deploy.dirs=\ ${module.framework.configs.dir},\ ${module.framework.marketplace.dir},\ ${module.framework.modules.dir},\ ${module.framework.war.dir}
Set the interval in milliseconds on how often to scan the directories for changes.
Defaults:module.framework.auto.deploy.interval=5000
Set the directory where the module framework configurations will be placed.
Defaults:module.framework.configs.dir=${module.framework.base.dir}/configs
Set the directory where the module framework marketplace applications will be placed.
Defaults:module.framework.marketplace.dir=${module.framework.base.dir}/marketplace
Set the directory where the module framework modules libraries will be placed.
Defaults:module.framework.modules.dir=${module.framework.base.dir}/modules
Set the directory where the module framework portal libraries will be placed.
Defaults:module.framework.portal.dir=${module.framework.base.dir}/portal
Set the directory where the module framework WAR applications will be placed.
Defaults:module.framework.war.dir=${module.framework.base.dir}/war
Set the directory where the module framework will persist its state.
Defaults:module.framework.state.dir=${module.framework.base.dir}/state
Set this to true to register Liferay's core services into the module framework.
Defaults:module.framework.register.liferay.services=trueDefaults:
module.framework.services.ignored.interfaces=\ com.liferay.portal.cache.thread.local.ThreadLocalCacheAdvice,\ com.liferay.portal.dao.jdbc.util.DataSourceSwapper,\ com.liferay.portal.dao.orm.hibernate.SessionFactoryImpl,\ com.liferay.portal.increment.BufferedIncrementAdvice,\ com.liferay.portal.kernel.dao.orm.SessionFactory,\ com.liferay.portal.kernel.security.pacl.PACLConstants,\ com.liferay.portal.messaging.async.AsyncAdvice,\ com.liferay.portal.resiliency.service.PortalResiliencyAdvice,\ com.liferay.portal.search.IndexableAdvice,\ com.liferay.portal.security.access.control.AccessControlAdvice,\ com.liferay.portal.security.lang.DoPrivilegedFactory,\ com.liferay.portal.service.persistence.impl.*,\ com.liferay.portal.systemevent.SystemEventAdvice,\ com.liferay.portal.verify.model.*,\ com.mchange.*,\ com.sun.*,\ java.*,\ org.aopalliance.*,\ org.apache.lucene.*,\ org.apache.tika.*,\ org.hibernate.*,\ org.springframework.*
Set a comma delimited list of jars that are deployed to the app server's "/WEB-INF/lib" directory to be statically included in all bundles.
Defaults:module.framework.static.jars=\ com.liferay.portal.osgi.web.jasper.plugins.taglib.jar,\ util-taglib.jar
Set a comma delimited list of Java packages that are exported to the module framework as extra system packages.
Defaults:module.framework.system.packages.extra=\ com.ibm.crypto.provider,\ com.ibm.db2.jcc,\ com.microsoft.sqlserver.jdbc,\ com.mysql.jdbc,\ com.p6spy.engine.spy,\ com.sun.security.auth.module,\ com.sybase.jdbc4.jdbc,\ oracle.jdbc,\ org.postgresql,\ org.hsqldb.jdbc,\ org.mariadb.jdbc,\ sun.misc,\ sun.net.util,\ sun.security.provider,\ \ # # WebSocket Support # \ com.ibm.websphere.wsoc,\ io.undertow.websockets.jsr,\ javax.websocket,\ javax.websocket.server,\ org.apache.tomcat.websocket.server,\ org.eclipse.jetty.websocket.server,\ org.glassfish.tyrus.servlet,\ weblogic.websocket.tyrus
Pass arbitrary extra properties to the framework using the prefix: "module.framework.properties." to avoid avoid colliding with other frameworks that may be running within the same JVM.
Defaults:module.framework.properties.ds.lock.timeout.milliseconds=1800000 module.framework.properties.ds.stop.timeout.milliseconds=1800000 module.framework.properties.felix.fileinstall.bundles.new.start=true module.framework.properties.felix.fileinstall.bundles.startActivationPolicy=false module.framework.properties.felix.fileinstall.bundles.startTransient=false module.framework.properties.felix.fileinstall.disableNio2=true module.framework.properties.felix.fileinstall.filter=(?!^override$).+ module.framework.properties.felix.fileinstall.log.level=2 module.framework.properties.felix.fileinstall.noInitialDelay=true module.framework.properties.felix.fileinstall.optionalImportRefreshScope=managed module.framework.properties.gosh.args=--noshutdown module.framework.properties.lpkg.deployer.dir=${module.framework.base.dir}/marketplace module.framework.properties.org.apache.felix.eventadmin.ThreadPoolSize=2Defaults:
module.framework.properties.org.osgi.framework.bootdelegation=\ __redirected,\ com.liferay.aspectj,\ com.liferay.aspectj.*,\ com.liferay.portal.servlet.delegate,\ com.liferay.portal.servlet.delegate*,\ com.sun.ccpp,\ com.sun.ccpp.*,\ com.sun.crypto.*,\ com.sun.image.*,\ com.sun.jmx.*,\ com.sun.jna,\ com.sun.jndi.*,\ com.sun.mail.*,\ com.sun.management.*,\ com.sun.media.*,\ com.sun.msv.*,\ com.sun.org.*,\ com.sun.syndication,\ com.sun.tools.*,\ com.sun.xml.*,\ com.yourkit.*,\ sun.*Defaults:
module.framework.properties.org.osgi.framework.bundle.parent=frameworkDefaults:
module.framework.properties.org.osgi.framework.system.capabilities.extra=Defaults:
module.framework.properties.osgi.compatibility.eagerStart.LazyActivation=false module.framework.properties.osgi.console=localhost:11311 module.framework.properties.osgi.context.bootdelegation=false module.framework.properties.osgi.module.lock.timeout=3600
Web Application Bundles (WABs) are defined by the OSGi standard and represent web applications as valid OSGi bundles.
Set a comma delimited list of packages to include for all WABs.
Defaults:module.framework.web.generator.default.servlet.packages=\ com.liferay.portal.model,\ com.liferay.portal.security.access.control,\ com.liferay.portal.security.auth,\ com.liferay.portal.security.permission,\ com.liferay.portal.service,\ com.liferay.portal.servlet,\ com.liferay.portal.servlet.filters.aggregate,\ com.liferay.portal.servlet.filters.dynamiccss,\ com.liferay.portal.osgi.web.servlet.jsp.compiler,\ com.liferay.portal.spring.context,\ com.liferay.portal.theme,\ com.liferay.portal.util,\ com.liferay.portlet,\ com.sun.el,\ com.sun.el.lang,\ com.sun.el.parser,\ com.sun.el.stream,\ com.sun.el.util,\ org.apache.commons.chain.generic,\ org.apache.naming.java,\ \ # # WebSocketSupport # \ com.ibm.websphere.wsoc,\ io.undertow.websockets.jsr,\ javax.websocket,\ javax.websocket.server,\ org.apache.tomcat.websocket.server,\ org.eclipse.jetty.websocket.server,\ org.glassfish.tyrus.servlet,\ weblogic.websocket.tyrus
Set a comma delimited list of paths to exclude from all WABs.
Defaults:module.framework.web.generator.excluded.paths=\ WEB-INF/lib/ant.jar,\ WEB-INF/lib/aopalliance.jar,\ WEB-INF/lib/aopalliance-1.0.jar,\ WEB-INF/lib/asm-debug-all.jar,\ WEB-INF/lib/aspectj-rt.jar,\ WEB-INF/lib/bnd.jar,\ WEB-INF/lib/ccpp.jar,\ WEB-INF/lib/commons-beanutils.jar,\ WEB-INF/lib/commons-chain.jar,\ WEB-INF/lib/commons-codec.jar,\ WEB-INF/lib/commons-collections.jar,\ WEB-INF/lib/commons-discovery.jar,\ WEB-INF/lib/commons-fileupload.jar,\ WEB-INF/lib/commons-httpclient.jar,\ WEB-INF/lib/commons-io.jar,\ WEB-INF/lib/commons-lang.jar,\ WEB-INF/lib/commons-logging.jar,\ WEB-INF/lib/commons-logging-1.1.1.jar,\ WEB-INF/lib/dom4j.jar,\ WEB-INF/lib/el-api.jar,\ WEB-INF/lib/ext-util-bridges.jar,\ WEB-INF/lib/ext-util-java.jar,\ WEB-INF/lib/ext-util-taglib.jar,\ WEB-INF/lib/hibernate-commons-annotations.jar,\ WEB-INF/lib/hibernate-core.jar,\ WEB-INF/lib/jaxen.jar,\ WEB-INF/lib/jaxrpc.jar,\ WEB-INF/lib/jdom.jar,\ WEB-INF/lib/jms.jar,\ WEB-INF/lib/jodd.jar,\ WEB-INF/lib/json-java.jar,\ WEB-INF/lib/jstl-api.jar,\ WEB-INF/lib/jstl-impl.jar,\ WEB-INF/lib/liferay-icu4j.jar,\ WEB-INF/lib/log4j.jar,\ WEB-INF/lib/log4j-extras.jar,\ WEB-INF/lib/mail.jar,\ WEB-INF/lib/persistence.jar,\ WEB-INF/lib/portal-impl.jar,\ WEB-INF/lib/portal-kernel.jar,\ WEB-INF/lib/portlet.jar,\ WEB-INF/lib/rome.jar,\ WEB-INF/lib/servlet-api.jar,\ WEB-INF/lib/slf4j-api.jar,\ WEB-INF/lib/spring-aop.jar,\ WEB-INF/lib/spring-aspects.jar,\ WEB-INF/lib/spring-beans.jar,\ WEB-INF/lib/spring-context.jar,\ WEB-INF/lib/spring-context-support.jar,\ WEB-INF/lib/spring-core.jar,\ WEB-INF/lib/spring-expression.jar,\ WEB-INF/lib/spring-jdbc.jar,\ WEB-INF/lib/spring-jms.jar,\ WEB-INF/lib/spring-orm.jar,\ WEB-INF/lib/spring-oxm.jar,\ WEB-INF/lib/spring-tx.jar,\ WEB-INF/lib/spring-web.jar,\ WEB-INF/lib/spring-webmvc.jar,\ WEB-INF/lib/spring-webmvc-portlet.jar,\ WEB-INF/lib/tika-core.jar,\ WEB-INF/lib/tika-parsers.jar,\ WEB-INF/lib/util-taglib.jar,\ WEB-INF/lib/xalan.jar,\ WEB-INF/lib/xercesImpl.jar,\ WEB-INF/lib/xercesImpl-2.9.1.jar,\ WEB-INF/lib/xml-apis.jar,\ WEB-INF/lib/xml-apis-1.3.04.jar,\ WEB-INF/lib/xmlsec.jar,\ WEB-INF/lib/xstream.jar
Set this to true to store the generated WABs.
Defaults:module.framework.web.generator.generated.wabs.store=false
Set the directory where the generated WABs will be stored. This property is not used unless the property "module.framework.web.generator.generated.wabs.store" is set to true.
Defaults:module.framework.web.generator.generated.wabs.store.dir=${module.framework.base.dir}/wabs
Set the custom header for all bundles which are deployed through the WAB mechanism. The text within the angle brackets should be replaced with the custom header/value. The header/value format is BND (http://www.aqute.biz/Bnd/Format).
Examples:module.framework.web.generator.headers.=
Set the specific WAB bundle for which the custom header defined in
"module.framework.web.generator.headers.
module.framework.web.generator.headers.Import-Package[my-hook]=
Set a comma delimited list of headers that are required in cases where the dependency analysis of the WAB does not resolve the dependency. This can occur when the headers are dynamically loaded using the Java reflection API.
Defaults:module.framework.web.generator.headers.DynamicImport-Package=Defaults:
module.framework.web.generator.headers.Export-Package=Defaults:
module.framework.web.generator.headers.Import-Package=
Set a comma delimited list of dependencies the JSP compiler requires for the generated WABs. Two types of references can be used. The first is a file system path to a JAR or folder containing Java classes. The second is the name of a Java class, which will be resolved to a path dynamically at runtime.
Defaults:module.framework.web.generator.jsp.compiler.dependencies=\ com.liferay.portal.PortalException,\ com.liferay.portal.util.PortalImpl,\ javax.el.ELException,\ javax.portlet.PortletException,\ javax.servlet.ServletException,\ javax.servlet.jsp.JspException
Consolidate multicast address and port settings in one location for easier maintenance. These settings must correlate to your physical network configuration (i.e. firewall, switch, and other network hardware matter) to ensure speedy and accurate communication across a cluster.
Each address and port combination represent a conversation that is made between different nodes. If they are not unique or correctly set, there will be a potential of unnecessary network traffic that may cause slower updates or inaccurate updates.
See the property "cluster.link.channel.properties.control".
Defaults:multicast.group.address["cluster-link-control"]=239.255.0.1 multicast.group.port["cluster-link-control"]=23301Examples:
multicast.group.address["cluster-link-control"]=ff0e::8:8:1
See the properties "cluster.link.channel.properties.transport.0" and "cluster.link.channel.system.properties".
Defaults:multicast.group.address["cluster-link-udp"]=239.255.0.2 multicast.group.port["cluster-link-udp"]=23302Examples:
multicast.group.address["cluster-link-udp"]=ff0e::8:8:2
See the property "cluster.link.channel.system.properties".
Defaults:multicast.group.address["cluster-link-mping"]=239.255.0.3 multicast.group.port["cluster-link-mping"]=23303Examples:
multicast.group.address["cluster-link-mping"]=ff0e::8:8:3
See the properties "ehcache.multi.vm.config.location" and "ehcache.multi.vm.config.location.peerProviderProperties".
Defaults:multicast.group.address["multi-vm"]=239.255.0.5 multicast.group.port["multi-vm"]=23305
Set the maximum number of transient events allowed to queue for a user. In case of excess events, the events with the closest expiration time are removed.
Defaults:notifications.max.events=100
Specify the file extensions of files to allow conversions from. Entries must be limited by what is supported by OpenOffice.
Defaults:openoffice.conversion.source.extensions[drawing]=odg openoffice.conversion.source.extensions[presentation]=odp,ppt,pptx,sxi openoffice.conversion.source.extensions[spreadsheet]=csv,ods,sxc,tsv,xls,xlsx openoffice.conversion.source.extensions[text]=doc,docx,html,odt,rtf,sxw,txt,wpd
Specify the file extensions of files to allow conversions to. Entries must be limited by what is supported by OpenOffice.
Defaults:openoffice.conversion.target.extensions[drawing]=pdf,svg,swf openoffice.conversion.target.extensions[presentation]=odp,pdf,ppt,swf,sxi openoffice.conversion.target.extensions[spreadsheet]=csv,ods,pdf,sxc,tsv,xls openoffice.conversion.target.extensions[text]=doc,odt,pdf,rtf,sxw,txt
Set the name of a class that implements com.liferay.portal.kernel.format.PhoneNumberFormat. It will be used for formatting and validating phone numbers.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:phone.number.format.impl=com.liferay.portal.format.IdenticalPhoneNumberFormatImpl phone.number.format.impl=com.liferay.portal.format.InternationalPhoneNumberFormatImpl phone.number.format.impl=com.liferay.portal.format.USAPhoneNumberFormatImpl
This regular expression follows the international phone number notation specified by the Extensible Provisioning Protocol (EPP). EPP style phone numbers use the format +CCC.NNNNNNNNNNxEEEE where C is the 1-3 digit country code, N is up to 14 digits, and E is the (optional) extension. The leading plus sign and the dot following the country code are required. The literal 'x' character is required only if an extension is provided.
See http://www.itu.int/rec/T-REC-E.123, http://www.itu.int/rec/T-REC-E.164, and http://tools.ietf.org/html/rfc4933 for more information.
Defaults:phone.number.format.international.regexp=^\\+[0-9]{1,3}\.[0-9]{4,14}(?:x.+)?$
The North American Numbering Plan (NANP) is the telephone numbering plan for the United States, Canada, Bermuda, and 16 Caribbean nations.
See http://en.wikipedia.org/wiki/North_American_Numbering_Plan for more information.
Defaults:phone.number.format.usa.regexp=^(?:\\+?1[-. ]?)?(?:\\(?([0-9]{3})\\)?[-. ]?)?([0-9]{3})[-. ]?([0-9]{4})$
Specify the notification events timeout in milliseconds. This prevents the poller from locking up the application server.
Defaults:poller.notifications.timeout=1000
Specify the poller request timeout in milliseconds. This prevents the poller from locking up the application server.
Defaults:poller.request.timeout=1000
Set this to true to enable polling of email notifications from a POP server. The user credentials are the same used for SMTP authentication and are specified in the mail/MailSession configuration for each application server.
Defaults:pop.server.notifications.enabled=false
Set the interval on which the POPNotificationsMessageListener will run. The value is set in one minute increments.
Defaults:pop.server.notifications.interval=1
Set this property to create a special MX subdomain to receive all portal related email (e.g. events.liferay.com). This means configuring a default inbox for the domain and receiving all emails into that inbox.
This approach may not be allowed for some organizations. If you cannot use the subdomain approach, unset this value and Liferay will use the replyTo address specified in the portlet preferences.
Defaults:pop.server.subdomain=events
Set this to true to turn on the Portal Fabric feature.
Defaults:portal.fabric.enabled=false
Set the class name for the fabric selector that must implement com.liferay.portal.fabric.agent.selectors.FabricAgentSelector
Defaults:portal.fabric.agent.selector.class=com.liferay.portal.fabric.agent.selectors.MinSystemCPULoadFabricAgentSelector
Set the host name or ip address that fabric server binds to.
Defaults:portal.fabric.server.host=0.0.0.0
Set the port that fabric server binds to.
Defaults:portal.fabric.server.port=8923
Set the number of boss group threads used for the fabric server.
Defaults:portal.fabric.server.boss.group.thread.count=1
Set the number of worker group threads used for the fabric server.
Defaults:portal.fabric.server.worker.group.thread.count=1
Set the timeout in milliseconds for fabric worker startup waiting.
Defaults:portal.fabric.server.worker.startup.timeout=60000
Set the folder compression level used for fabric server file server. Acceptable value range is [-1, 9]. Values are literally mapped to java.util.zip.Deflater compression level.
Defaults:portal.fabric.server.file.server.folder.compression.level=1
Set the number of event executor group threads used for the fabric server file server.
Defaults:portal.fabric.server.file.server.group.thread.count=1
Set the number of event executor group threads used for the fabric server registration.
Defaults:portal.fabric.server.registeration.group.thread.count=1
Set the repository parent folder used by fabric workers to upload results.
Defaults:portal.fabric.server.repository.parent.folder=NettyFabricServer-repository-parent
Set the timeout in milliseconds for repository file getting.
Defaults:portal.fabric.server.repository.get.file.timeout=600000
Set the number of event executor group threads used for fabric server RPC.
Defaults:portal.fabric.server.rpc.group.thread.count=1
Set the timeout in milliseconds for RPC relay.
Defaults:portal.fabric.server.rpc.relay.timeout=600000
Set to true to enable portal class path warmup on fabric agent registration.
Defaults:portal.fabric.server.warmup.agent.on.register=true
Set the quiet period in milliseconds for fabric thread pool shutdown.
Defaults:portal.fabric.shutdown.quiet.period=0
Set the timeout in milliseconds for fabric thread pool shutdown.
Defaults:portal.fabric.shutdown.timeout=60000
Set this to true to turn on the Portal Resiliency feature.
Defaults:portal.resiliency.enabled=false
Set this to true to add a footer to each Portal Resiliency rendered portlet. Each footer identifies the SPI that is rendering it.
At runtime you can toggle showing the footer by setting the URL parameter "portalResiliencyPortletShowFooter" to "1" for on or "0" for off.
Defaults:portal.resiliency.portlet.show.footer=false
Specify the maximum number of sockets to keep alive for each com.liferay.portal.resiliency.spi.agent.HttpClientSPIAgent instance. Reusing the socket for HTTP communication saves TCP connection setup/teardown overhead and avoids the TCP/IP protocol's slow start congestion control.
Increasing limit on the number of sockets to keep alive can generally improvement each HttpClientSPIAgent's performance under heavy concurrent load, but more TCP ports and file descriptors are occupied.
Defaults:portal.resiliency.spi.agent.client.pool.max.size=20
memory.scheduler.org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore memory.scheduler.org.quartz.scheduler.instanceId=AUTO memory.scheduler.org.quartz.scheduler.instanceName=MemoryQuartzSchedulerEngineInstance memory.scheduler.org.quartz.scheduler.jobFactory.class=org.quartz.simpl.SimpleJobFactory memory.scheduler.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool memory.scheduler.org.quartz.threadPool.threadCount=5 memory.scheduler.org.quartz.threadPool.threadPriority=5Defaults:
persisted.scheduler.org.quartz.dataSource.ds.connectionProvider.class=com.liferay.portal.scheduler.quartz.internal.QuartzConnectionProvider persisted.scheduler.org.quartz.jobStore.class=com.liferay.portal.scheduler.quartz.internal.PortalJobStore persisted.scheduler.org.quartz.jobStore.dataSource=ds persisted.scheduler.org.quartz.jobStore.misfireThreshold=60000 persisted.scheduler.org.quartz.jobStore.tablePrefix=QUARTZ_ persisted.scheduler.org.quartz.jobStore.useProperties=false persisted.scheduler.org.quartz.scheduler.instanceId=AUTO persisted.scheduler.org.quartz.scheduler.instanceName=PersistedQuartzSchedulerEngineInstance persisted.scheduler.org.quartz.scheduler.jobFactory.class=org.quartz.simpl.SimpleJobFactory persisted.scheduler.org.quartz.scheduler.skipUpdateCheck=true persisted.scheduler.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool persisted.scheduler.org.quartz.threadPool.threadCount=5 persisted.scheduler.org.quartz.threadPool.threadPriority=5
Input a list of comma delimited URL prefixes which the portal is allowed to make proxy requests to. Input a blank list to allow any URLs.
Defaults:rest.proxy.url.prefixes.allowed=http://search.yahooapis.com/ContentAnalysisService
Set the max number of times to retry annotated service calls when retry acceptor rejects the result.
Defaults:retry.advice.max.retries=5
Set the max number of times to retry getting a connection.
Defaults:retry.data.source.max.retries=100
Set the number of seconds to retry getting a JDBC connection on portal startup.
Defaults:retry.jdbc.on.startup.delay=0
Set the max number of times to retry getting a JDBC connection on portal startup.
Defaults:retry.jdbc.on.startup.max.retries=0
robots.txt.with.sitemap=com/liferay/portal/dependencies/robots_txt_with_sitemap.tmpl robots.txt.without.sitemap=com/liferay/portal/dependencies/robots_txt_without_sitemap.tmpl
Set the HTTP connection timeout in milliseconds for reading RSS feeds.
Defaults:rss.connection.timeout=2000
Set this to true to enable RSS feeds.
Defaults:rss.feeds.enabled=true
Set the name of the display style which will be used by default.
Defaults:rss.feed.display.style.default=full-content
Set the default feed type from the feed types defined in the property "rss.feed.types".
Defaults:rss.feed.type.default=atom_1.0
Enter a list of comma delimited values of feed types. The supported types should be a subset of those defined for SyndFeed in the ROME project: atom_1.0, rss_1.0, and rss_2.0. See http://java.net/projects/rome for more information.
Defaults:rss.feed.types=atom_1.0,rss_1.0,rss_2.0
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect RSS feeds.
Defaults:rss.feeds.hosts.allowed= rss.feeds.https.required=false
Set this to true if rss should be published to live by default.
Defaults:rss.publish.to.live.by.default=true
Input a list of comma delimited regular expressions to exclude paths of CSS files that cannot be automatically converted to RTL.
Defaults:rtl.css.excluded.paths.regexp=.*\\/ckeditor\\/.*
Input a list of comma delimited class names that implement com.liferay.portal.kernel.sanitizer.Sanitizer. These classes are used to sanitize content.
This property is not read by the portal except for portal properties overridden by liferay-hook.xml. It remains here only as a reference.
Examples:sanitizer.impl=
Set this to false to disable all scheduler classes defined in liferay-portlet.xml.
Defaults:scheduler.enabled=true
Set the maximum length of description, group name, and job name fields.
Defaults:scheduler.description.max.length=120 scheduler.group.name.max.length=80 scheduler.job.name.max.length=80
Set the compile mode for the JRuby scripting engine.
Defaults:scripting.jruby.compile.mode=jitExamples:
scripting.jruby.compile.mode=force scripting.jruby.compile.mode=off
Set the threshold at which methods will be compiled when "jit" compile mode is enabled.
Defaults:scripting.jruby.compile.threshold=5
Set the default number of entries to display per page.
Defaults:search.container.page.default.delta=20
Set the available values for the number of entries to display per page. An empty value, or commenting out the value, will disable delta resizing.
Always include the value specified in the property "search.container.page.default.delta", since it is the default page size when no delta is specified. The absolute maximum allowed delta is 200.
Defaults:search.container.page.delta.values=5,10,20,30,50,75
Set the maximum number of pages available above and below the currently displayed page.
Defaults:search.container.page.iterator.max.pages=25
Set this to false to remove the pagination controls above or below results.
Defaults:search.container.show.pagination.top=true search.container.show.pagination.bottom=true
Set the number of entries to display per page for top pagination controls. The property "search.container.show.pagination.top" must also be set to true.
Defaults:search.container.show.pagination.top.delta=10
Set the tokens for supported Sharepoint storage paths.
Defaults:sharepoint.storage.tokens=document_library
Set the class names for supported Sharepoint storage classes.
Defaults:sharepoint.storage.class[document_library]=com.liferay.portlet.documentlibrary.sharepoint.DLSharepointStorageImpl
Set the file names used for the auto generated sprites. The default file name used to be ".sprite.png" but is now "_sprite.png" because SiteMinder does not allow file names to start with a period. This property will not need to be changed unless your deployment has a conflict with file names that start with an underline.
Defaults:sprite.file.name=_sprite.png sprite.properties.file.name=_sprite.properties
Set the root directory for the autogenerated sprites. Not setting the directory means that generated sprites reside in the same location as the original source images.
Defaults:sprite.root.dir=
Set this property to false to avoid deleting the temporary LAR during a a failed staging publication process. In remote staging contexts, this only applies for the staging environment.
Defaults:staging.delete.temp.lar.on.failure=true
Set this property to false to avoid deleting the temporary LAR during a a successful staging publication process. In remote staging contexts, this only applies for the staging environment.
Defaults:staging.delete.temp.lar.on.success=true
Set this property to false to enable editing on the live site.
Defaults:staging.live.group.locking.enabled=true
By default, in a remote staging environment, the live group is marked and staging is prevented on the live group.
To achieve a Content Development - UAT - Production environment, staging must be enabled for the UAT live group involved. When staging is enabled for this group, it becomes the live group with respect to the Content Development server and a staging group with respect to the Production server.
Set this property to true to allow staging for a live group. If set to true, staging can be turned on for a live group, so that it can simultaneously act as both a live group and a staging group.
Defaults:staging.live.group.remote.staging.enabled=false
Set the file block sizes for remote staging. If a LAR file used for remote staging exceeds this size, the file will be split into multiple files prior to transmission and then reassembled on the remote server. The default buffer size is 10 megabytes.
Defaults:staging.remote.transfer.buffer.size=10485760
Set the interval in hours on how often CheckSystemEventMessageListener will run to check for and delete system events that have been reached the maximum age.
Defaults:staging.system.event.check.interval=24
Set this to the maximum age (in number of hours) that a system event will be kept. Note that these settings may be overridden in Portal Settings for each portal server or in Site Settings for each site.
Defaults:staging.system.event.max.age=0
Enter a list of comma delimited paths that should not have its content stripped by the strip filter.
Defaults:strip.ignore.paths=/document_library/get_file
Set this property to support usage of the language attribute in the script element. The language attribute is deprecated since HTML4 is in favor of the type attribute.
See http://www.w3.org/TR/html4/interact/scripts.html#h-18.2.1.
This property is not used unless the property "com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter" is set to true.
Defaults:strip.js.language.attribute.support.enabled=false
Input a list of comma delimited MIME types that will have its content stripped by the strip filter.
Defaults:strip.mime.types=text/html*,text/xml*
Set the length of the counter period for social activities. The value is in a number of days or the special keyword "month" to specify a month.
Defaults:social.activity.counter.period.length=month
Adding social activity counters requires a portal level lock to ensure that counters are unique. When the portal fails to acquire a lock, it will attempt to reacquire a lock based on the value specified in this property. The value is interpreted as milliseconds.
A small value will help the system to respond faster. However, if there are too many conflicts, the database will fail with a massive transaction rollback.
Defaults:social.activity.lock.retry.delay=100
Set the lock timeout for adding social activity counters. The value is interpreted as milliseconds. See the property "social.activity.counter.lock.retry.delay" for more information on why and how locks are acquired when adding a counter.
Portal level locks are persisted in the database. In the case that there is a corrupted database, one thread may fail to acquire a lock because it thinks another thread has a handle on the lock even though no other thread has a handle on it.
Setting this timeout level ensures that the portal will eventually release the lock so that a new thread can acquire the lock. Do not set this property to a small value because it may expire a legitimate lock held by another thread that it falsely assumed to be a lock that is from a corrupt database.
Defaults:social.activity.lock.timeout=10000
Set the limit for results used when performing social activity searches that are subsequently filtered by permissions.
Defaults:social.activity.filter.search.limit=200
Set the selector for the set of interpreters that will determine how activities are grouped together.
Defaults:social.activity.sets.selector=
Set this to true if you want text extraction of certain MIME types to use a separate Java process. This will utilize extra resources from the operating system while improving the portal's stability.
Defaults:text.extraction.fork.process.enabled=false
Input a list of comma delimited MIME types that will trigger text extraction using a separate Java process.
Defaults:text.extraction.fork.process.mime.types=application/x-tika-ooxml
The thread dump filter will log a thread dump if the portal takes longer than the specified number of seconds to process. The thread dump filter must be enabled via the property "com.liferay.portal.servlet.filters.threaddump.ThreadDumpFilter".
Defaults:thread.dump.speed.threshold=5
Set this to true if you want users to acknowledge receipt of user notification events.
Defaults:user.notification.event.confirmation.enabled=false
Set the extensions that will be ignored for virtual hosts.
Defaults:virtual.hosts.ignore.extensions=\ .css,\ .gif,\ .image/company_logo,\ .ico,\ .js,\ .jpeg,\ .jsp,\ .png,\ /portal/layout,\ /portal/login,\ /portal/logout
Set the hosts that will be ignored for virtual hosts.
Defaults:virtual.hosts.ignore.hosts=\ 127.0.0.1,\ localhost
Set the paths that will be ignored for virtual hosts.
Defaults:virtual.hosts.ignore.paths=\ /c,\ \ /c/portal/change_password,\ /c/portal/edit_layout,\ /c/portal/extend_session,\ /c/portal/extend_session_confirm,\ /c/portal/json_service,\ /c/portal/layout,\ /c/portal/login,\ /c/portal/logout,\ /c/portal/portlet_url,\ /c/portal/progress_poller,\ /c/portal/render_portlet,\ /c/portal/reverse_ajax,\ /c/portal/session_tree_js_click,\ /c/portal/status,\ /c/portal/update_layout,\ /c/portal/update_terms_of_use
Specify the site name that will default to the company's virtual host. If the specified site has a virtual host, then that will take precedence. If it does not, then it will use the company's virtual host. This property is useful to remove "/web/guest" (or any other site) from the default URL. For example, if this property is not set, then the default URL may be http://localhost:8080/web/guest/home. If this property is set, then the default URL may be http://localhost:8080/home.
Defaults:virtual.hosts.default.site.name=Guest
Input a list of comma delimited valid domains and IPs that the portal is allowed to use.
Defaults:virtual.hosts.valid.hosts=*Examples:
virtual.hosts.valid.hosts=localhost,127.0.0.1,[::1],[0:0:0:0:0:0:0:1]
Set this property to false to process XML external entities, expand XML entities, disable XML secure processing, and enable DTD parsing. It would also expose the portal to XXE attacks (e.g. XML Bomb and XML Quadratic Blowup).
Defaults:xml.security.enabled=true
Set this property to false to create the sitemap.xml file based in a layout set. By default a sitemap index is created, which provides links to multiple sitemap files rather than one large file containing all the urlsets. This requires less bandwidth and improves performance. See https://www.sitemaps.org/protocol.html for more information.
Defaults:xml.sitemap.index.enabled=true
Set this property to false to disable XML validation in the portal. XML validation should only be disabled if validation cannot be performed because the servers hosting the external DTD or XSD files are not available.
Defaults:xml.validation.enabled=true
Set this to true to enable conversion and previewing of videos in the Document Library portlet. See http://www.xuggle.com/xuggler/downloads for more information.
Defaults:xuggler.enabled=false
Set the properties used to install Xuggler at runtime.
Defaults:xuggler.jar.file[32-linux]=xuggle-xuggler-arch-i686-pc-linux-gnu.jar xuggler.jar.file[32-mac]=xuggle-xuggler-arch-i386-xuggle-darwin11.jar xuggler.jar.file[32-win]=xuggle-xuggler-arch-i686-w64-mingw32.jar xuggler.jar.file[64-linux]=xuggle-xuggler-arch-x86_64-pc-linux-gnu.jar xuggler.jar.file[64-mac]=xuggle-xuggler-arch-x86_64-xuggle-darwin11.jar xuggler.jar.file[64-win]=xuggle-xuggler-arch-x86_64-w64-mingw32_LIFERAY-PATCHED-1.jar xuggler.jar.name[32-linux]=Linux 32-bit JVM (with GNU libc v6) xuggler.jar.name[32-mac]=Mac OS X 10.7 32-bit JVM xuggler.jar.name[32-win]=Windows 32-bit JVM xuggler.jar.name[64-linux]=Linux 64-bit JVM (with GNU libc v6) xuggler.jar.name[64-mac]=Mac OS X 10.7 64-bit JVM xuggler.jar.name[64-win]=Windows 64-bit JVM xuggler.jar.options=32-linux,32-mac,32-win,64-linux,64-mac,64-win xuggler.jar.url=https://files.liferay.com/mirrors/xuggle.googlecode.com/svn/trunk/repo/share/java/xuggle/xuggle-xuggler/5.4/
Set these to customize the ffmpeg preset settings used by Xuggler when encoding movie files.
Defaults:xuggler.ffpreset.8x8dct=0 xuggler.ffpreset.bf=0 xuggler.ffpreset.cmp=+chroma xuggler.ffpreset.coder=0 xuggler.ffpreset.flags=+loop xuggler.ffpreset.i_qfactor=0.71 xuggler.ffpreset.mbtree=1 xuggler.ffpreset.me_method=umh xuggler.ffpreset.me_range=16 xuggler.ffpreset.qcomp=0.6 xuggler.ffpreset.qdiff=4 xuggler.ffpreset.qmin=10 xuggler.ffpreset.qmax=51 xuggler.ffpreset.sc_threshold=40 xuggler.ffpreset.subq=8 xuggler.ffpreset.trellis=0 xuggler.ffpreset.wpredp=0Examples:
xuggler.ffpreset.flags2=-wpred-dct8x8+mbtree
Specify the YUI compressor settings used to compress CSS.
Defaults:yui.compressor.css.line.break=-1
javax.servlet.jsp.PageContext#findAttribute(String) is mainly used by a generated JSP servlet, which internally tries page scope attributes first, then with many fallbacks. This is not necessary for Liferay since we always populate tag variables into the page scope explicitly. The fallbacks waste processing power and will never find anything.
Set this property to true to force com.liferay.taglib.servlet. PageContextWrapper#findAttribute(String) to use getAttribute(String) to avoid the unnecessary fallbacks.
Set this property to false if third party JSP code relies on the fallback behavior.
Defaults:jsp.page.context.force.get.attribute=true
Set this property to false to disable Liferay's Jasper implementation from dumping JSP servlet java files by default. This default value can be overridden with the OSGi configuration file com.liferay.portal.osgi.web. servlet.context.helper.ServletContextHelperFactory.cfg.
Defaults:jsp.servlet.init.param.keepgenerated=true
All properties that start with "jsp.servlet.init.param." will be passed into Liferay's Jasper implementation as init parameters.
Examples:jsp.servlet.init.param.compilerClassName= jsp.servlet.init.param.compilerSourceVM= jsp.servlet.init.param.compilerTargetVM=
Set the JspWriter buffer size. JspFactoryWrapper reads this value as the buffer size when creating new JspWriters. This value should be kept at 0 for performance reasons.
Defaults:jsp.writer.buffer.size=0
The absolute redirects filter is used to ensure that all redirects are absolute. It should not be disabled because it also sets the company ID in the request so that subsequent calls in the thread have the company ID properly set. This filter should also always be the first filter in the list of filters.
Defaults:com.liferay.portal.servlet.filters.absoluteredirects.AbsoluteRedirectsFilter=true
The aggregate filter is used to aggregate CSS and JavaScript. Do not disable this filter because it performs necessary aggregation of portal resources. You may, however, set the property "minifier.enabled" to disable minification of resources.
Defaults:com.liferay.portal.servlet.filters.aggregate.AggregateFilter=true
The auth verifier filter is used to verify whether a request is authenticated or not.
Defaults:com.liferay.portal.servlet.filters.authverifier.AuthVerifierFilter=true
The auto login filter processes the classes in the property "auto.login.hooks" to provide auto login functionality.
Defaults:com.liferay.portal.servlet.filters.autologin.AutoLoginFilter=true
The cache filter caches processed web content. See ehcache.xml to modify the cache expiration time to live.
Defaults:com.liferay.portal.servlet.filters.cache.CacheFilter=true
The CAS filter is used to provide CAS based single sign on.
Examples:com.liferay.portal.servlet.filters.sso.cas.CASFilter=true
The dynamic CSS filter is used to parse Sass CSS.
Defaults:com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter=true
The ETag filter is used to generate ETag headers.
Defaults:com.liferay.portal.servlet.filters.etag.ETagFilter=true
If the user can unzip compressed HTTP content, the GZip filter will zip up the HTTP content before sending it to the user. This will speed up page rendering for users that are on dial up.
Defaults:com.liferay.portal.servlet.filters.gzip.GZipFilter=false
The header filter is used to set request headers.
Defaults:com.liferay.portal.servlet.filters.header.HeaderFilter=true
The ignore filter will ignore certain files from being accessed directly from a browser.
Defaults:com.liferay.portal.servlet.filters.ignore.IgnoreFilter=true
The I18n filter is used to internationalize URLs. See the property "locale.prepend.friendly.url.style" for more information.
Defaults:com.liferay.portal.servlet.filters.i18n.I18nFilter=true
The JSON content type filter is used because Internet Explorer does not recognize the content type "application/json". See LPS-33187.
Defaults:com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter=false
The language filter replaces JavaScript code that makes a client side call to translate a piece of text with the actual translated value. For example, a typical piece of JavaScript code fits the pattern "Liferay.Language.get('key')" where 'key' is the text to translate. This filter will replace the entire piece of code with the translated text. This is very useful because it will lower the number of client calls by translating the text before the browser receives the JavaScript file.
Defaults:com.liferay.portal.servlet.filters.language.LanguageFilter=true
The NTLM filter is used to provide NTLM based single sign on.
Defaults:com.liferay.portal.servlet.filters.sso.ntlm.NtlmFilter=true
The NTLM post filter is used to fix known issues with NTLM and ajax requests. See LPS-3795.
Defaults:com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter=true
The OpenSSO filter is used to provide OpenSSO based single sign on.
Defaults:com.liferay.portal.servlet.filters.sso.opensso.OpenSSOFilter=true
The servlet authorizing filter allows external servlets to be authorized by the portal. See LEP-4682.
Defaults:com.liferay.portal.servlet.filters.servletauthorizing.ServletAuthorizingFilter=true
The session ID filter ensures that only one session is created between HTTP and HTTPS sessions. This is useful if you want users to login via HTTPS but have them view the rest of the site via HTTP. This is disabled by default. Do not enable this unless you thoroughly understand how cookies, HTTP, and HTTPS work.
Defaults:com.liferay.portal.servlet.filters.sessionid.SessionIdFilter=false
The session max allowed filter invalidates the latest session if the latest session exceeds the maximum number of allowed sessions. This filter is not used unless the property "session.max.allowed" is greater than 0.
Defaults:com.liferay.portal.servlet.filters.sessionmaxallowed.SessionMaxAllowedFilter=false
The Sharepoint filter allows users to access documents in the Document Library directly from Microsoft Office using the Sharepoint protocol.
Defaults:com.liferay.portal.sharepoint.SharepointFilter=true
The strip filter will remove blank lines from the outputted content. This will significantly speed up page rendering.
Defaults:com.liferay.portal.servlet.filters.strip.StripFilter=true
The theme preview filter generates a preview of the currently applied theme that can be used by the Dreamweaver Theming plugin. This is disabled by default. Set the "themePreview" parameter to 1 in the URL to access the theme preview for any page. For example, a URL can be http://localhost:8080/web/guest?themePreview=1.
Defaults:com.liferay.portal.servlet.filters.themepreview.ThemePreviewFilter=false
The thread dump filter will automatically log thread dumps when the portal is too slow. Behavior can be configured via the property "thread.dump.speed.threshold".
Defaults:com.liferay.portal.servlet.filters.threaddump.ThreadDumpFilter=false
The thread local filter cleans up short lived thread locals managed by CentralizedThreadLocal to prevent memory leaks.
Defaults:com.liferay.portal.servlet.filters.threadlocal.ThreadLocalFilter=true
The unsynchronized print writer pool filter enables pooling print writers to minimize the creation of java.io.PrintWriter instances because it is an expensive action.
Defaults:com.liferay.portal.servlet.filters.unsyncprintwriterpool.UnsyncPrintWriterPoolFilter=true
The upload servlet request filter is needed to wrap multipart requests into UploadServletRequest. It should not be disabled because it is needed by many Liferay portlets and helps protect against CSRF attacks.
Defaults:com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter=true
Based on the popular and very useful mod_rewrite of Apache, UrlRewriteFilter allows you to rewrite URLs before they get processed. It uses an xml file, called urlrewrite.xml, which can be found in WEB-INF.
Defaults:com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter=true
The valid host name filter will check the host name from request's host header. It rejects a request with invalid server name to prevent XSS and other host header manipulation attacks.
Defaults:com.liferay.portal.servlet.filters.validhostname.ValidHostNameFilter=true
The virtual host filter maps hosts to public and private pages. For example, if the public virtual host is www.helloworld.com and the friendly URL is /helloworld, then http://www.helloworld.com is mapped to http://localhost:8080/web/helloworld.
Defaults:com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter=true
Set the threshold size to prevent extraneous serialization of uploaded data.
Defaults:com.liferay.portal.upload.LiferayFileItem.threshold.size=262144
Set the threshold size to prevent out of memory exceptions caused by caching excessively large uploaded data. Default is 1024 * 1024 * 10.
Defaults:com.liferay.portal.upload.LiferayInputStream.threshold.size=10485760
Set the HTTP and HTTPs ports when running the portal in a J2EE server that is sitting behind another web server like Apache. Set the values to -1 if the portal is not running behind another web server like Apache.
Defaults:web.server.http.port=-1 web.server.https.port=-1
Set the hostname that will be used when the portlet generates URLs. Leaving this blank will mean the host is derived from the servlet container.
Defaults:web.server.host=
Set the preferred protocol.
Examples:web.server.protocol=https
Set this to true to display the server name at the bottom of every page. This is useful when testing clustering configurations so that you can know which node you are accessing.
Defaults:web.server.display.node=false
Set this to true to use the property "web.server.forward.host.header" to get the host. The property "web.server.host" must be set its default value.
Defaults:web.server.forwarded.host.enabled=false
Set the HTTP header to use to get the host. The property "web.server.forwarded.host.enabled" must be set to true.
Defaults:web.server.forwarded.host.header=X-Forwarded-Host
Set this to true to use the property "web.server.forward.port.header" to get the port.
Defaults:web.server.forwarded.port.enabled=false
Set the HTTP header to use to get the port. The property "web.server.forwarded.port.enabled" must be set to true.
Defaults:web.server.forwarded.port.header=X-Forwarded-Port
Set this to true to use the property "web.server.forward.protocol.header" to get the protocol. The property "web.server.protocol" must not have been overriden.
Defaults:web.server.forwarded.protocol.enabled=false
Set the HTTP header to use to get the protocol. The property "web.server.forwarded.protocol.enabled" must be set to true.
Defaults:web.server.forwarded.protocol.header=X-Forwarded-Proto
Set this to true to enable support for legacy proxy servers (Apache 1.x).
Defaults:web.server.proxy.legacy.mode=false
Set a list of files for the WebDAV servlet to ignore processing.
Defaults:webdav.ignore=.DS_Store,.metadata_index_homes_only,.metadata_never_index,.Spotlight-V100,.TemporaryItems,.Trashes,Backups.backupdb
Specify the number of minutes before a generated nonce expires. When a client contacts the server with an expired nonce, the server will send back a HTTP error 401 with stale=true.
Defaults:webdav.nonce.expiration=30
Servlets can be protected by com.liferay.portal.servlet.filters.secure.SecureFilter.
Input a list of comma delimited IPs that can access this servlet. Input a blank list to allow any IP to access this servlet. SERVER_IP will be replaced with the IP of the host server.
Defaults:main.servlet.hosts.allowed=
Set this to true if this servlet can only be accessed via https.
Defaults:main.servlet.https.required=false
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect this servlet.
Defaults:atom.servlet.hosts.allowed=127.0.0.1,SERVER_IP atom.servlet.https.required=false
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect this servlet.
Defaults:axis.servlet.hosts.allowed=127.0.0.1,SERVER_IP axis.servlet.https.required=false
Set the paths which are allowed to be served from the Dynamic Resource Servlet scratch.
Defaults:dynamic.resource.servlet.allowed.paths=\ /sprite
Set the servlet mapping for the Google Gadget servlet.
Defaults:google.gadget.servlet.mapping=/google_gadget
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect this servlet.
Defaults:json.servlet.hosts.allowed= json.servlet.https.required=false
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect this servlet.
Defaults:jsonws.servlet.hosts.allowed= jsonws.servlet.https.required=false
Set the servlet mapping for the Netvibes servlet.
Defaults:netvibes.servlet.mapping=/netvibes
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect this servlet.
Defaults:spring.remoting.servlet.hosts.allowed=127.0.0.1,SERVER_IP spring.remoting.servlet.https.required=false
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect this servlet.
Defaults:tunnel.servlet.hosts.allowed=127.0.0.1,SERVER_IP tunnel.servlet.https.required=false
Set this to a comma delimited list of MIME types to send an Accept-Ranges header.
Defaults:web.server.servlet.accept.ranges.mime.types=audio/basic,audio/mid,audio/midi,audio/mod,audio/mp3,audio/mp4,audio/mpeg,audio/mpeg3,audio/ogg,audio/vorbis,audio/wav,audio/x-m4a,audio/x-mid,audio/x-midi,audio/x-mod,audio/x-mpeg,audio/x-pn-realaudio,audio/x-realaudio,audio/x-wav,video/avi,video/mp4,video/mpeg,video/ogg,video/quicktime,video/x-flv,video/x-m4v,video/x-ms-wmv,video/x-msvideo
Set this to true to check whether the request is for an image from the legacy Image Gallery. This is only necessary if you are migrating from a version older than 6.1.
Defaults:web.server.servlet.check.image.gallery=false
Set this property to true to enable directory indexing.
Defaults:web.server.servlet.directory.indexing.enabled=false
Set the maximum range fields that are allowed to be requested by a browser.
Defaults:web.server.servlet.max.range.fields=10
Set the level of verbosity to use in the server information line printed by the web server servlet. Valid values are "full", which gives all of the version information (e.g. Liferay Portal Community Edition 6.1.0 CE etc.) or "partial", which gives only the name portion (e.g. Liferay Portal Community Edition).
Defaults:web.server.servlet.version.verbosity=full
See the properties "main.servlet.hosts.allowed" and "main.servlet.https.required" on how to protect this servlet.
Defaults:webdav.servlet.hosts.allowed= webdav.servlet.https.required=false
Set the servlet mapping for the Widget servlet.
Defaults:widget.servlet.mapping=/widget
Input a list of default group names separated by \n characters that are associated with newly created users.
Defaults:admin.default.group.names=
Input a list of default organization group names separated by \n characters that are associated with newly created users.
Defaults:admin.default.organization.group.names=
Input a list of default regular role names separated by \n characters that are associated with newly created users.
Defaults:admin.default.role.names=User
Input a list of default user group names separated by \n characters that are associated with newly created users.
Defaults:admin.default.user.group.names=
Set this to true to ensure that a user is synchronized with the default associations of groups, roles, and user groups upon every login. Set this to false if default associations should only be applied to a user when a user is created.
Defaults:admin.sync.default.associations=false
Input a list of mail host names separated by \n characters.
Defaults:admin.mail.host.names=
Input a list of reserved screen names separated by \n characters.
Defaults:admin.reserved.screen.names=
Input a list of reserved email addresses separated by \n characters.
Defaults:admin.reserved.email.addresses=
Configure email notification settings.
Defaults:admin.email.from.name=Joe Bloggs admin.email.from.address=test@liferay.comDefaults:
admin.email.user.added.enabled=true admin.email.user.added.subject=com/liferay/portlet/admin/dependencies/email_user_added_subject.tmpl admin.email.user.added.body=com/liferay/portlet/admin/dependencies/email_user_added_body.tmpl admin.email.user.added.no.password.body=com/liferay/portlet/admin/dependencies/email_user_added_no_password_body.tmplDefaults:
admin.email.password.reset.subject=com/liferay/portlet/admin/dependencies/email_password_reset_subject.tmpl admin.email.password.reset.body=com/liferay/portlet/admin/dependencies/email_password_reset_body.tmplDefaults:
admin.email.password.sent.subject=com/liferay/portlet/admin/dependencies/email_password_sent_subject.tmpl admin.email.password.sent.body=com/liferay/portlet/admin/dependencies/email_password_sent_body.tmplDefaults:
admin.email.verification.subject=com/liferay/portlet/admin/dependencies/email_verification_subject.tmpl admin.email.verification.body=com/liferay/portlet/admin/dependencies/email_verification_body.tmpl
Input a list of web analytics types separated by \n characters.
Defaults:admin.analytics.types=google\npiwik
Add a comma delimited list of properties that are obfuscated and replaced with ******** when viewed in the Control Panel.
Defaults:admin.obfuscated.properties=auth.mac.shared.key,auth.token.shared.secret,captcha.engine.recaptcha.key.private,default.admin.password,dl.file.entry.preview.generation.decrypt.passwords.pdfbox,dl.repository.guest.password,jdbc.default.password,mail.session.mail.pop3.password,mail.session.mail.smtp.password,tunneling.servlet.shared.secret
Configure email notification settings.
Defaults:announcements.email.from.name= announcements.email.from.address=Defaults:
announcements.email.to.name= announcements.email.to.address=noreply@liferay.comDefaults:
announcements.email.subject=com/liferay/portlet/announcements/dependencies/email_subject.tmpl announcements.email.body=com/liferay/portlet/announcements/dependencies/email_body.tmpl
Set the list of announcement types. The display text of each of the announcement types is set in content/Language.properties.
Defaults:announcements.entry.types=general,news,test
Set the interval in minutes on how often CheckEntryMessageListener will run to check for new announcements. Users will be notified via email of new announcements.
Defaults:announcements.entry.check.interval=15
Set the available values for the number of announcements to display per page.
Defaults:announcements.entry.page.delta.values=5,10,20,30,50,75
Input a list of comma delimited default properties for new categories. Each item of the list should have the following format: "key:value".
Defaults:asset.categories.properties.default=
Set the following to false to specify that searching and browsing using categories should only show assets that have been assigned the selected category explicitly. When set to true, the children categories are also included in the search.
Defaults:asset.categories.search.hierarchical=true
Set the maximum number of entries for the Asset Categories Selector. A value of -1 will load all entries and the results will be not paginated.
Defaults:asset.categories.selector.max.entries=50
Set the limit for results used when performing asset searches that are subsequently filtered by permissions.
Defaults:asset.filter.search.limit=200
Set the name of the vocabulary which will be created by default.
Defaults:asset.vocabulary.default=Topic
Set a property with the prefix "asset.renderer.enabled." and a suffix with the asset renderer factory class name to enable or disable an asset renderer factory. The default setting is true. See LPS-6085 for more information.
Examples:asset.renderer.enabled.com.liferay.portlet.documentlibrary.asset.DLFileEntryAssetRendererFactory=false
Set this to true to enable comments for blogs entries.
Defaults:blogs.entry.comments.enabled=true
Configure email notification settings.
Defaults:blogs.email.from.name= blogs.email.from.address=Defaults:
blogs.email.entry.added.enabled=true blogs.email.entry.added.subject=${resource:com/liferay/portlet/blogs/dependencies/email_entry_added_subject.tmpl} blogs.email.entry.added.body=${resource:com/liferay/portlet/blogs/dependencies/email_entry_added_body.tmpl}Defaults:
blogs.email.entry.updated.enabled=true blogs.email.entry.updated.subject=${resource:com/liferay/portlet/blogs/dependencies/email_entry_updated_subject.tmpl} blogs.email.entry.updated.body=${resource:com/liferay/portlet/blogs/dependencies/email_entry_updated_body.tmpl}Defaults:
blogs.page.abstract.length=400Defaults:
blogs.rss.abstract.length=200
Set the excerpt length for linkbacks.
Defaults:blogs.linkback.excerpt.length=200
Set this to true to enable pingbacks.
Defaults:blogs.pingback.enabled=true
Set this to true to enable trackbacks.
Defaults:blogs.trackback.enabled=false
Set this to true to enable pinging Google on new and updated blog entries.
Defaults:blogs.ping.google.enabled=true
Set the available values for the number of blogs to display per page.
Defaults:blogs.entry.page.delta.values=5,10,20,30,50,75
Set this to true to enable previous and next navigation for blogs entries.
Defaults:blogs.entry.previous.and.next.navigation.enabled=true
Set the maximum file size for images stored with blogs entries. The images can be uploaded using an Alloy Editor, Cover Image, or Image Selector. A value of 0 for the maximum file size can be used to indicate unlimited file size. However, the maximum file size allowed is set in the property "com.liferay.portal.upload.UploadServletRequestImpl.max.size". The default value is 5 mb.
Defaults:blogs.image.max.size=5242880
Set valid file extensions for blog images. A file extension of * will permit all file extensions.
Defaults:blogs.image.extensions=.gif,.jpeg,.jpg,.png
Set this to true if blogs should be published to live by default.
Defaults:blogs.publish.to.live.by.default=false
Set this to true if calendar should be published to live by default.
Defaults:calendar.publish.to.live.by.default=true
Configure email notification settings for discussions.
Defaults:discussion.email.comments.added.enabled=true discussion.email.subject=com/liferay/portlet/messageboards/dependencies/discussion_email_subject.tmpl discussion.email.body=com/liferay/portlet/messageboards/dependencies/discussion_email_body.tmpl
Set this to true if the subscription checkbox for discussion comments will be checked by default.
Defaults:discussion.subscribe.by.default=true
Input a list of semicolon delimited elements and attributes allowed in discussion comments. This will be used by the editor to allow that specific markup and by the backend to sanitize the content.
Attributes can be optionally specified as a comma delimited list. If no attribute is specified, all the attributes will be cleaned up when the discussion comment is added.
The supported syntax is a subset of the one documented in http://docs.ckeditor.com/#!/guide/dev_allowed_content_rules-section-string-format
The following grammar describes the supported subset (parenthesis is used for grouping, '*' means zero or more repetitions, and '|' is used to describe alternatives):
allowed-content : element (; element)* element : element-name | element-name[attribute (, atribute)*]Defaults:
discussion.comments.allowed.content=a[href];em;p;span[class];strong;uExamples:
discussion.comments.allowed.content=a[href,title];em;p;strong;u
Set this property to true if users can edit their own discussion comments even if they do not have the permissions defined through the Site Members role.
Defaults:discussion.comments.always.editable.by.owner=false
Set the value for the minimum number of discussion comments to display before paginating. As we paginate based on top level comments, we may display more discussion comments than the specified value until we find a top level discussion comment.
Defaults:discussion.comments.delta.value=50
Set the discussion comments format.
Defaults:discussion.comments.format=htmlExamples:
discussion.comments.format=bbcode
Set the maximum number of discussion comments. A value of 0 for the maximum discussion comments can be used to indicate unlimited discussion comments.
Defaults:discussion.max.comments=1000
dl.actions.visible=falseDefaults:
dl.comment.ratings.enabled=true
Set the list of supported display views.
Defaults:dl.display.views=icon,descriptive,listDefaults:
dl.entry.columns=name,document-type,size,status,modified-date,create-date,actionDefaults:
dl.file.entry.columns=name,size,lockedDefaults:
dl.folder.columns=name,num-of-folders,num-of-documentsDefaults:
dl.folders.search.visible=trueDefaults:
dl.ratings.enabled=trueDefaults:
dl.related.assets.enabled=trueDefaults:
dl.subfolders.visible=trueDefaults:
dl.tabs.visible=false
Configure email notification settings.
Defaults:dl.email.from.name= dl.email.from.address=Defaults:
dl.email.file.entry.added.enabled=true dl.email.file.entry.added.subject=${resource:com/liferay/portlet/documentlibrary/dependencies/email_file_entry_added_subject.tmpl} dl.email.file.entry.added.body=${resource:com/liferay/portlet/documentlibrary/dependencies/email_file_entry_added_body.tmpl}Defaults:
dl.email.file.entry.updated.enabled=true dl.email.file.entry.updated.subject=${resource:com/liferay/portlet/documentlibrary/dependencies/email_file_entry_updated_subject.tmpl} dl.email.file.entry.updated.body=${resource:com/liferay/portlet/documentlibrary/dependencies/email_file_entry_updated_body.tmpl}
Set this property to true to enable execution of antivirus check when files are submitted into a store. Setting this value to true will prevent any potential virus files from entering the store but will not allow for file quarantines.
Defaults:dl.store.antivirus.enabled=false
Set the name of a class that implements com.liferay.document.library.kernel.antivirus.AntivirusScanner. The document library server will use this to scan documents for viruses.
Defaults:dl.store.antivirus.impl=com.liferay.portlet.documentlibrary.antivirus.DummyAntivirusScannerImplExamples:
dl.store.antivirus.impl=com.liferay.portlet.documentlibrary.antivirus.ClamAntivirusScannerImpl
These properties define the replacement strings for certain characters to get safe file names. They are used in com.liferay.portal.util.FileImpl See LPS-69122 for more information.
You should not modify these properties unless you are completely certain that no file has been stored using previous values.
Defaults:dl.store.file.impl.safe.file.name.2.ampersand=_AMP_ dl.store.file.impl.safe.file.name.2.close.parenthesis=_CP_ dl.store.file.impl.safe.file.name.2.open.parenthesis=_OP_ dl.store.file.impl.safe.file.name.2.semicolon=_SEM_
Set the name of a class that implements com.liferay.document.library.kernel.store.Store. The document library server will use this to persist documents.
Defaults:dl.store.impl=com.liferay.portal.store.file.system.FileSystemStoreExamples:
dl.store.impl=com.liferay.portal.store.db.DBStore dl.store.impl=com.liferay.portal.store.file.system.AdvancedFileSystemStore dl.store.impl=com.liferay.portal.store.s3.S3Store
Set this to false to allow users to update file entries by uploading a file with an extension different from the one of the originally uploaded file. There is a known issue where setting this to true will break OSX compatibility. See LPS-10770 for more information.
Defaults:dl.file.extensions.strict.check=false
Characters that are not allowed in directory names and file names.
Defaults:dl.char.blacklist=\\\\,//,:,*,?,\",<,>,|,../,/..
Characters that are not allowed as the last character in directory names or file names.
Defaults:dl.char.last.blacklist=\\u0020,.
Directory names and file names that are blacklisted regardless of the extension.
Defaults:dl.name.blacklist=con,prn,aux,nul,com1,com2,com3,com4,com5,com6,com7,com8,com9,lpt1,lpt2,lpt3,lpt4,lpt5,lpt6,lpt7,lpt8,lpt9
You can map a PNG for generic thumbnails by adding the image to the theme's file system folder. For example, the generic thumbnail for documents can be found in: /_unstyled/images/file_system/large/document.png.
Defaults:dl.file.generic.names=compressed,document,flash,image,music,pdf,presentation,spreadsheet,video dl.file.generic.extensions[compressed]=lar,rar,zip dl.file.generic.extensions[document]=doc,docx,pages,rtf,odt dl.file.generic.extensions[flash]=flv,swf dl.file.generic.extensions[image]=bmp,gif,jpeg,jpg,odg,png,svg dl.file.generic.extensions[music]=acc,mid,mp3,oga,ogg,wav,wma dl.file.generic.extensions[pdf]=pdf dl.file.generic.extensions[presentation]=key,keynote,odp,pps,ppt,pptx dl.file.generic.extensions[spreadsheet]=csv,numbers,ods,xls,xlsx dl.file.generic.extensions[video]=avi,m4v,mov,mp4,mpg,ogv,qt,rm,wmv
Set the maximum size for a file's indexable content. Files larger than this property will only have this amount of their content indexed. A value of -1 indicates that all of a file's content will be indexed. A value of 0 indicates that none of the file's content will be indexed.
Defaults:dl.file.indexing.max.size=1048576
Set the file extensions that will be ignored when indexing file contents. Files with these extensions will not have their contents indexed, only their metadata will be indexed.
Defaults:dl.file.indexing.ignore.extensions=.bmp,.gif,.jpeg,.jpg,.lar,.odg,.png,.svgExamples:
dl.file.indexing.ignore.extensions=.pdf,.ppt
Set the number of file entries that will be indexed in every iteration when indexing file entries.
Defaults:dl.file.indexing.interval=500
You can map a GIF for the extension by adding the image to the theme's image display and document library folder. The wildcard extension of * will be ignored. For example, the default image for the DOC extension would be found in: /_unstyled/images/file_system/small/doc.gif.
Defaults:dl.file.icons=.bmp,.css,.doc,.docx,.dot,.gif,.gz,.htm,.html,.jpeg,.jpg,.js,.lar,.odb,.odf,.odg,.odp,.ods,.odt,.pdf,.png,.ppt,.pptx,.rtf,.swf,.sxc,.sxi,.sxw,.tar,.tiff,.tgz,.txt,.vsd,.xls,.xlsx,.xml,.zip,.jrxml
Set this to true to check whether folders are empty or not and display a empty or full icon. Setting it to false disables the check and will always display an empty icon to speed up performance.
Defaults:dl.folder.icon.check.count=true
Set which file extensions are comparable by the diff tool. Any binary files listed here will only be comparable if OpenOffice is enabled and the the file is convertable to text.
Defaults:dl.comparable.file.extensions=.css,.doc,.docx,.js,.htm,.html,.odt,.rtf,.sxw,.txt,.xml
Set this to true to enable comments for document library files.
Defaults:dl.file.entry.comments.enabled=true
Set this to true to enable conversions for document library files.
This property is not used unless OpenOffice is also enabled. See the property "openoffice.server.enabled".
Defaults:dl.file.entry.conversions.enabled=true
Set this to true to enable drafts for document library files.
Defaults:dl.file.entry.drafts.enabled=false
Set this to 0 to automatically cancel a check out if it times out. Set this to 1 to automatically check in if a check out times out.
Defaults:dl.file.entry.lock.policy=0
Set this to true to force users to perform a check in via the Document Library user interface when using the "Open in MS Office" feature. Set this to false to allow users to automatically check in the file upon closing the appropriate MS Office application.
Defaults:dl.file.entry.open.in.ms.office.manual.check.in.required=false
Input a list of comma delimited class names that implement com.liferay.document.library.kernel.util.DLProcessor. These classes will trigger asynchronous processing for document library files.
com.liferay.document.library.kernel.util.PDFProcessor will process all PDF files and, if OpenOffice is enabled, all formats convertable to PDF. Image generation will use PDFBox by default unless ImageMagick is enabled. PDFBox is less accurate in image generation and has trouble with certain fonts.
Defaults:dl.file.entry.processors=com.liferay.portlet.documentlibrary.util.AudioProcessorImpl,com.liferay.portlet.documentlibrary.util.ImageProcessorImpl,com.liferay.portlet.documentlibrary.util.PDFProcessorImpl,com.liferay.portlet.documentlibrary.util.RawMetadataProcessorImpl,com.liferay.portlet.documentlibrary.util.VideoProcessorImpl
Input a list of comma delimited mime types that will be excluded from raw metadata extraction.
Defaults:dl.file.entry.raw.metadata.processor.excluded.mime.types=application/zip
Set this to 0 to force all updates to file entries to result in a new version. Set this to 1 to keep the version number if no changes are detected or if the only change is from a zero byte binary to a non-zero byte binary.
Defaults:dl.file.entry.version.policy=1
Set the values related to preview and thumbnail generation for document library files. The classes enabled under "dl.file.entry.processors" will utilize these parameters to generate the necessary files.
Some parameters are applied universally across all processors (e.g., dl.file.entry.thumbnail.max.height) while others are specific to certain types of generation, as specified (e.g., dl.file.entry.preview.document.depth).
If the property "dl.file.entry.preview.video.height" or the property "dl.file.entry.preview.video.width" is set to 0, then respective height and width of the video file will be used.
See the properties "imagemagick.enabled", "openoffice.server.enabled", and "xuggler.enabled".
Defaults:dl.file.entry.preview.enabled=true dl.file.entry.preview.document.depth=8 dl.file.entry.preview.document.dpi=300 dl.file.entry.preview.document.max.height=0 dl.file.entry.preview.document.max.width=1000 dl.file.entry.preview.video.height=360 dl.file.entry.preview.video.width=640 dl.file.entry.thumbnail.enabled=true dl.file.entry.thumbnail.max.height=300 dl.file.entry.thumbnail.max.width=300 dl.file.entry.thumbnail.video.frame.percentage=25Examples:
dl.file.entry.thumbnail.custom1.max.height=100 dl.file.entry.thumbnail.custom1.max.width=100 dl.file.entry.thumbnail.custom2.max.height=0 dl.file.entry.thumbnail.custom2.max.width=0
Input a list of comma delimited audio containers for preview files. The supported formats are MP3 and OGG.
Defaults:dl.file.entry.preview.audio.containers=mp3,oggExamples:
dl.file.entry.preview.audio.containers=mp3 dl.file.entry.preview.audio.containers=ogg
Set the bit rate and sample rate values for each audio container format.
Bit rates will be capped at 500000. A value less than 0 will be defaulted to 64000.
Sample rates will be capped at 192000. A value less than 0 will be defaulted to 44100.
Note that some audio container formats may not support the maximum capped values. Care should be taken not to exceed the value allowed by the given format.
Defaults:dl.file.entry.preview.audio.bit.rate[mp3]=64000 dl.file.entry.preview.audio.sample.rate[mp3]=44100Defaults:
dl.file.entry.preview.audio.bit.rate[ogg]=64000 dl.file.entry.preview.audio.sample.rate[ogg]=44100
Input a list of comma delimited audio MIME types that will trigger generation of audio previews.
Defaults:dl.file.entry.preview.audio.mime.types=audio/basic,audio/mid,audio/midi,audio/mod,audio/mp3,audio/mp4,audio/mpeg,audio/mpeg3,audio/ogg,audio/vorbis,audio/wav,audio/x-m4a,audio/x-mid,audio/x-midi,audio/x-mod,audio/x-mpeg,audio/x-pn-realaudio,audio/x-realaudio,audio/x-wav
Set this to true to generate document previews automatically when upgrading to 6.1. Setting this to true will cause your upgrade to take longer. If set to false, previews for a document will be generated the first time it is accessed by an end user.
Defaults:dl.file.entry.preview.auto.create.on.upgrade=false
Set this to true if you want preview generation to use a separate Java process. This will utilize extra resources from the operating system while improving the portal's stability.
Defaults:dl.file.entry.preview.fork.process.enabled=true
Set a comma delimited list of passwords that will be used by PDFBox to generate previews of protected documents. See LPS-68329 for more information.
Defaults:dl.file.entry.preview.generation.decrypt.passwords.pdfbox=
Set the interval in seconds before document previews generation times out and it is cancelled when processed by Ghostscript. This property applies only when the property "dl.file.entry.preview.fork.process.enabled" is set to true. See the property "imagemagick.enabled".
Defaults:dl.file.entry.preview.generation.timeout.ghostscript=1200
Set the interval in seconds before document previews generation times out and it is cancelled when processed by PDFBox. This property applies only when the property "dl.file.entry.preview.fork.process.enabled" is set to true.
Defaults:dl.file.entry.preview.generation.timeout.pdfbox=1200
Input a list of comma delimited image MIME types that will trigger generation of image previews.
Defaults:dl.file.entry.preview.image.mime.types=image/bmp,image/gif,image/jpeg,image/pjpeg,image/png,image/tiff,image/x-citrix-jpeg,image/x-citrix-png,image/x-ms-bmp,image/x-png,image/x-tiff
Input a list of comma delimited video containers for preview files. The only formats supported are MP4 and OGV.
Defaults:dl.file.entry.preview.video.containers=mp4,ogvExamples:
dl.file.entry.preview.video.containers=mp4 dl.file.entry.preview.video.containers=ogv
Set the bit rate and frame rate values for each preview video container format.
Bit rates will be capped at 1200000. A value less than 0 will be defaulted to 250000.
Frame rates are determined by a numerator divided by a denominator. If either value is less than 0, then the input video's frame rate will be used.
Defaults:dl.file.entry.preview.video.bit.rate[mp4]=250000 dl.file.entry.preview.video.frame.rate.denominator[mp4]=1 dl.file.entry.preview.video.frame.rate.numerator[mp4]=30Defaults:
dl.file.entry.preview.video.bit.rate[ogv]=250000 dl.file.entry.preview.video.frame.rate.denominator[ogv]=-1 dl.file.entry.preview.video.frame.rate.numerator[ogv]=-1
Input a list of comma delimited video MIME types that will trigger generation of video previews.
Defaults:dl.file.entry.preview.video.mime.types=video/avi,video/mp4,video/mpeg,video/ogg,video/quicktime,video/webm,video/x-flv,video/x-m4v,video/x-ms-wmv,video/x-msvideo
Set this to true to generate Image Gallery thumbnails when accessed via legacy URLs.
Defaults:dl.file.entry.ig.thumbnail.generation=false
When migrating images from the Image Gallery (this is only applicable if upgrading from a version prior to Liferay 6.1) to the Document Library, images will be migrated as documents of the type "Image Gallery Image". Asset Publishers configured to display Image Gallery images will display this document type instead after the migration. Set this property to false to migrate Image Gallery images as basic documents instead. This property will not work unless the property "application.startup.events" includes com.liferay.portal.events.AddDefaultDataAction, which it does by default.
Defaults:dl.file.entry.type.ig.image.auto.create.on.upgrade=true
Set this to true if document library should be published to live by default.
Defaults:dl.publish.to.live.by.default=true
Input a list of comma delimited class names of the third party repositories that extend com.liferay.portal.kernel.repository.BaseRepositoryImpl.
Defaults:dl.repository.impl=
Set the credentials to use when guest users access an external repository like CMIS, Documentum, or Sharepoint.
Defaults:dl.repository.guest.username=Administrator dl.repository.guest.password=password
Set the default display view.
Defaults:dl.default.display.view=icon
Set this to true to show hidden mount folders.
Defaults:dl.show.hidden.mount.folders=false
Set the character to use for substituting file entry titles when generating WebDAV URLs. This character should not be changed in an existing installation with already created file entries because existing files may contain the substitution char and those will not be accessible through WebDAV until the DLServiceVerifyProcess executes and renames them.
Defaults:dl.webdav.substitution.char=^
Specify a role name that a user must be associated with in order to configure the IFrame portlet to use the @password@ token on any portal page except for the user's own private pages. This token is used to post the password of users who access this portlet in order to automatically login to the framed site.
In a high security environment, only users who are trusted not to attempt password theft should be associated with the specified role. See LPS-5272 for more information.
Defaults:iframe.password.token.role=
Configure email notification settings.
Defaults:login.email.from.name= login.email.from.address=
Set this to true to allow the user to choose a password during account creation.
Defaults:login.create.account.allow.custom.password=false
Set this to true to disable the login popup dialog. This should only be set to true if there is a custom login portlet that needs the "Sign In" link to redirect to another page.
Defaults:login.dialog.disabled=false
Input a list of sections that will be included in login form navigation.
Defaults:login.form.navigation.pre= login.form.navigation.post=
Set this to true to prevent attempts to enumerate the portal's users via the forgot password feature. This feature will no longer show an error that would reveal a user's existence.
Defaults:login.secure.forgot.password=false
Configure maximum number of items to display when using the Menu tag library or the Nav Item tag. If the number of items is higher than the maximum allowed, then the menu will provide an autocomplete search box to display the items.
Defaults:menu.max.display.items=15
Configure email notification settings.
Defaults:message.boards.email.from.name=[$MESSAGE_USER_NAME$] message.boards.email.from.address= message.boards.email.bulk=true message.boards.email.html.format=trueDefaults:
message.boards.email.message.added.enabled=true message.boards.email.message.added.subject=${resource:com/liferay/portlet/messageboards/dependencies/email_message_added_subject.tmpl} message.boards.email.message.added.body=${resource:com/liferay/portlet/messageboards/dependencies/email_message_added_body.tmpl}Defaults:
message.boards.email.message.updated.enabled=true message.boards.email.message.updated.subject=${resource:com/liferay/portlet/messageboards/dependencies/email_message_updated_subject.tmpl} message.boards.email.message.updated.body=${resource:com/liferay/portlet/messageboards/dependencies/email_message_updated_body.tmpl}
Set the name of the category display style which will be used by default.
Defaults:message.boards.category.display.styles.default=default
Specify the options that will be provided to the user when editing a category.
Defaults:message.boards.category.display.styles=default,questionDefaults:
message.boards.flags.enabled=true
Set the list of supported message board formats and the default message board format.
Defaults:message.boards.message.formats=bbcode,html message.boards.message.formats.default=bbcode
Set this to true to allow anonymous posting.
Defaults:message.boards.anonymous.posting.enabled=true
Set this to true if users are subscribed by default to a thread they participate in.
Defaults:message.boards.subscribe.by.default=true
Enter time in days to automatically expire bans on users. Set this property or the property "message.boards.expire.ban.job.interval" to 0 to disable auto expire.
Defaults:message.boards.expire.ban.interval=10Examples:
message.boards.expire.ban.interval=0
Set this to true to enable pingbacks.
Defaults:message.boards.pingback.enabled=trueDefaults:
message.boards.ratings.enabled=trueDefaults:
message.boards.recent.posts.date.offset=7Defaults:
message.boards.rss.abstract.length=200Defaults:
message.boards.rss.enabled=trueDefaults:
message.boards.thread.priorities=\ Urgent|icon-bolt|3.0,\ Sticky|icon-pushpin|2.0,\ Announcement|icon-comments|1.0Defaults:
message.boards.user.ranks=\ #Moderator=organization:Message Boards Administrator,\ #Moderator=organization-role:Message Boards Administrator,\ #Moderator=regular-role:Message Boards Administrator,\ #Moderator=site-role:Message Boards Administrator,\ #Moderator=user-group:Message Boards Administrator,\ Youngling=0,\ Padawan=25,\ Jedi Knight=100,\ Jedi Master=250,\ Jedi Council Member=500,\ Yoda=1000
Set this to true if message boards should be published to live by default.
Defaults:message.boards.publish.to.live.by.default=falseDefaults:
message.boards.thread.as.question.by.default=false
Set the display style for the My Places navigation menu.
Defaults:my.sites.display.style=simpleExamples:
my.sites.display.style=classic
Set this to true to show user public sites with no layouts.
Defaults:my.sites.show.user.public.sites.with.no.layouts=true
Set this to true to show user private sites with no layouts.
Defaults:my.sites.show.user.private.sites.with.no.layouts=true
Set this to true to show public sites with no layouts.
Defaults:my.sites.show.public.sites.with.no.layouts=true
Set this to true to show site private sites with no layouts.
Defaults:my.sites.show.private.sites.with.no.layouts=true
Set the maximum number of elements that will be shown in the My Sites navigation menu. For example, if the maximum is set to 10, then, at most, 10 sites will be shown.
Defaults:my.sites.max.elements=10
Set this to true to enable access to the Look and Feel icon. Setting it to false will disable the ability to modify the portlet CSS at runtime, which can speed up performance.
Defaults:portlet.css.enabled=true
Set the number of stars that will be used by the ratings tag library by default.
Defaults:ratings.default.number.of.stars=5
In versions prior to 7.0, ratings stored in database were not normalized. Since 7.0, all values are normalized between 0 and 1.
The properties "ratings.upgrade.stars.normalization.factor" and "ratings.upgrade.thumbs.class.names" are used by the upgrade process to normalize the unnormalized values.
Set this property to specify the normalize factor that will be used during the upgrade process for the different class names that use stars as the ratings mechanism.
The normalize factor is the maximun number of stars for the class name.
Defaults:ratings.upgrade.stars.normalization.factor[default]=5Examples:
ratings.upgrade.stars.normalization.factor[com.liferay.portlet.blogs.model.BlogsEntry]=10
Set this property to specify which class names use thumbs as ratings. See the property "ratings.upgrade.stars.normalization.factor".
Defaults:ratings.upgrade.thumbs.class.names=com.liferay.message.boards.model.MBDiscussion,com.liferay.message.boards.model.MBMessage
Configure maximum number of items to display per type in the Recent Content portlet.
Defaults:recent.content.max.display.items=5
Specify a list of comma delimited site names that are excluded from determining the organizations, user groups, and users that are displayed in My Sites Directory portlet.
Defaults:my.sites.directory.site.excludes=
Set this to true to allow site members to see the Sites Admin portlet and the sites they are members of in the Control Panel. Setting this to false will only allow administrators to see this portlet in the Control Panel.
Defaults:sites.control.panel.members.visible=true
Set this to true to allow site administrators to make a site inherit the content from the scope of its parent site. This option can be checked in the Site Settings section of a site. Sites which inherit the content from their parent site will not have its own scope of content and therefore will not have the Content Category in the Sites Admin portlet. Setting this to false will disable this option for sites that are not already configured to inherit content.
Defaults:sites.show.inherit.content.scope.from.parent.site=false
Redirect to this resource if the user requested a site friendly URL that does not exist. Leave it blank to display nothing.
A similar configuration for pages is managed with the property "layout.friendly.url.page.not.found".
Examples:sites.friendly.url.page.not.found=/html/portal/404.html
Set this property to 0 to disable the Sharing of Content with subsites for all sites. Set this property to 1 to disable it by default while allowing site administrators to enable it per site. Set this property to 2 to enable it by default while allowing site administrators to disable it per site.
Defaults:sites.content.sharing.with.children.enabled=2Examples:
sites.content.sharing.with.children.enabled==0 sites.content.sharing.with.children.enabled==1
Set this property to true to let every site administrator share content across sites he manages.
Defaults:sites.content.sharing.through.administrators.enabled=true
Configure email notification settings.
Defaults:sites.email.from.name= sites.email.from.address=Defaults:
sites.email.membership.reply.subject=com/liferay/portlet/sites/dependencies/email_membership_reply_subject.tmpl sites.email.membership.reply.body=com/liferay/portlet/sites/dependencies/email_membership_reply_body.tmplDefaults:
sites.email.membership.request.subject=com/liferay/portlet/sites/dependencies/email_membership_request_subject.tmpl sites.email.membership.request.body=com/liferay/portlet/sites/dependencies/email_membership_request_body.tmpl
Set the default change frequency for pages. This change frequency value will be used by the robots visiting the pages. Possible values are: always, hourly, daily, weekly, monthly, yearly, or never.
Defaults:sites.sitemap.default.change.frequency=daily
Set the default priority for pages. This priority value will used by the robots visiting the pages. The possible value range is 0.0 to 1.0.
Defaults:sites.sitemap.default.priority=
Set this property to false to disable the Recycle Bin for all sites. Set this property to true to enabling while allowing site administrators to disable it per site.
Defaults:trash.enabled=trueExamples:
trash.enabled=false
Set the limit for results used when performing searches in the Recycle Bin.
Defaults:trash.search.limit=500
Set the interval in minutes on how often CheckEntryMessageListener will run to check for and delete trash entries that have been in the Recycle Bin longer than the maximum age.
Defaults:trash.entry.check.interval=60
Set this to the maximum age (in number of minutes) that an entry will be kept in the Recycle Bin. Note that these settings may be overridden in Portal Settings for each portal server or in Site Settings for each site.
Defaults:trash.entries.max.age=43200
Configure email notification settings.
Defaults:workflow.email.from.name= workflow.email.from.address=
Sets the encoding used for file names inside ZIP files. See LPS-76719 for more informatino.
Defaults:zip.file.name.encoding=UTF-8