Portal Properties

Table of Contents

Properties


Top of Page

Properties Override


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 overriden 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}


Top of Page

Liferay Home


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}


Top of Page

Portal Context


Set the application server's HTTP port. This value should be different from the value in the property "web.server.http.port". That property refers to the web server, this property refers to the application server. This property should only be set when the application server is sitting behind a web server like Apache. See LPS-17106 for more information.

Defaults:

    portal.instance.http.port=


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=


Top of Page

TCK


Set this to true to enable programmatic configuration to let the Portlet TCK obtain a URL for each test. This should never be set to true unless you are running the TCK tests.

Defaults:

    tck.url=false


Top of Page

Schema


Set this to true to automatically create tables and populate with default data if the database is empty.

Defaults:

    schema.run.enabled=true


Top of Page

Upgrade


Input a list of comma delimited class names that implement com.liferay.portal.upgrade.UpgradeProcess. These classes will run on startup to upgrade older data to match with the latest version.

Escape the comma so that the property can be properly interpolated. For example, the property "upgrade.processes.6100" will not properly reference the property "upgrade.processes.default" unless the commas are escaped. See StartupHelper#getUpgradeProcessClassNames(String).

Defaults:

    upgrade.processes.master=\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_0\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_1\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_2\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_3\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_5\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_6\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_1_0\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_1_1\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_2_0

Defaults:

    upgrade.processes.5203=${upgrade.processes.master}
    upgrade.processes.6000=${upgrade.processes.master}
    upgrade.processes.6001=${upgrade.processes.master}
    upgrade.processes.6002=${upgrade.processes.master}
    upgrade.processes.6003=${upgrade.processes.master}
    upgrade.processes.6004=${upgrade.processes.master}
    upgrade.processes.6005=${upgrade.processes.master}
    upgrade.processes.6006=${upgrade.processes.master}
    upgrade.processes.6100=${upgrade.processes.master}
    upgrade.processes.6101=${upgrade.processes.master}
    upgrade.processes.6102=${upgrade.processes.master}
    upgrade.processes.6110=${upgrade.processes.master}
    upgrade.processes.6120=${upgrade.processes.master}
    upgrade.processes.6130=${upgrade.processes.master}
    upgrade.processes.6200=${upgrade.processes.master}


If this property is specified with a list of classes, then the portal will use this list of upgrade processes without taking into account any of the other "upgrade.processes.*" property settings.

This property is deprecated and only provided for backwards compatibility.

Defaults:

    upgrade.processes=


The following are upgrade processes for EE releases.

Defaults:

    upgrade.processes.5208=\
        com.liferay.portal.upgrade.UpgradeProcess_5_2_8_to_6_0_5\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_6\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_1_0\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_1_1\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_2_0

Defaults:

    upgrade.processes.5209=\
        com.liferay.portal.upgrade.UpgradeProcess_5_2_9_to_6_0_11\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_12\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_12_to_6_1_0\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_1_1\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_2_0

Defaults:

    upgrade.processes.6010=${upgrade.processes.master}

Defaults:

    upgrade.processes.6011=\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_12\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_0_12_to_6_1_0\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_1_1\,\
        com.liferay.portal.upgrade.UpgradeProcess_6_2_0

Defaults:

    upgrade.processes.6012=${upgrade.processes.6011}


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


Top of Page

Verify


Input a list of comma delimited class names that implement com.liferay.portal.integrity.VerifyProcess. These classes will run on startup to verify and fix any integrity problems found in 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


Top of Page

Convert


Input a list of comma delimited class names that implement com.liferay.portal.convert.ConvertProcess. These classes can be run from within the Admin portlet to convert older data to match a new configuration of the portal.

Defaults:

    convert.processes=\
        com.liferay.portal.convert.ConvertDatabase,\
        com.liferay.portal.convert.ConvertDocumentLibrary,\
        com.liferay.portal.convert.ConvertDocumentLibraryExtraSettings,\
        com.liferay.portal.convert.ConvertWikiCreole


Top of Page

Auto Deploy


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.LiferayPackageAutoDeployListener,\
        com.liferay.portal.deploy.auto.ModuleAutoDeployListener,\
        com.liferay.portal.deploy.auto.PortletAutoDeployListener,\
        com.liferay.portal.deploy.auto.ThemeAutoDeployListener,\
        com.liferay.portal.deploy.auto.WebAutoDeployListener,\
        com.liferay.portal.deploy.auto.exploded.tomcat.HookExplodedTomcatListener,\
        com.liferay.portal.deploy.auto.exploded.tomcat.LayoutTemplateExplodedTomcatListener,\
        com.liferay.portal.deploy.auto.exploded.tomcat.PortletExplodedTomcatListener,\
        com.liferay.portal.deploy.auto.exploded.tomcat.ThemeExplodedTomcatListener


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.geronimo.dest.dir=${org.apache.geronimo.home.dir}/deploy
    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


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 the behavior of the wsadmin command, such as connection port or protocol.

Defaults:

    auto.deploy.websphere.wsadmin.properties.file.name=


Set the URLs of libraries that might be needed to download during the auto deploy process.

Defaults:

    library.download.url.resin.jar=http://cdn.files.liferay.com/public/quercus/4.0.11/resin.jar
    library.download.url.script-10.jar=http://cdn.files.liferay.com/public/quercus/3.1.9/script-10.jar


Top of Page

Hot Deploy


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.MessagingHotDeployListener


Top of Page

Hot Undeploy


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


Top of Page

Sandbox Deploy


Input a list of comma delimited class names that implement com.liferay.portal.kernel.deploy.sandbox.SandboxDeployListener. These classes are used to process sandbox style plugins.

Defaults:

    sandbox.deploy.listeners=\
        com.liferay.portal.deploy.sandbox.PortletSandboxDeployListener,\
        com.liferay.portal.deploy.sandbox.ThemeSandboxDeployListener


Set this to true to enable sandbox style plugin development.

Defaults:

    sandbox.deploy.enabled=false


Set the directory to scan for sand box style plugins.

Defaults:

    sandbox.deploy.dir=${liferay.home}/sandbox


Set the interval in milliseconds on how often to scan the directory for changes.

Defaults:

    sandbox.deploy.interval=3000


Top of Page

Plugin


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


Top of Page

Portlet


Set this property to set the default virtual path for all hot deployed portlets. See liferay-portlet-app_6_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=3,56_INSTANCE_0000,58,82,86,103,113,145,164,166,170


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=\
        /journal/rss,\
        /language/view


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)/.*


Top of Page

Portlet Container


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


Top of Page

Portlet Coordination


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


Top of Page

Portlet Display Templates


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


Top of Page

Portlet Filters


Input a list of portlet filters that will be applied to all portlets.

Defaults:

    portlet.filters.system=com.liferay.portlet.ScriptDataPortletFilter


Top of Page

Theme


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".

Defaults:

    theme.css.fast.load=true


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".

Defaults:

    theme.images.fast.load=true


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_6_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


Top of Page

Resource Actions


Input a list of comma delimited resource action configurations that will be read from the class path.

Defaults:

    resource.actions.configs=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


Top of Page

Model Hints


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,\
        META-INF/portlet-model-hints.xml


Top of Page

Model Tree Path


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


Top of Page

Service Builder


Input a list of common delimited method prefixes designated for read-only transactions. Service Builder will use these prefixes to annotate methods that are to run in read-only transactions.

Defaults:

    service.builder.service.read.only.prefixes=\
        fetch,\
        get,\
        has,\
        is,\
        load,\
        reindex,\
        search


Top of Page

Spring


Input a list of comma delimited Spring configurations. These will be loaded after the bean definitions specified in the contextConfigLocation parameter in web.xml.

Note that there is a special case for hibernate-spring.xml and jpa-spring.xml. Even though both files are specified, only one will actually load at runtime based on the property "persistence.provider".

Defaults:

    spring.configs=\
        META-INF/base-spring.xml,\
        \
        META-INF/hibernate-spring.xml,\
        META-INF/infrastructure-spring.xml,\
        META-INF/management-spring.xml,\
        \
        META-INF/util-spring.xml,\
        \
        META-INF/jpa-spring.xml,\
        \
        META-INF/executor-spring.xml,\
        \
        META-INF/audit-spring.xml,\
        META-INF/cluster-spring.xml,\
        META-INF/editor-spring.xml,\
        META-INF/jcr-spring.xml,\
        META-INF/ldap-spring.xml,\
        META-INF/messaging-core-spring.xml,\
        META-INF/messaging-misc-spring.xml,\
        META-INF/mobile-device-spring.xml,\
        META-INF/notifications-spring.xml,\
        META-INF/poller-spring.xml,\
        META-INF/rules-spring.xml,\
        META-INF/scheduler-spring.xml,\
        META-INF/search-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,\
        #META-INF/shard-data-source-spring.xml,\
        #META-INF/memcached-spring.xml,\
        \
        classpath*:META-INF/ext-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 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


Top of Page

Persistence


Set the provider used for ORM persistence. If this property is set to "jpa", then the properties with the prefix "jpa." will be read. If this property is set to "hibernate", then the properties with the prefix "hibernate." will be read.

Note that this property affects the loading of hibernate-spring.xml or jpa-spring.xml in the property "spring.configs".

Defaults:

    persistence.provider=hibernate

Examples:

    persistence.provider=jpa


Top of Page

Hibernate


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 Hibernate cache region factory. Ehcache is recommended in a clustered environment. See the property "net.sf.ehcache.configurationResourceName" for detailed configuration.

Defaults:

    hibernate.cache.region.factory_class=com.liferay.portal.dao.orm.hibernate.region.SingletonLiferayEhcacheRegionFactory


This property is used if Hibernate is configured to use Ehcache's region factory.

Defaults:

    net.sf.ehcache.configurationResourceName=/ehcache/hibernate-clustered.xml


Configure this property if using Ehcache's default replication method for Hibernate's region cache.

Defaults:

    net.sf.ehcache.configurationResourceName.peerProviderProperties=peerDiscovery=automatic,multicastGroupAddress=${multicast.group.address["hibernate"]},multicastGroupPort=${multicast.group.port["hibernate"]},timeToLive=1


Set other Hibernate cache settings.

Defaults:

    hibernate.cache.use_query_cache=false
    hibernate.cache.use_second_level_cache=false
    hibernate.cache.use_minimal_puts=true
    hibernate.cache.use_structured_entries=false


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=20

Examples:

    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


Top of Page

JPA


Set this property to "none" to disable the JPA validation. Some application servers have the validation JARs in the global class path which causes conflicts with Hibernate. See LPS-22453 for more information.

Defaults:

    javax.persistence.validation.mode=none


Input a list of comma delimited JPA configurations.

Defaults:

    jpa.configs=\
        META-INF/mail-orm.xml,\
        META-INF/portal-orm.xml


Set the name of the JPA provider.

Defaults:

    jpa.provider=eclipselink

Examples:

    jpa.provider=hibernate
    jpa.provider=openjpa
    jpa.provider=toplink


Specify provider specific properties prefixed with "jpa.provider.property."

Defaults:

    jpa.provider.property.eclipselink.allow-zero-id=true

Examples:

    jpa.provider.property.eclipselink.logging.level=FINEST
    jpa.provider.property.eclipselink.logging.timestamp=true


The LoadTimeWeaver interface is a Spring class that allows JPA ClassTransformer instances to be plugged in a specific manner depending on the environment.

Not all JPA providers require a JVM agent (Hibernate is an example). If your provider does not require an agent or you have other alternatives (such as applying enhancements at build time through a custom compiler or an Ant task), then the loadtime weaver should not be used.

Defaults:

    jpa.load.time.weaver=org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver

Examples:

    jpa.load.time.weaver=org.springframework.instrument.classloading.glassfish.GlassFishLoadTimeWeaver
    jpa.load.time.weaver=org.springframework.instrument.classloading.oc4j.OC4JLoadTimeWeaver
    jpa.load.time.weaver=org.springframework.instrument.classloading.weblogic.WebLogicLoadTimeWeaver


Specify a specific database platform setting if the JPA provider is not able to detect the database platform.

Valid values for the Hibernate and OpenJPA providers are: DB2, DERBY, HSQL, INFORMIX, MYSQL, ORACLE, POSTGRESQL, SQL_SERVER, and SYBASE.

Valid values for the EclipseLink provider are: org.eclipse.persistence.platform.database.DB2MainframePlatform, org.eclipse.persistence.platform.database.DB2Platform, org.eclipse.persistence.platform.database.DerbyPlatform, org.eclipse.persistence.platform.database.HSQLPlatform, org.eclipse.persistence.platform.database.InformixPlatform, org.eclipse.persistence.platform.database.MySQLPlatform, org.eclipse.persistence.platform.database.OraclePlatform, org.eclipse.persistence.platform.database.PostgreSQLPlatform, org.eclipse.persistence.platform.database.SQLServerPlatform, or org.eclipse.persistence.platform.database.SybasePlatform.

Check with JPA provider's documentation for details and all possible values.

Examples:

    jpa.database.platform=


Liferay will automatically detect the database type by initializing DBUtil. You can override the value here if needed. Expected values are: db2, derby, firebird, hypersonic, informix, ingres, interbase, jdatastore, mysql, oracle, postgresql, sap, sqlserver, and sybase.

Examples:

    jpa.database.type=


Top of Page

JDBC


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.

Add dynamic-data-source-spring.xml to the property "spring.configs" to configure the portal to use one database cluster for read calls and another database cluster for write calls. The convention is to create a set of properties prefixed with "jdbc.read." to handle read calls and another set of properties prefixed with "jdbc.write." to handle write calls. These data sources can also be created via JNDI by setting the properties "jdbc.read.jndi.name" and "jdbc.write.jndi.name". Note that these settings, though separate, are a copy of the default settings with the newly overridden values.


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


Derby

Examples:

    jdbc.default.driverClassName=org.apache.derby.jdbc.EmbeddedDriver
    jdbc.default.url=jdbc:derby:lportal
    jdbc.default.username=
    jdbc.default.password=


Hypersonic

Defaults:

    jdbc.default.driverClassName=org.hsqldb.jdbcDriver
    jdbc.default.url=jdbc:hsqldb:${liferay.home}/data/hsql/lportal
    jdbc.default.username=sa
    jdbc.default.password=


Ingres

Examples:

    jdbc.default.driverClassName=com.ingres.jdbc.IngresDriver
    jdbc.default.url=jdbc:ingres://localhost:II7/lportal
    jdbc.default.username=
    jdbc.default.password=


MySQL

Examples:

    jdbc.default.driverClassName=com.mysql.jdbc.Driver
    jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
    jdbc.default.username=
    jdbc.default.password=


Oracle

Examples:

    jdbc.default.driverClassName=oracle.jdbc.driver.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?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
    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=net.sourceforge.jtds.jdbc.Driver
    jdbc.default.url=jdbc:jtds:sqlserver://localhost/lportal
    jdbc.default.username=sa
    jdbc.default.password=


Sybase

Examples:

    jdbc.default.driverClassName=net.sourceforge.jtds.jdbc.Driver
    jdbc.default.url=jdbc:jtds:sybase://localhost:5000/lportal
    jdbc.default.username=sa
    jdbc.default.password=


Liferay can use C3PO, DBCP, 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 C3PO.

Defaults:

    jdbc.default.liferay.pool.provider=c3po

Examples:

    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.maxIdleTime=3600
    jdbc.default.maxPoolSize=100
    jdbc.default.minPoolSize=10
    jdbc.default.numHelperThreads=10

Examples:

    jdbc.default.transactionIsolation=1


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.removeAbandonedTimeout=3600

Examples:

    jdbc.default.defaultTransactionIsolation=READ_UNCOMMITTED


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.timeBetweenEvictionRunsMillis=30000
    jdbc.default.useEquals=false


Top of Page

Custom SQL


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


Top of Page

Database


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


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


Top of Page

Transaction


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, (i.e. when using JPA and JpaTransactionManager) 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.LastSessionRecorderHibernateTransactionManager

Examples:

    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=false

Examples:

    transaction.manager.property.allowCustomIsolationLevels=true


Top of Page

Transactional Cache


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.service.persistence.impl.TableMapper-*,com.liferay.portlet.PortalPreferencesWrapperCacheUtil


Top of Page

Sharded Databases


Set the database that is to be used for the default company and globally used tables in a sharded environment.

Defaults:

    shard.default.name=default


Specify an algorithm for selecting a new shard on portal instance creation. Use ManualShardSelector for shard selection via the web interface.

Defaults:

    shard.selector=com.liferay.portal.dao.shard.RoundRobinShardSelector

Examples:

    shard.selector=com.liferay.portal.dao.shard.ManualShardSelector


Top of Page

Ehcache


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


Uncomment the following in a clustered environment.

Defaults:

    ehcache.multi.vm.config.location.peerProviderProperties=peerDiscovery=automatic,multicastGroupAddress=${multicast.group.address["multi-vm"]},multicastGroupPort=${multicast.group.port["multi-vm"]},timeToLive=1


Input a class name that extends net.sf.ehcache.bootstrap.BootstrapCacheLoaderFactory. This class is used by Ehcache to determine how caches communicate with each other in a clustered environment.

Defaults:

    ehcache.bootstrap.cache.loader.factory=net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory

Examples:

    ehcache.bootstrap.cache.loader.factory=com.liferay.portal.cache.ehcache.JGroupsBootstrapCacheLoaderFactory


Input a class name that extends net.sf.ehcache.event.CacheEventListenerFactory. This class is used by Ehcache to determine how caches communicate with each other in a clustered environment.

Defaults:

    ehcache.cache.event.listener.factory=net.sf.ehcache.distribution.RMICacheReplicatorFactory

Examples:

    ehcache.cache.event.listener.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory


Input a class name that extends net.sf.ehcache.distribution.CacheManagerPeerProviderFactory. This class is used by Ehcache to determine how caches communicate with each other in a clustered environment.

Defaults:

    ehcache.cache.manager.peer.provider.factory=net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory

Examples:

    ehcache.cache.manager.peer.provider.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory


The Ehcache cache manager internally maintains a scheduled thread pool executor for statistics. The default size of tthe scheduled thread pool executor is set to the number of CPUs. This is too heavy for a server with a lot of processors. Set this property to reduce the scheduled thread pool size.

Defaults:

    ehcache.cache.manager.statistics.thread.pool.size=1


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=false


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


Top of Page

JavaScript


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.

The Liferay scripts are grouped in such a way, that 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 does not rely on the second or third group. The third grouping denotes modules that rely on the first and second group.

Defaults:

    javascript.barebone.files=\
        \
        #
        # YUI core
        #
        \
        aui/aui/aui.js,\
        aui/aui-base-html5-shiv/aui-base-html5-shiv.js,\
        \
        #
        # Liferay module definitions
        #
        \
        liferay/browser_selectors.js,\
        liferay/modules.js,\
        \
        #
        # AUI sandbox
        #
        \
        liferay/aui_sandbox.js,\
        \
        #
        # YUI modules
        #
        \
        aui/arraylist-add/arraylist-add.js,\
        aui/arraylist-filter/arraylist-filter.js,\
        aui/arraylist/arraylist.js,\
        aui/array-extras/array-extras.js,\
        aui/array-invoke/array-invoke.js,\
        aui/attribute-base/attribute-base.js,\
        aui/attribute-complex/attribute-complex.js,\
        aui/attribute-core/attribute-core.js,\
        aui/attribute-observable/attribute-observable.js,\
        aui/attribute-extras/attribute-extras.js,\
        aui/base-base/base-base.js,\
        aui/base-pluginhost/base-pluginhost.js,\
        aui/classnamemanager/classnamemanager.js,\
        aui/datatype-xml-format/datatype-xml-format.js,\
        aui/datatype-xml-parse/datatype-xml-parse.js,\
        aui/dom-base/dom-base.js,\
        aui/dom-core/dom-core.js,\
        aui/dom-screen/dom-screen.js,\
        aui/dom-style/dom-style.js,\
        aui/event-base/event-base.js,\
        aui/event-custom-base/event-custom-base.js,\
        aui/event-custom-complex/event-custom-complex.js,\
        aui/event-delegate/event-delegate.js,\
        aui/event-focus/event-focus.js,\
        aui/event-hover/event-hover.js,\
        aui/event-key/event-key.js,\
        aui/event-mouseenter/event-mouseenter.js,\
        aui/event-mousewheel/event-mousewheel.js,\
        aui/event-outside/event-outside.js,\
        aui/event-resize/event-resize.js,\
        aui/event-simulate/event-simulate.js,\
        aui/event-synthetic/event-synthetic.js,\
        aui/intl/intl.js,\
        aui/io-base/io-base.js,\
        aui/io-form/io-form.js,\
        aui/io-queue/io-queue.js,\
        aui/io-upload-iframe/io-upload-iframe.js,\
        aui/io-xdr/io-xdr.js,\
        aui/json-parse/json-parse.js,\
        aui/json-stringify/json-stringify.js,\
        aui/node-base/node-base.js,\
        aui/node-core/node-core.js,\
        aui/node-event-delegate/node-event-delegate.js,\
        aui/node-event-simulate/node-event-simulate.js,\
        aui/node-focusmanager/node-focusmanager.js,\
        aui/node-pluginhost/node-pluginhost.js,\
        aui/node-screen/node-screen.js,\
        aui/node-style/node-style.js,\
        aui/oop/oop.js,\
        aui/plugin/plugin.js,\
        aui/pluginhost-base/pluginhost-base.js,\
        aui/pluginhost-config/pluginhost-config.js,\
        aui/querystring-stringify-simple/querystring-stringify-simple.js,\
        aui/queue-promote/queue-promote.js,\
        aui/selector-css2/selector-css2.js,\
        aui/selector-css3/selector-css3.js,\
        aui/selector-native/selector-native.js,\
        aui/selector/selector.js,\
        aui/widget-base/widget-base.js,\
        aui/widget-htmlparser/widget-htmlparser.js,\
        aui/widget-skin/widget-skin.js,\
        aui/widget-uievents/widget-uievents.js,\
        aui/yui-throttle/yui-throttle.js,\
        \
        #
        # Alloy core
        #
        \
        aui/aui-base-core/aui-base-core.js,\
        aui/aui-base-lang/aui-base-lang.js,\
        \
        #
        # Alloy modules
        #
        \
        aui/aui-classnamemanager/aui-classnamemanager.js,\
        aui/aui-component/aui-component.js,\
        aui/aui-debounce/aui-debounce.js,\
        aui/aui-delayed-task-deprecated/aui-delayed-task-deprecated.js,\
        aui/aui-event-base/aui-event-base.js,\
        aui/aui-event-input/aui-event-input.js,\
        aui/aui-form-validator/aui-form-validator.js,\
        aui/aui-node-base/aui-node-base.js,\
        aui/aui-node-html5/aui-node-html5.js,\
        aui/aui-selector/aui-selector.js,\
        aui/aui-timer/aui-timer.js,\
        \
        #
        # Liferay base utility scripts
        #
        \
        liferay/dependency.js,\
        liferay/events.js,\
        liferay/language.js,\
        liferay/liferay.js,\
        liferay/util.js,\
        \
        #
        # Liferay utility scripts
        #
        \
        liferay/portal.js,\
        liferay/portlet.js,\
        liferay/portlet_sharing.js,\
        liferay/workflow.js,\
        \
        #
        # Liferay modules
        #
        \
        liferay/form.js,\
        liferay/form_placeholders.js,\
        liferay/icon.js,\
        liferay/menu.js,\
        liferay/notice.js,\
        liferay/poller.js


Specify the list of everything files (everything else not already in the list of barebone files).

Defaults:

    javascript.everything.files=\
        \
        #
        # YUI modules
        #
        \
        aui/async-queue/async-queue.js,\
        aui/base-build/base-build.js,\
        aui/cookie/cookie.js,\
        aui/event-touch/event-touch.js,\
        aui/overlay/overlay.js,\
        aui/querystring-stringify/querystring-stringify.js,\
        aui/widget-child/widget-child.js,\
        aui/widget-position-align/widget-position-align.js,\
        aui/widget-position-constrain/widget-position-constrain.js,\
        aui/widget-position/widget-position.js,\
        aui/widget-stack/widget-stack.js,\
        aui/widget-stdmod/widget-stdmod.js,\
        \
        #
        # Alloy modules
        #
        \
        aui/aui-aria/aui-aria.js,\
        aui/aui-io-plugin-deprecated/aui-io-plugin-deprecated.js,\
        aui/aui-io-request/aui-io-request.js,\
        aui/aui-loading-mask-deprecated/aui-loading-mask-deprecated.js,\
        aui/aui-overlay-base-deprecated/aui-overlay-base-deprecated.js,\
        aui/aui-overlay-context-deprecated/aui-overlay-context-deprecated.js,\
        aui/aui-overlay-manager-deprecated/aui-overlay-manager-deprecated.js,\
        aui/aui-overlay-mask-deprecated/aui-overlay-mask-deprecated.js,\
        aui/aui-parse-content/aui-parse-content.js,\
        \
        #
        # Liferay modules
        #
        \
        liferay/address.js,\
        liferay/dockbar.js,\
        liferay/layout_exporter.js,\
        liferay/session.js,\
        \
        #
        # Deprecated JS
        #
        \
        liferay/deprecated.js


Set this property to false to always load JavaScript files listed in the property "javascript.everything.files". Set this to true to sometimes load "javascript.barebone.files" and sometimes load "javascript.everything.files".

The default logic is coded in com.liferay.portal.events.ServicePreAction in such a way that unauthenticated users get the list of barebone JavaScript files whereas authenticated users get both the list of barebone JavaScript files and the list of everything JavaScript files.

Defaults:

    javascript.barebone.enabled=true


Set this property to true to load the packed version of files listed in the properties "javascript.barebone.files" or "javascript.everything.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.

Defaults:

    javascript.bundle.ids=\
        javascript.barebone.files,\
        javascript.everything.files


Define a bundle directory for each property listed in "javascript.bundle.ids".

Defaults:

    javascript.bundle.dir[javascript.barebone.files]=/html/js
    javascript.bundle.dir[javascript.everything.files]=/html/js


Define the bundle dependencies using any property listed in "javascript.bundle.ids".

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


Top of Page

SQL Data


Set the default SQL ids for common objects.

Defaults:

    sql.data.com.liferay.portal.model.Country.country.id=19
    sql.data.com.liferay.portal.model.Region.region.id=5
    sql.data.com.liferay.portal.model.ListType.account.address=10000
    sql.data.com.liferay.portal.model.ListType.account.email.address=10004
    sql.data.com.liferay.portal.model.ListType.contact.email.address=11003
    sql.data.com.liferay.portal.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


Top of Page

Weblogic


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


Top of Page

Company

Defaults:

    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.

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=AES

Examples:

    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=128

Examples:

    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=emailAddress

Examples:

    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 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 settings form.

Defaults:

    company.settings.form.configuration=general,authentication,users,mail-host-names,email-notifications,content-sharing
    company.settings.form.identification=addresses,phone-numbers,additional-email-addresses,websites
    company.settings.form.miscellaneous=display-settings,analytics,google-apps

Examples:

    company.settings.form.configuration=general,authentication,users,mail-host-names,email-notifications,content-sharing,recycle-bin


Input a list of sections that will be included as part of the company authentication settings form.

Defaults:

    company.settings.form.authentication=general,ldap,cas,facebook,ntlm,open-id,open-sso,siteminder


Top of Page

Users


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=false


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.

Defaults:

    users.screen.name.generator=com.liferay.portal.security.auth.DefaultScreenNameGenerator


Input a class name that implements com.liferay.portal.security.auth.ScreenNameValidator. This class will be called to validate user screen names.

Defaults:

    users.screen.name.validator=com.liferay.portal.security.auth.DefaultScreenNameValidator

Examples:

    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.

Defaults:

    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.

Defaults:

    users.email.address.validator=com.liferay.portal.security.auth.DefaultEmailAddressValidator

Examples:

    users.email.address.validator=com.liferay.portal.security.auth.LiberalEmailAddressValidator


Set this to true if you want the last name to be required when creating users.

Defaults:

    users.last.name.required=false


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.

Defaults:

    users.full.name.generator=com.liferay.portal.security.auth.DefaultFullNameGenerator

Examples:

    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.

Defaults:

    users.full.name.validator=com.liferay.portal.security.auth.DefaultFullNameValidator


Set the maximum file size for user portraits. 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".

Defaults:

    users.image.max.size=307200


Set the maximum user portrait height and width in pixels. A value of 0 indicates no restrictions on user portrait dimensions.

Defaults:

    users.image.max.height=120
    users.image.max.width=100


Set this to true to record last login information for a user.

Defaults:

    users.update.last.login=true


Input a list of sections that will be included as part of the user form when adding a user.

Defaults:

    users.form.add.main=details,organizations,personal-site
    users.form.add.identification=
    users.form.add.miscellaneous=


Input a list of sections that will be included as part of the user form when updating a user.

Defaults:

    users.form.update.main=details,password,organizations,sites,user-groups,roles,personal-site,categorization
    users.form.update.identification=addresses,phone-numbers,additional-email-addresses,websites,instant-messenger,social-network,sms,open-id
    users.form.update.miscellaneous=announcements,display-settings,comments,custom-fields


Input a list of sections that will be included as part of the user form when updating a user in the My Account portlet.

Defaults:

    users.form.my.account.main=details,password,organizations,sites,user-groups,roles,categorization
    users.form.my.account.identification=addresses,phone-numbers,additional-email-addresses,websites,instant-messenger,social-network,sms,open-id
    users.form.my.account.miscellaneous=announcements,display-settings,comments,custom-fields


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 false to disable the user indexer.

Defaults:

    users.indexer.enabled=true


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 property "users.indexer.enabled" is set to true.

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.portlet.messageboards.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


Top of Page

Groups and Roles


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


Specify the group id and the article id of the Journal article that will be displayed as the terms of use. The default text will be used if no Journal article is specified.

Defaults:

    terms.of.use.journal.article.group.id=
    terms.of.use.journal.article.id=


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.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


Top of Page

Organizations

Defaults:

    organizations.types=regular-organization,location

Defaults:

    organizations.rootable[regular-organization]=true
    organizations.children.types[regular-organization]=regular-organization,location
    organizations.country.enabled[regular-organization]=false
    organizations.country.required[regular-organization]=false

Defaults:

    organizations.rootable[location]=false
    organizations.country.enabled[location]=true
    organizations.country.required[location]=true

Examples:

    organizations.children.types[location]=


Input a list of sections that will be included as part of the organization form when adding an organization.

Defaults:

    organizations.form.add.main=details,organization-site
    organizations.form.add.identification=
    organizations.form.add.miscellaneous=


Input a list of sections that will be included as part of the organization form when updating an organization.

Defaults:

    organizations.form.update.main=details,organization-site,categorization
    organizations.form.update.identification=addresses,phone-numbers,additional-email-addresses,websites,services
    organizations.form.update.miscellaneous=comments,reminder-queries,custom-fields


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 false to disable the organization indexer.

Defaults:

    organizations.indexer.enabled=true


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 property "organizations.indexer.enabled" is set to true.

Defaults:

    organizations.search.with.index=true


Top of Page

User Groups


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 false to disable the user group indexer.

Defaults:

    user.groups.indexer.enabled=true


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 property "user.groups.indexer.enabled" is set to true.

Defaults:

    user.groups.search.with.index=true


Top of Page

Membership Policies


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.

Defaults:

    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 a new role is added or updated.

Defaults:

    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.

Defaults:

    membership.policy.sites=com.liferay.portal.security.membershippolicy.DefaultSiteMembershipPolicy

Examples:

    membership.policy.sites=com.liferay.portal.security.membershippolicy.DummySiteMembershipPolicy


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.

Defaults:

    membership.policy.user.groups=com.liferay.portal.security.membershippolicy.DummyUserGroupMembershipPolicy


Top of Page

Languages and Time Zones


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.html

Defaults:

    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,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_NL,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,en_US,fi_FI,fr_FR,de_DE,iw_IL,hu_HU,ja_JP,pt_BR,es_ES


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 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/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/Darwin,\
        Australia/Sydney,\
        Pacific/Guadalcanal,\
        Pacific/Auckland,\
        Pacific/Enderbury,\
        Pacific/Kiritimati


Top of Page

Look and Feel


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 theme id for regular themes.

Defaults:

    default.regular.theme.id=classic


Set the default color scheme id for regular themes.

Defaults:

    default.regular.color.scheme.id=01


Set the default theme id for wap themes. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Defaults:

    default.wap.theme.id=mobile


Set the default color scheme id for wap themes. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Defaults:

    default.wap.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


Top of Page

Request


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_


Top of Page

Session


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


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


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=HTTPS_INITIAL,LAST_PATH


Set this to true to test whether users have cookie support before allowing them to sign in. This test will always fail if "tck.url" is set to true because that property disables session cookies.

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


Top of Page

JAAS


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=userId

Examples:

    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


Top of Page

JNDI


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=


Top of Page

Security Manager


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.DefaultRejectChecker

Examples:

    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[geronimo]=\
        ${org.apache.geronimo.home.dir}/var/shared/-

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


Top of Page

LDAP


Set the values used to connect to an LDAP store.

Defaults:

    ldap.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
    ldap.referral=follow


Settings for com.liferay.portal.security.auth.LDAPAuth can be configured from the Admin portlet. It provides out-of-the-box support for the Apache Directory Server, Microsoft Active Directory Server, Novell eDirectory, and OpenLDAP. The default settings are for the Apache Directory Server.

The LDAPAuth class must be specified in the property "auth.pipeline.pre" to be executed.

Encryption is implemented by com.liferay.util.Encryptor.provider.class in system.properties.

Defaults:

    ldap.auth.enabled=false
    ldap.auth.required=false


Set the page size for directory servers that support paging. This value needs to be 1000 or less for the Microsoft Active Directory Server.

Defaults:

    ldap.page.size=1000


Set the number of values to return in each query to a multivalued attribute for directory servers that support range retrieval. The range size must be 1000 or less for Windows 2000 and 1500 or less for Windows Server 2003.

Defaults:

    ldap.range.size=1000


Set either bind or password-compare for the LDAP authentication method. Bind is preferred by most vendors so that you don't have to worry about encryption strategies.

Defaults:

    ldap.auth.method=bind

Examples:

    ldap.auth.method=password-compare


Set the password encryption to use for comparing passwords during import and to use for encrypting passwords during export. Comparing passwords during import will only be used when the property "ldap.auth.method" is set to password-compare. If the encryption is set to NONE, which is the default value, passwords are considered as plain text. The SHA-512 algorithm is currently unsupported.

Defaults:

    ldap.auth.password.encryption.algorithm=NONE

Examples:

    ldap.auth.password.encryption.algorithm=BCRYPT
    ldap.auth.password.encryption.algorithm=MD2
    ldap.auth.password.encryption.algorithm=MD5
    ldap.auth.password.encryption.algorithm=SHA
    ldap.auth.password.encryption.algorithm=SHA-256
    ldap.auth.password.encryption.algorithm=SHA-384
    ldap.auth.password.encryption.algorithm=SSHA
    ldap.auth.password.encryption.algorithm=UFC-CRYPT


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.

Defaults:

    ldap.attrs.transformer.impl=com.liferay.portal.security.ldap.DefaultAttributesTransformer


Specify the settings for LDAP connections. Any property prefixed with "ldap.connection." will be passed to the LDAP context as an environment variable.

To enable LDAP connection pooling, you have to set "ldap.connection.com.sun.jndi.ldap.connect.pool" to true and provide additional JVM system properties via the JVM start-up options via:

     java ... -Dcom.sun.jndi.ldap.connect.pool.maxsize=50 -Dcom.sun.jndi.ldap.connect.pool.timeout=10000

See the following link:

     http://docs.oracle.com/javase/6/docs/technotes/guides/jndi/jndi-ldap.html#POOL

Defaults:

    ldap.connection.com.sun.jndi.ldap.connect.pool=true
    ldap.connection.com.sun.jndi.ldap.connect.timeout=500
    ldap.connection.com.sun.jndi.ldap.read.timeout=15000


Settings for importing users and groups from LDAP to the portal.

Defaults:

    ldap.import.enabled=false
    ldap.import.on.startup=false
    ldap.import.interval=10


Set either user or group for import method. If set to user, the portal imports all users and the groups associated with those users. If set to group, the portal imports all groups and the users associated with those groups. This value should be set based on how your LDAP server stores group membership information.

Defaults:

    ldap.import.method=user

Examples:

    ldap.import.method=group


Set the lock expiration time for LDAP import. By default, the expiration time is 1 day.

Defaults:

    ldap.import.lock.expiration.time=86400000


If set to true, the group filter will be applied, but only to groups in the specified base DN. If set to false, the filter will not be applied and all groups that are associated with the imported users will be imported regardless of the base DN.

Defaults:

    ldap.import.group.search.filter.enabled=true


Specify whether group DN lookups will be cached during LDAP import and login. If set to true, this will speed up LDAP import and login, but updates to group attributes will not be recognized until the cache entry expires. The cache size and timeout may be configured in the configuration file specifed in the property "ehcache.single.vm.config.location".

Defaults:

    ldap.import.group.cache.enabled=true


Set this to true if the portal should automatically create a role per group imported from LDAP. The role will be assigned to the group so that users can automatically inherit that role when they are assigned to the group.

Defaults:

    ldap.import.create.role.per.group=false


Set these values to be a portion of the error message returned by the appropriate directory server to allow the portal to recognize messages from the LDAP server. The default values will work for Fedora DS.

Defaults:

    ldap.error.password.age=age
    ldap.error.password.expired=expired
    ldap.error.password.history=history
    ldap.error.password.not.changeable=not allowed to change
    ldap.error.password.syntax=syntax
    ldap.error.password.trivial=trivial
    ldap.error.user.lockout=retry limit


Set this to true to use LDAP's password policy instead of the portal password policy.

If set to true, it is possible that portal generated passwords will not match the LDAP policy. See the "passwords.regexptoolkit.*" properties for details on configuring RegExpToolkit in generating these passwords.

Defaults:

    ldap.password.policy.enabled=false


Set this to false when the LDAP user's password should not be imported to the Liferay user.

Defaults:

    ldap.import.user.password.enabled=true


Set this to true to autogenerate passwords for users imported from LDAP.

This property is only in use if the property "ldap.import.user.password.enabled" is set to false.

If an LDAP password policy is enabled (see the property "ldap.password.policy.enabled"), the password will be generated using RegExpToolkit. Set the "auth.pipeline.enable.liferay.check" property to false to disable password checking by the portal's internal authentication (which is not compatible with LDAP), and set the "auth.pipeline.pre" property to com.liferay.portal.security.auth.LDAPAuth so that password checking will be delegated to the LDAPAuth authenticator.

Note that enabling LDAP export, by setting the "ldap.export.enabled" property to true, may lead to overwriting the LDAP user's password with an autogenerated password.

Defaults:

    ldap.import.user.password.autogenerated=false


Set either screenName or plain text as the default password for the imported LDAP user. Setting the value to screenName will use the user's screen name as the password for the imported LDAP user. Setting the value to any other plain text value will use that value as the password for the imported LDAP user.

This property is only in use if the properties "ldap.import.user.password.enabled" and "ldap.import.user.password.autogenerated" are both set to false.

Defaults:

    ldap.import.user.password.default=test

Examples:

    ldap.import.user.password.default=screenName


Settings for exporting users from the portal to LDAP. This allows a user to modify his first name, last name, etc. in the portal and have that change pushed to the LDAP server. This setting is not used unless the property "ldap.auth.enabled" is set to true.

Defaults:

    ldap.export.enabled=false


Set this to true if groups and their associations should be exported from the portal to LDAP. This setting is not used unless the property "ldap.auth.enabled" is set to true.

Defaults:

    ldap.export.group.enabled=true


Set the values used to connect to an LDAP store.

The list of properties must end with a subsequent integer (0, 1, etc.) and it is assumed that the list has reached an end when the pattern or replacement is not set.

Examples:

    ldap.base.provider.url.0=ldap://localhost:10389
    ldap.base.dn.0=dc=example,dc=com
    ldap.security.principal.0=uid=admin,ou=system
    ldap.security.credentials.0=secret


Active Directory stores information about the user account as a series of bit fields in the UserAccountControl attribute.

If you want to prevent disabled accounts from logging into the portal you need to use a search filter similar to the following: (&(objectclass=person)(userprincipalname=@email_address@)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))

See the following links:

     http://support.microsoft.com/kb/305144/
     http://support.microsoft.com/?kbid=269181

Examples:

    ldap.auth.search.filter.0=(mail=@email_address@)


When importing and exporting users, the portal will use this mapping to connect LDAP user attributes and portal contact attributes.

See com.liferay.portal.model.ContactModel for a list of attributes.

Examples:

    ldap.contact.mappings.0=aimSn=\nbirthday=\nfacebookSn=\nicqSn=\njabberSn=\njobTitle=\nmsnSn=\nmySpaceSn=\nskypeSn=\nsmsSn=\ntwitterSn=\nymSn=


When importing and exporting users, the portal will use this mapping to connect LDAP user attributes and portal contact's custom attributes.

Examples:

    ldap.contact.custom.mappings.0=


When a user is exported to LDAP and the user does not exist, the user will be created with the following default object classes.

Examples:

    ldap.user.default.object.classes.0=top,person,inetOrgPerson,organizationalPerson


When importing and exporting users, the portal will use this mapping to connect LDAP user attributes and portal user attributes.

See com.liferay.portal.model.UserModel for a list of attributes.

Examples:

    ldap.user.mappings.0=emailAddress=mail\nfirstName=givenName\ngroup=groupMembership\njobTitle=title\nlastName=sn\npassword=userPassword\nscreenName=cn\nuuid=uuid\n


When importing and exporting users, the portal will use this mapping to connect LDAP user attributes and portal user's custom attributes.

Examples:

    ldap.user.custom.mappings.0=


Set the user attributes that are controlled from the portal. When adding or updating a user from LDAP, these attributes will be skipped.

Defaults:

    ldap.user.ignore.attributes=

Examples:

    ldap.user.ignore.attributes=aimSn,comments,facebookId,facebookSn,firstName,greeting,icqSn,jabberSn,jobTitle,languageId,lastName,middleName,msnSn,mySpaceSn,openId,prefixId,reminderQueryAnswer,reminderQueryQuestion,skypeSn,smsSn,suffixId,timeZoneId,twitterSn,ymSn


When a group is exported to LDAP and the group does not exist, the group will be created with the following default object classes.

Examples:

    ldap.group.default.object.classes.0=top,groupOfUniqueNames


When importing groups, the portal will use this mapping to connect LDAP group attributes and portal user group attributes.

Examples:

    ldap.group.mappings.0=description=description\ngroupName=cn\nuser=uniqueMember


Settings for importing users and groups from LDAP to the portal. These settings are not used unless the property "ldap.import.enabled" is set to true.

Examples:

    ldap.import.user.search.filter.0=(objectClass=inetOrgPerson)
    ldap.import.group.search.filter.0=(objectClass=groupOfUniqueNames)


New users and groups will be created at the specified DN. This will only be active if the property "ldap.auth.enabled" and "ldap.export.enabled" are set to true.

Examples:

    ldap.users.dn.0=ou=users,dc=example,dc=com
    ldap.groups.dn.0=ou=groups,dc=example,dc=com


Top of Page

Basic Authentication


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


Top of Page

CAS


Set this to true to enable CAS single sign on. NTLM will work only if LDAP authentication is also enabled and the authentication is made by screen name. If set to true, then the property "auto.login.hooks" must contain a reference to the class com.liferay.portal.security.auth.CASAutoLogin and the filter com.liferay.portal.servlet.filters.sso.cas.CASFilter must be referenced in web.xml.

Defaults:

    cas.auth.enabled=false


A user may be authenticated from CAS and not yet exist in the portal. Set this to true to automatically import users from LDAP if they do not exist in the portal.

Defaults:

    cas.import.from.ldap=false


Set the default values for the required CAS URLs. Set either "cas.server.name" or "cas.service.url". Setting "cas.server.name" allows deep linking. See LEP-4423.

Defaults:

    cas.login.url=https://localhost:8443/cas-web/login
    cas.logout.url=https://localhost:8443/cas-web/logout
    cas.server.name=localhost:8080
    cas.server.url=https://localhost:8443/cas-web
    cas.service.url=
    cas.no.such.user.redirect.url=http://localhost:8080

Examples:

    cas.service.url=http://localhost:8080/c/portal/login


Set this to true to log out the user from CAS when the portal session expires.

Defaults:

    cas.logout.on.session.expiration=false


Top of Page

Facebook Connect SSO

Defaults:

    facebook.connect.auth.enabled=false
    facebook.connect.app.id=
    facebook.connect.app.secret=
    facebook.connect.graph.url=https://graph.facebook.com
    facebook.connect.oauth.auth.url=https://graph.facebook.com/oauth/authorize
    facebook.connect.oauth.redirect.url=http://localhost:8080/c/login/facebook_connect_oauth
    facebook.connect.oauth.token.url=https://graph.facebook.com/oauth/access_token
    facebook.connect.verified.account.required=false


Top of Page

NTLM


Set this to true to enable NTLM single sign on. NTLM will work only if LDAP authentication is also enabled and the authentication is made by screen name. If set to true, then the property "auto.login.hooks" must contain a reference to the class com.liferay.portal.security.auth.NtlmAutoLogin and the filter com.liferay.portal.servlet.filters.sso.ntlm.NtlmFilter must be referenced in web.xml.

Negotiate flags are set according to the the client's requested capabilities and the server's ServerCapabilities.

See the following link:

     http://msdn.microsoft.com/en-us/library/cc717152%28v=PROT.10%29.aspx

Defaults:

    ntlm.auth.enabled=false
    ntlm.auth.domain.controller=127.0.0.1
    ntlm.auth.domain.controller.name=EXAMPLE
    ntlm.auth.domain=EXAMPLE
    ntlm.auth.negotiate.flags=0x600FFFFF
    ntlm.auth.service.account=LIFERAY$@EXAMPLE.COM
    ntlm.auth.service.password=test


See http://jcifs.samba.org/src/docs/ntlmhttpauth.html for more available properties.

Defaults:

    jcifs.netbios.cachePolicy=30
    jcifs.smb.client.soTimeout=35000


Top of Page

OpenID


Set this to true to enable OpenId authentication. If set to true, then the property "auto.login.hooks" must contain a reference to the class com.liferay.portal.security.auth.OpenIdAutoLogin.

Defaults:

    open.id.auth.enabled=true

Defaults:

    open.id.providers=yahoo

Defaults:

    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/last

Defaults:

    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


Top of Page

OpenSSO

Defaults:

    open.sso.auth.enabled=false


Set this to true if you want to import the users from LDAP after successful login through OpenSSO. The LDAP settings need to be configured properly in the LDAP section. If this is set to false, the users will be created from OpenSSO provided data.

Defaults:

    open.sso.ldap.import.enabled=false

Defaults:

    open.sso.login.url=http://openssohost.example.com:8080/opensso/UI/Login?goto=http://portalhost.example.com:8080/c/portal/login
    open.sso.logout.url=http://openssohost.example.com:8080/opensso/UI/Logout?goto=http://portalhost.example.com:8080/web/guest/home
    open.sso.service.url=http://openssohost.example.com:8080/opensso
    open.sso.screen.name.attr=uid
    open.sso.email.address.attr=mail
    open.sso.first.name.attr=givenname
    open.sso.last.name.attr=sn


Set this to true to log a user out of OpenSSO when the portal session expires.

Defaults:

    open.sso.logout.on.session.expiration=false


Top of Page

Request Header


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.auth.RequestHeaderAutoLogin to enable request header authentication.

Defaults:

    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.

Defaults:

    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


Top of Page

SiteMinder


Set this to true to enable CA SiteMinder single sign on. If set to true, then the property "auto.login.hooks" must contain a reference to the class com.liferay.portal.security.auth.SiteMinderAutoLogin and the "logout.events.post" must have a reference to com.liferay.portal.events.SiteMinderLogoutAction for logout to work.

Defaults:

    siteminder.auth.enabled=false


A user may be authenticated from SiteMinder and not yet exist in the portal. Set this to true to automatically import users from LDAP if they do not exist in the portal.

Defaults:

    siteminder.import.from.ldap=false


Set this to the name of the user header that SiteMinder passes to the portal.

Defaults:

    siteminder.user.header=SM_USER


Top of Page

Authentication Pipeline


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.

Defaults:

    auth.pipeline.pre=com.liferay.portal.security.auth.LDAPAuth

Examples:

    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.

Defaults:

    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=58


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=\
        /asset/get_categories,\
        \
        /blogs/find_entry,\
        /blogs/rss,\
        /blogs/trackback,\
        \
        /blogs_aggregator/rss,\
        \
        /bookmarks/find_entry,\
        /bookmarks/find_folder,\
        /bookmarks/open_entry,\
        \
        /document_library/find_file_entry,\
        /document_library/find_folder,\
        /document_library/get_file,\
        \
        /flags/edit_flag,\
        \
        /iframe/proxy,\
        \
        /image_gallery_display/find_folder,\
        /image_gallery_display/find_image,\
        \
        /journal/find_folder,\
        /journal/get_article,\
        /journal/get_articles,\
        /journal/get_latest_article_content,\
        /journal/rss,\
        /journal/view_article_content,\
        /journal_articles/view_article_content,\
        \
        /layouts_admin/robots,\
        /layouts_admin/sitemap,\
        \
        /login/facebook_connect_oauth,\
        \
        /message_boards/find_category,\
        /message_boards/find_message,\
        /message_boards/find_thread,\
        /message_boards/get_message_attachment,\
        /message_boards/rss,\
        \
        /my_sites/view,\
        \
        /polls/view_chart,\
        \
        /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/session_click,\
        /portal/session_tree_js_click,\
        /portal/status,\
        \
        /search/open_search,\
        /search/open_search_description.xml,\
        \
        /shopping/notify,\
        \
        /wiki/find_page,\
        /wiki/get_page_attachment,\
        /wiki/rss


Top of Page

Authentication Verifier


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.

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.BasicAuthHeaderAutoLogin.hosts.allowed" is passed to BasicAuthHeaderAutoLogin 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".

Defaults:

    auth.verifier.pipeline=com.liferay.portal.security.auth.BasicAuthHeaderAutoLogin,com.liferay.portal.security.auth.DigestAuthenticationAuthVerifier,com.liferay.portal.security.auth.ParameterAutoLogin,com.liferay.portal.security.auth.PortalSessionAuthVerifier,com.liferay.portal.security.auth.TunnelingServletAuthVerifier


BasicAuthHeaderAutoLogin

Defaults:

    auth.verifier.BasicAuthHeaderAutoLogin.hosts.allowed=
    auth.verifier.BasicAuthHeaderAutoLogin.urls.includes=/api/*,/xmlrpc/*
    auth.verifier.BasicAuthHeaderAutoLogin.urls.excludes=/api/liferay/do


DigestAuthenticationAuthVerifier

Defaults:

    auth.verifier.DigestAuthenticationAuthVerifier.hosts.allowed=
    auth.verifier.DigestAuthenticationAuthVerifier.urls.includes=N/A


ParameterAutoLogin

Defaults:

    auth.verifier.ParameterAutoLogin.hosts.allowed=
    auth.verifier.ParameterAutoLogin.urls.includes=N/A


PortalSessionAuthVerifier

Defaults:

    auth.verifier.PortalSessionAuthVerifier.hosts.allowed=
    auth.verifier.PortalSessionAuthVerifier.urls.includes=\
        /api/json/*,\
        /api/jsonws/*,\
        /c/portal/json_service/*


TunnelingServletAuthVerifier

Defaults:

    auth.verifier.TunnelingServletAuthVerifier.hosts.allowed=255.255.255.255
    auth.verifier.TunnelingServletAuthVerifier.urls.includes=/api/liferay/do


Top of Page

Authentication Token


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 http://issues.liferay.com/browse/LPS-8399 for more information.

Defaults:

    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,\
        \
        /asset_publisher/edit_article_discussion,\
        /asset_publisher/edit_entry_discussion,\
        /asset_publisher/edit_file_entry_discussion,\
        /asset_publisher/edit_page_discussion,\
        \
        /blogs/edit_entry,\
        /blogs/edit_entry_discussion,\
        /blogs/rss,\
        /blogs/trackback,\
        \
        /blogs_aggregator/edit_entry,\
        /blogs_aggregator/edit_entry_discussion,\
        /blogs_aggregator/rss,\
        \
        /document_library/edit_file_entry,\
        /document_library/edit_file_entry_discussion,\
        \
        /document_library_display/edit_file_entry,\
        /document_library_display/edit_file_entry_discussion,\
        \
        /journal/edit_article_discussion,\
        /journal/rss,\
        \
        /journal_content/edit_article_discussion,\
        \
        /image_gallery_display/edit_file_entry,\
        /image_gallery_display/edit_image,\
        \
        /login/create_account,\
        /login/login,\
        \
        /message_boards/edit_discussion,\
        /message_boards/edit_message,\
        /message_boards/rss,\
        \
        /my_sites/view,\
        \
        /page_comments/edit_page_discussion,\
        \
        /shopping/edit_order_discussion,\
        \
        /software_catalog/edit_product_entry_discussion,\
        \
        /wiki/edit_page,\
        /wiki/edit_page_attachment,\
        /wiki/edit_page_discussion,\
        /wiki/get_page_attachment,\
        /wiki/rss,\
        \
        /wiki_admin/edit_page_attachment,\
        \
        /wiki_display/edit_page_attachment,\
        /wiki_display/edit_page_discussion


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=82


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=


Top of Page

Auto Login


Input a list of comma delimited class names that implement com.liferay.portal.security.auth.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.auth.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.auth.CASAutoLogin for an example of how to configure the portal with Yale's SSO server.

Defaults:

    auto.login.hooks=com.liferay.portal.security.auth.CASAutoLogin,com.liferay.portal.security.auth.FacebookAutoLogin,com.liferay.portal.security.auth.NtlmAutoLogin,com.liferay.portal.security.auth.OpenIdAutoLogin,com.liferay.portal.security.auth.OpenSSOAutoLogin,com.liferay.portal.security.auth.RememberMeAutoLogin,com.liferay.portal.security.auth.SiteMinderAutoLogin


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=


Top of Page

SSO with MAC (Message Authentication Code)


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:

     http://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.

Defaults:

    auth.mac.shared.key=


Top of Page

Passwords


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/128000

Examples:

    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=base64

Examples:

    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.

Defaults:

    passwords.toolkit=com.liferay.portal.security.pwd.PasswordPolicyToolkit

Examples:

    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=iheartliferay

Examples:

    passwords.passwordpolicytoolkit.generator=static


Set the character sets for password validation.

Defaults:

    passwords.passwordpolicytoolkit.charset.lowercase=abcdefghjkmnpqrstuvwxyz
    passwords.passwordpolicytoolkit.charset.numbers=0123456789
    passwords.passwordpolicytoolkit.charset.symbols=_.!@$*=-?
    passwords.passwordpolicytoolkit.charset.uppercase=ABCDEFGHJKLMNPQRSTUVWXYZ


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=8

Examples:

    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


Top of Page

Permissions


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.AdvancedPermissionChecker

Examples:

    permissions.checker=com.liferay.portal.security.permission.SimplePermissionChecker


Set the default permissions list filter class. This class must implement com.liferay.portal.kernel.security.permission.PermissionsListFilter. This is used if you want to filter the list of permissions before it is actually persisted. For example, if you want to make sure that all users who create objects never have the UPDATE action, then you can filter that list and remove any permissions that have the UPDATE action before it is persisted.

Defaults:

    permissions.list.filter=com.liferay.portal.security.permission.PermissionsListFilterImpl


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


The permissions 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:

    permissions.thread.local.cache.max.size=100


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.threshhold=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 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


Top of Page

Captcha


Set the maximum number of captcha checks per portlet session. Set this value to 0 to always check. Set this value to a number less than 0 to never check. Unauthenticated users will always be checked on every request if captcha checks is enabled.

Defaults:

    captcha.max.challenges=1


Set whether or not to use captcha checks for the following actions.

Defaults:

    captcha.check.portal.create_account=true
    captcha.check.portal.send_password=true
    captcha.check.portlet.message_boards.edit_category=false
    captcha.check.portlet.message_boards.edit_message=false


Set the engine used to generate captchas. reCAPTCHA uses an external service that must be configured independently but provides an audible alternative which makes the captcha accessible to the visually impaired. See https://www.google.com/recaptcha/admin/create for details.

Defaults:

    captcha.engine.impl=com.liferay.portal.captcha.simplecaptcha.SimpleCaptchaImpl

Examples:

    captcha.engine.impl=com.liferay.portal.captcha.recaptcha.ReCaptchaImpl


reCAPTCHA

Defaults:

    captcha.engine.recaptcha.key.private=
    captcha.engine.recaptcha.key.public=
    captcha.engine.recaptcha.url.script=http://www.google.com/recaptcha/api/challenge?k=
    captcha.engine.recaptcha.url.noscript=http://www.google.com/recaptcha/api/noscript?k=
    captcha.engine.recaptcha.url.verify=http://www.google.com/recaptcha/api/verify


SimpleCaptcha


Set the height and width for captcha images generated by SimpleCaptcha.

Defaults:

    captcha.engine.simplecaptcha.height=50
    captcha.engine.simplecaptcha.width=150


Input a list of comma delimited class names that implement nl.captcha.backgrounds.BackgroundProducer. These classes will be randomly used by SimpleCaptcha to generate a background for a captcha image.

Defaults:

    captcha.engine.simplecaptcha.background.producers=nl.captcha.backgrounds.FlatColorBackgroundProducer,nl.captcha.backgrounds.GradiatedBackgroundProducer,nl.captcha.backgrounds.SquigglesBackgroundProducer,nl.captcha.backgrounds.TransparentBackgroundProducer


Input a list of comma delimited class names that implement nl.captcha.gimpy.GimpyRenderer. These classes will be randomly used by SimpleCaptcha to gimp a captcha image.

Defaults:

    captcha.engine.simplecaptcha.gimpy.renderers=nl.captcha.gimpy.BlockGimpyRenderer,nl.captcha.gimpy.DropShadowGimpyRenderer,nl.captcha.gimpy.FishEyeGimpyRenderer,nl.captcha.gimpy.RippleGimpyRenderer,nl.captcha.gimpy.ShearGimpyRenderer

Examples:

    captcha.engine.simplecaptcha.gimpy.renderers=nl.captcha.gimpy.RippleGimpyRenderer


Input a list of comma delimited class names that implement nl.captcha.noise.NoiseProducer. These classes will be randomly used by SimpleCaptcha to add noise to a captcha image.

Defaults:

    captcha.engine.simplecaptcha.noise.producers=nl.captcha.noise.CurvedLineNoiseProducer,nl.captcha.noise.StraightLineNoiseProducer

Examples:

    captcha.engine.simplecaptcha.noise.producers=nl.captcha.noise.CurvedLineNoiseProducer


Input a list of comma delimited class names that implement nl.captcha.text.producer.TextProducer. These classes will be randomly used by SimpleCaptcha to generate text for a captcha image.

Defaults:

    captcha.engine.simplecaptcha.text.producers=com.liferay.portal.captcha.simplecaptcha.PinNumberTextProducer

Examples:

    captcha.engine.simplecaptcha.text.producers=com.liferay.portal.captcha.simplecaptcha.DictionaryWordTextProducer,com.liferay.portal.captcha.simplecaptcha.PinNumberTextProducer,nl.captcha.text.producer.DefaultTextProducer,nl.captcha.text.producer.FiveLetterFirstNameTextProducer


Input a list of comma delimited class names that implement nl.captcha.text.renderer .WordRenderer. These classes will be randomly used by SimpleCaptcha to render text for a captcha image.

Defaults:

    captcha.engine.simplecaptcha.word.renderers=nl.captcha.text.renderer.DefaultWordRenderer

Examples:

    captcha.engine.simplecaptcha.word.renderers=nl.captcha.text.renderer.ColoredEdgesWordRenderer,nl.captcha.text.renderer.DefaultWordRenderer


Top of Page

Startup Events


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.AddDefaultDataAction,com.liferay.portal.events.AppStartupAction,com.liferay.portal.events.ChannelHubAppStartupAction

Examples:

    application.startup.events=com.liferay.portal.events.AppStartupAction,com.liferay.portal.events.SampleAppStartupAction


Top of Page

Shutdown Events


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 http://issues.liferay.com/browse/LEP-2048 for more information.

Defaults:

    shutdown.programmatically.exit=false


Top of Page

Portal Events


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.DeviceServicePreAction,com.liferay.portal.events.ThemeServicePreAction
    servlet.service.events.pre.error.page=/common/error.jsp
    servlet.service.events.post=com.liferay.portal.events.ServicePostAction

Examples:

    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.DefaultLogoutPageAction,com.liferay.portal.events.SiteMinderLogoutAction

Examples:

    logout.events.post=com.liferay.portal.events.LogoutPostAction,com.liferay.portal.events.GarbageCollectorAction


Top of Page

Default Landing Page


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


Top of Page

Default Logout Page


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


Top of Page

Default Guest Public Layouts


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=2_columns_ii


Set the portlet ids for the columns specified in the layout template.

Defaults:

    default.guest.public.layout.column-1=58
    default.guest.public.layout.column-2=47
    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


Set the regular color scheme id for the public layout.

Examples:

    default.guest.public.layout.regular.color.scheme.id=01


Set the wap theme id for the public layout. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Examples:

    default.guest.public.layout.wap.theme.id=mobile


Set the wap color scheme for the public layout. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Examples:

    default.guest.public.layout.wap.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


Top of Page

Default User Private Layouts


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=2_columns_ii


Set the portlet ids for the columns specified in the layout template.

Defaults:

    default.user.private.layout.column-1=82,23,11
    default.user.private.layout.column-2=29
    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.

Examples:

    default.user.private.layout.regular.theme.id=classic


Set the regular color scheme id for the private layout.

Examples:

    default.user.private.layout.regular.color.scheme.id=01


Set the wap theme id for the private layout. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Examples:

    default.user.private.layout.wap.theme.id=mobile


Set the wap color scheme for the private layout. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Examples:

    default.user.private.layout.wap.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


Top of Page

Default User Public Layouts


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=2_columns_ii


Set the portlet ids for the columns specified in the layout template.

Defaults:

    default.user.public.layout.column-1=82,3
    default.user.public.layout.column-2=33
    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.

Examples:

    default.user.public.layout.regular.theme.id=classic


Set the regular color scheme id for the public layout.

Examples:

    default.user.public.layout.regular.color.scheme.id=01


Set the wap theme id for the public layout. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Examples:

    default.user.public.layout.wap.theme.id=mobile


Set the wap color scheme for the public layout. This property is not used unless the property "mobile.device.styling.wap.enabled" is set to true.

This property is deprecated and only provided for backwards compatibility.

Examples:

    default.user.public.layout.wap.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


Top of Page

Default Admin


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


Top of Page

Layouts


Set the list of layout types. The display text of each of the layout types is set in content/Language.properties and prefixed with "layout.types.".

You can create new layout types and specify custom settings for each layout type. End users input dynamic values as designed in the edit page. End users see the layout as designed in the view page. The generated URL can reference properties set in the edit page. Parentable layouts can contain child layouts. You can also specify a comma delimited list of configuration actions that will be called for your layout when it is updated or deleted.

Defaults:

    layout.types=portlet,panel,embedded,url,link_to_layout


Input a list of sections that will be included as part of the layout form when adding a layout.

Defaults:

    layout.form.add=details


Input a list of sections that will be included as part of the layout form when updating a layout.

Defaults:

    layout.form.update=details,seo,look-and-feel,javascript,custom-fields,advanced,mobile-device-rules


Input a list of sections that will be included as part of the layout set form when updating a layout set.

Defaults:

    layout.set.form.update=look-and-feel,logo,javascript,advanced,mobile-device-rules


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=true

Examples:

    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 control_panel layouts.

Defaults:

    layout.edit.page[control_panel]=/portal/layout/edit/control_panel.jsp
    layout.view.page[control_panel]=/portal/layout/view/control_panel.jsp
    layout.url[control_panel]=${liferay:mainPath}/portal/layout?p_l_id=${liferay:plid}&p_v_l_s_g_id=${liferay:pvlsgid}
    layout.url.friendliable[control_panel]=true
    layout.parentable[control_panel]=true
    layout.first.pageable[control_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]=true

Examples:

    layout.configuration.action.update[embedded]=
    layout.configuration.action.delete[embedded]=


Settings for article layouts.

Defaults:

    layout.edit.page[article]=/portal/layout/edit/article.jsp
    layout.view.page[article]=/portal/layout/view/article.jsp
    layout.url.friendliable[article]=true
    layout.url[article]=${liferay:mainPath}/portal/layout?p_l_id=${liferay:plid}&p_v_l_s_g_id=${liferay:pvlsgid}
    layout.parentable[article]=false
    layout.sitemapable[article]=true
    layout.first.pageable[article]=true
    layout.configuration.action.update[article]=com.liferay.portal.model.LayoutTypeArticleConfigurationUpdateAction
    layout.configuration.action.delete[article]=com.liferay.portal.model.LayoutTypeArticleConfigurationDeleteAction


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]=false

Examples:

    layout.configuration.action.update[url]=
    layout.configuration.action.delete[url]=


Settings for page layouts.

Defaults:

    layout.edit.page[link_to_layout]=/portal/layout/edit/link_to_layout.jsp
    layout.view.page[link_to_layout]=
    layout.url[link_to_layout]=${liferay:mainPath}/portal/layout?p_v_l_s_g_id=${liferay:pvlsgid}&groupId=${liferay:groupId}&privateLayout=${privateLayout}&layoutId=${linkToLayoutId}
    layout.url.friendliable[link_to_layout]=true
    layout.parentable[link_to_layout]=true
    layout.sitemapable[link_to_layout]=false
    layout.first.pageable[link_to_layout]=false

Examples:

    layout.configuration.action.update[link_to_layout]=
    layout.configuration.action.delete[link_to_layout]=


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]=3,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]=3,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 /html/portal/layout/view/common.jspf 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 that does not exist. Leave it blank to display nothing.

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,\
        software_catalog*,\
        tunnel-web,\
        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.

Defaults:

    layout.parallel.render.enable=true


Set this to false to disable timing out the core thread that is used for server side parallel rendering. This means that after launching, the thread pool will keep the core thread alive until it is shut down. Set this to true to allow the core thread to time out like any other thread. This is conceptually the same as setting the core thread count to 0 since it removes the core thread's special privilege of timing out.

Defaults:

    layout.parallel.render.thread.pool.allow.core.thread.timeout=true


Set the number of core threads used for server side parallel rendering.

Defaults:

    layout.parallel.render.thread.pool.core.thread.count=0


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


Top of Page

Layout Prototypes


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 occured and some other process should be able to attempt to take it over.

Defaults:

    layout.prototype.merge.lock.max.time=300


Top of Page

Layout Set Prototypes


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 occured and some other process should be able to attempt to take it over.

Defaults:

    layout.set.prototype.merge.lock.max.time=600


Top of Page

Portlet URL


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 http://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


Top of Page

Preferences


Set this to true to validate portlet preferences on startup.

Defaults:

    preference.validate.on.startup=false


Top of Page

Redirect


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=ip

Examples:

    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.

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


Top of Page

Struts


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


Top of Page

Images


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


Top of Page

Editors


You can configure individual JSP pages to use a specific implementation of the available WYSIWYG editors: bbcode, ckeditor, ckeditor_bbcode, ckeditor_creole, fckeditor, simple, tinymce, or tinymce_simple.

Defaults:

    editor.wysiwyg.default=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.announcements.edit_entry.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.asset_publisher.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.blogs.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.blogs.edit_entry.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.bookmarks.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.document_library.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.invitation.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.journal.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.journal.edit_article_content.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.journal.edit_article_content_xsd_el.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.login.configuration.jsp=ckeditor
    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.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.message_boards.edit_message.bb_code.jsp=ckeditor_bbcode
    editor.wysiwyg.portal-web.docroot.html.portlet.message_boards.edit_message.html.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.portal_settings.email_notifications.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.shopping.configuration.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.wiki.edit.creole.jsp=ckeditor_creole
    editor.wysiwyg.portal-web.docroot.html.portlet.wiki.edit.html.jsp=ckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.wiki.edit.mediawiki.jsp=simple


Top of Page

Fields


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.model.Contact.male=true
    field.enable.com.liferay.portal.model.Contact.birthday=true
    field.enable.com.liferay.portal.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.

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]=


Top of Page

Mime Types


Input a list of comma delimited extensions for which the content disposition header has to be set to "inline".

Defaults:

    mime.types.content.disposition.inline=flv,gif,jpg,pdf,png,swf,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, software catalog screenshot, or user portrait.

Defaults:

    mime.types.web.images=image/gif,image/jpeg,image/pjpeg,image/png,image/x-png


Top of Page

Amazon


Enter an Amazon access key id and an Amazon associate tag. This is made available only for personal use. Please see the Amazon license at http://www.amazon.com for more information.

Examples:

    amazon.access.key.id=
    amazon.associate.tag=
    amazon.secret.access.key=


Top of Page

Browser Cache


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=false


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=false


Top of Page

Browser Compatibility


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


Top of Page

Browser Launcher


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


Top of Page

Control Panel


Enter the the portlet id used in the Control Panel Home.

Defaults:

    control.panel.home.portlet.id=190


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=controlpanel


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.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.

Defaults:

    control.panel.default.entry.class=com.liferay.portlet.DefaultControlPanelEntry


Top of Page

Instant Messenger


Set the AIM login and password by which the system will use AIM to communicate with users.

Defaults:

    aim.login=
    aim.password=


Due to a bug in JOscarLib 0.3b1, you must set the full path to the ICQ jar.

See the following posts:

     http://sourceforge.net/projects/ooimlib/forums/forum/166562/topic/843299?message=1972697
     http://sourceforge.net/projects/ooimlib/forums/forum/166562/topic/843299?message=1990487

Defaults:

    icq.jar=C:/Java/orion-2.0.7/lib/icq.jar


Set the ICQ login and password by which the system will use ICQ to communicate with users.

Defaults:

    icq.login=
    icq.password=


Set the MSN login and password by which the system will use MSN to communicate with users.

Defaults:

    msn.login=
    msn.password=


Set the YM login and password by which the system will use YM to communicate with users.

Defaults:

    ym.login=
    ym.password=


Top of Page

Lucene Search


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 this to true to enable highlighting of search results.

Defaults:

    index.search.highlight.enabled=true


Set the fragment size returned from the search result highlighter

Defaults:

    index.search.highlight.fragment.size=80


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.

Defaults:

    index.search.query.indexing.enabled=true


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/lucene/dependencies/querysuggestions/en_US.txt
    index.search.query.suggestion.dictionary[es_ES]=com/liferay/portal/search/lucene/dependencies/querysuggestions/es_ES.txt
    index.search.query.suggestion.dictionary[en_US][123456]=com/liferay/portal/search/lucene/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.

Defaults:

    index.search.query.suggestion.enabled=true


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/lucene/dependencies/spellchecker/en_US.txt
    index.search.spell.checker.dictionary[es_ES]=com/liferay/portal/search/lucene/dependencies/spellchecker/es_ES.txt

Examples:

    index.search.spell.checker.dictionary[en_US][123456]=com/liferay/portal/search/lucene/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


Set the search engine for each indexer implementation by assigning the search engine id. The search engine ids are defined in the spring configuration files. The default engine id is SYSTEM_ENGINE and will be used as the default for all indexers unless configured to use something else.

Examples:

    index.search.engine.id[com.liferay.portlet.journal.util.JournalArticleIndexerIndexer]=SYSTEM_ENGINE


Set the limit for results used when performing index searches that are subsequently filtered by permissions.

Defaults:

    index.filter.search.limit=5000


Set this to true if you want to avoid any writes to the index. This is useful in some clustering environments where there is a shared index and only one node of the cluster updates it.

Defaults:

    index.read.only=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


Designate whether Lucene stores indexes in a file system or in RAM.

Defaults:

    lucene.store.type=file

Examples:

    lucene.store.type=ram


When using file store, turning this flag on will tell Lucene to use MMapDirectory rather than using the default selection (SimpleFSDirectory for Windows and NIOFSDirectory for Linux). It only makes sense to use MMapDirectory for 64-bit JVM with a lot of memory. On a 32-bit JVM, if the index files are huge, this could easily lead to an out of memory for non-heap memory.

Defaults:

    lucene.store.type.file.force.mmap=false


Set the directory where Lucene indexes are stored. This is only referenced if Lucene stores indexes in the file system.

Defaults:

    lucene.dir=${liferay.home}/data/lucene/


Input a class name that extends com.liferay.portal.search.lucene.LuceneFileExtractor. This class is called by Lucene to extract text from complex files so that they can be properly indexed.

Defaults:

    lucene.file.extractor=com.liferay.portal.search.lucene.LuceneFileExtractor


The file extractor can sometimes return text that is not valid for Lucene. This property expects a regular expression. Any character that does not match the regular expression will be replaced with a blank space. Set an empty regular expression to disable this feature.

Defaults:

    lucene.file.extractor.regexp.strip=

Examples:

    lucene.file.extractor.regexp.strip=[\\d\\w]


Set how often index updates will be committed. Set the batch size to configure how many consecutive updates will trigger a commit. If the value is 0, then the index will be committed on every update. Set the time interval in milliseconds to configure how often to commit the index. The time interval is not read unless the batch size is greater than 0 because the time interval works in conjunction with the batch size to guarantee that the index is committed after a specified time interval. Set the time interval to 0 to disable committing the index by a time interval.

Defaults:

    lucene.commit.batch.size=0
    lucene.commit.time.interval=0


Set the maximum number of tokens generated by the analyzer while indexing.

Defaults:

    lucene.analyzer.max.tokens=10000


Set Lucene's buffer size in megabytes. Higher numbers mean indexing goes faster but uses more memory.

Defaults:

    lucene.buffer.size=16


Set Lucene's merge factor. Higher numbers mean indexing goes faster but uses more memory. The default value from Lucene is 10. This should never be set to a number lower than 2.

Defaults:

    lucene.merge.factor=10


Input a class name that extends org.apache.lucene.index.MergePolicy. Lucene uses this class to determine the sequence of primitive merge operations. Note that the property "lucene.merge.factor" is not only used by LogDocMergePolicy.

Defaults:

    lucene.merge.policy=org.apache.lucene.index.LogDocMergePolicy

Examples:

    lucene.merge.policy=org.apache.lucene.index.LogByteSizeMergePolicy
    lucene.merge.policy=org.apache.lucene.index.NoMergePolicy
    lucene.merge.policy=org.apache.lucene.index.TieredMergePolicy
    lucene.merge.policy=org.apache.lucene.index.UpgradeIndexMergePolicy


Input a class name that extends org.apache.lucene.index.MergeScheduler. Lucene uses this class to execute merges based on the policy set in the property "lucene.merge.policy".

Defaults:

    lucene.merge.scheduler=org.apache.lucene.index.ConcurrentMergeScheduler

Examples:

    lucene.merge.scheduler=org.apache.lucene.index.NoMergeScheduler
    lucene.merge.scheduler=org.apache.lucene.index.SerialMergeScheduler


Set this to true if you want the portal to replicate an index write across all members of the cluster. This is useful in some clustered environments where you wish each server instance to have its own copy of the Lucene search index. This is only relevant when using the default Lucene indexing engine.

Defaults:

    lucene.replicate.write=false


Specify the Lucene cluster index loading synchronization timeout in milliseconds.

Defaults:

    lucene.cluster.index.loading.sync.timeout=60000


Top of Page

Multi Value Map


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


Top of Page

Setup Wizard


Set a comma delimited list of supported databases.

Defaults:

    setup.database.types=db2,derby,hypersonic,ingres,mysql,oracle,postgresql,sqlserver,sybase

Defaults:

    setup.database.driverClassName[db2]=com.ibm.db2.jcc.DB2Driver
    setup.database.driverClassName[derby]=org.apache.derby.jdbc.EmbeddedDriver
    setup.database.driverClassName[hypersonic]=org.hsqldb.jdbcDriver
    setup.database.driverClassName[ingres]=com.ingres.jdbc.IngresDriver
    setup.database.driverClassName[mysql]=com.mysql.jdbc.Driver
    setup.database.driverClassName[oracle]=oracle.jdbc.driver.OracleDriver
    setup.database.driverClassName[postgresql]=org.postgresql.Driver
    setup.database.driverClassName[sqlserver]=net.sourceforge.jtds.jdbc.Driver
    setup.database.driverClassName[sybase]=net.sourceforge.jtds.jdbc.Driver

Defaults:

    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.jar

Defaults:

    setup.database.url[db2]=jdbc:db2://localhost:50000/lportal:deferPrepares=false;fullyMaterializeInputStreams=true;fullyMaterializeLobData=true;progresssiveLocators=2;progressiveStreaming=2;
    setup.database.url[derby]=jdbc:derby:lportal
    setup.database.url[hypersonic]=jdbc:hsqldb:${liferay.home}/data/hsql/lportal
    setup.database.url[ingres]=jdbc:ingres://localhost:II7/lportal
    setup.database.url[mysql]=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
    setup.database.url[oracle]=jdbc:oracle:thin:@localhost:1521:xe
    setup.database.url[postgresql]=jdbc:postgresql://localhost:5432/lportal
    setup.database.url[sqlserver]=jdbc:jtds:sqlserver://localhost/lportal
    setup.database.url[sybase]=jdbc:jtds:sybase://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


Top of Page

SourceForge

Defaults:

    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


Top of Page

Value Object


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.model.ModelListener. These classes are pooled and reused and must be thread safe.

Defaults:

    value.object.listener.com.liferay.portal.model.Contact=com.liferay.portal.model.ContactListener
    value.object.listener.com.liferay.portal.model.Layout=com.liferay.portal.model.LayoutListener,com.liferay.portal.service.impl.LayoutSetPrototypeLayoutListener
    value.object.listener.com.liferay.portal.model.LayoutSet=com.liferay.portal.model.LayoutSetListener,com.liferay.portal.service.impl.LayoutSetPrototypeLayoutSetListener
    value.object.listener.com.liferay.portal.model.PortletPreferences=com.liferay.portal.model.PortletPreferencesListener
    value.object.listener.com.liferay.portal.model.User=com.liferay.portal.model.UserListener
    value.object.listener.com.liferay.portal.model.UserGroup=com.liferay.portal.model.UserGroupListener


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.model.Layout=true
    value.object.entity.cache.enabled.com.liferay.portal.model.User=true


Set this to true to enable finder level caching.

Defaults:

    value.object.finder.cache.enabled=true


Set this to true to configure finder level caching to block. See the property "ehcache.blocking.cache.allowed" for more information.

Defaults:

    value.object.finder.blocking.cache=true


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.model.Layout=true
    value.object.finder.cache.enabled.com.liferay.portal.model.User=true
    value.object.finder.cache.enabled.Users_Roles=true


Top of Page

Audit Message

Defaults:

    audit.message.com.liferay.portal.model.Layout.VIEW=false

Defaults:

    audit.message.scheduler.job=false


Top of Page

Buffered Increment


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 is not recommended. As an alternative to disabling it, consider disabling its standby logic by setting the "buffered.increment.standby.queue.threshold" and "buffered.increment.standby.time.upper.limit" properties to 0. If disabling buffered increment logic is truly desired, set this property to false, but also remove the BufferedIncrementAdvice bean from base-spring.xml, so annotated service methods are not skipped.

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 disptach 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 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


Top of Page

Cache


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


Top of Page

Cluster Link


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 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(timeout=2000;num_initial_members=20;break_on_coord_rsp=true):MERGE3(min_interval=10000;max_interval=30000):FD_SOCK:FD_ALL:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK2(xmit_interval=1000;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):UNICAST2(max_bytes=10M;xmit_table_num_rows=100;xmit_table_msgs_per_row=2000;xmit_table_max_compaction_time=60000;max_msg_batch_size=500):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=4M):pbcast.GMS(join_timeout=3000;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=61440):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(timeout=2000;num_initial_members=20;break_on_coord_rsp=true):MERGE3(min_interval=10000;max_interval=30000):FD_SOCK:FD_ALL:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK2(xmit_interval=1000;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):UNICAST2(max_bytes=10M;xmit_table_num_rows=100;xmit_table_msgs_per_row=2000;xmit_table_max_compaction_time=60000;max_msg_batch_size=500):pbcast.STABLE(stability_delay=1000;desired_avg_gossip=50000;max_bytes=4M):pbcast.GMS(join_timeout=3000;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=61440):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 have higher priority than individual properties given to each channel. That means system properties will override individual properties.

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


Top of Page

Cluster Executor


Set this to true to enable the cluster executor debugging. This will attach a debugging listener which will log every cluster event it receives.

Defaults:

    cluster.executor.debug.enabled=false


Top of Page

Clusterable Advice


Set the clusterable advice call master timeout in seconds.

Defaults:

    clusterable.advice.call.master.timeout=10


Top of Page

Combo


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


Top of Page

Content Delivery Network


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


Top of Page

Cookie


HTTP only cookies are not supposed to be exposed to client-side scripting code, and may therefore help mitigate certain kinds of cross-site scripting attacks. Input a list of comma delimited cookie names that are not HTTP only.

Defaults:

    cookie.http.only.names.excludes=


Top of Page

Counter


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.model.Layout" or anything that starts with "com.liferay.portal.model.Layout#" will only increment by 1.

Defaults:

    counter.increment.com.liferay.portal.model.Layout=1


Top of Page

Direct Servlet Context


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


Top of Page

ETag


The ETag filter needs to process the response in order to caculate 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


Top of Page

FreeMarker Engine

Defaults:

    freemarker.engine.localized.lookup=false


Set this to 0 to load template source every time. Set this to a number less than 0 to load templates once and cache it indefinitely. Set this to a number greater than 0 to load templates and cache it for the period of time specified by that number in milliseconds.

Defaults:

    freemarker.engine.resource.modification.check.interval=60


Set a comma delimited list of Java classes the FreeMarker engine cannot have access to.

Defaults:

    freemarker.engine.restricted.classes=\
        java.lang.Class,\
        java.lang.ClassLoader,\
        java.lang.Thread


Set a comma delimited list of Java packages the FreeMarker engine cannot have access to.

Defaults:

    freemarker.engine.restricted.packages=


Set a comma delimited list of variables the FreeMarker engine cannot have access to. This will affect Dynamic Data List templates, Journal templates, and Portlet Display templates.

Defaults:

    freemarker.engine.restricted.variables=serviceLocator


The exception handler can have its value set to the name of a class implementing FreeMarker's TemplateExceptionHandler, or to rethrow, debug, debug_html, or ignore.

Defaults:

    freemarker.engine.template.exception.handler=rethrow


Input a list of comma delimited class names that extend com.liferay.portal.template.TemplateResourceParser. These classes will run in sequence to allow you to find the applicable TemplateResourceParser to parse a FreeMarker template.

Defaults:

    freemarker.engine.template.parsers=com.liferay.portal.freemarker.FreeMarkerServletResourceParser,com.liferay.portal.template.ThemeResourceParser,com.liferay.portal.template.DDMTemplateResourceParser,com.liferay.portal.template.ClassLoaderResourceParser


Input a list of comma delimited macros that will be loaded. These files must exist in the class path.

Defaults:

    freemarker.engine.macro.library=FTL_liferay.ftl as liferay


Top of Page

Google Apps


Set the default user name and password for Google Apps integration. The domain used by Google Apps is retrieved from the portal's mail domain. See http://code.google.com/apis/apps for more information.

Google Apps integration is not used unless the property "mail.hook.impl" is set with the value "com.liferay.mail.util.GoogleHook".

Defaults:

    google.apps.username=
    google.apps.password=


Top of Page

GZip


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


Top of Page

HTTP


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=10000

Examples:

    com.liferay.portal.util.HttpImpl.timeout[rss.news.yahoo.com]=10000


Top of Page

HTTP Header Response


Set this to true for the portal to send the "X-Content-Type-Options: nosniff" HTTP header to protect against MIME sniffing. Custom URLs can specified in the property "http.header.secure.x.content.type.options.urls.excludes" that allow for unhindered MIME sniffing.

Defaults:

    http.header.secure.x.content.type.options=true


Set a list of comma delimited URL prefixes that allow for unhindered MIME sniffing. This property is only used when the property "http.header.secure.x.content.type.options" is set to true.

Examples:

    http.header.secure.x.content.type.options.urls.excludes=


Set this to true for the portal to send the "X-Frame-Options: DENY" HTTP header to protect against clickjacking.

Custom HTTP header values instead of "DENY" can be specified per URL via the properties "http.header.secure.x.frame.options.*".

Defaults:

    http.header.secure.x.frame.options=true


If the property "http.header.secure.x.frame.options" is set to true, then the portal will iterate through the properties "http.header.secure.x.frame.options.*" where the wildcard "*" is replaced with an int number starting from 0 and ending with 255 to find a pipe (|) delimited URL and HTTP header value pair (e.g. "/|SAMEORIGIN").

Upon finding a matched a URL, the portal will use the custom HTTP header value instead of the "DENY" value.

By default, URLs that start with "/" will use a custom HTTP header value of "SAMEORIGIN". Specify another URL and HTTP header value with a number smaller than 255 to intercept this default behavior.

Defaults:

    http.header.secure.x.frame.options.255=/|SAMEORIGIN


Set this to nonempty value for the portal to send the "X-XSS-Protection" HTTP header to block cross-site scripting attacks. Possible nonempty values are "0", "1" and "1; mode=block"

Defaults:

    http.header.secure.x.xss.protection=1


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.) or "partial", which gives only the name portion (e.g. Liferay Portal Community Edition).

Defaults:

    http.header.version.verbosity=full


Top of Page

HTTP Tunneling


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.service.http.TunnelUtil.verify.ssl.hostname=true


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 16, 32, or 64 characters long.

Examples:

    tunneling.servlet.shared.secret=


Top of Page

ImageMagick


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=2GiB

Examples:

    imagemagick.resource.limit.disk=16GiB
    imagemagick.resource.limit.file=256
    imagemagick.resource.limit.thread=2
    imagemagick.resource.limit.time=3600


Top of Page

Intraband


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 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 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 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


Top of Page

Invoker


The invoker filter will attempt to cache InvokerFilterChain objects based on the request URI and dispatcher. Set this property configure the maximum number of cached InvokerFilterChain objects. Set this property to 0 to disable caching of InvokerFilterChain objects.

Defaults:

    invoker.filter.chain.cache.size=10000


Top of Page

Javadoc Manager


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


Top of Page

JCR

Defaults:

    jcr.initialize.on.startup=false
    jcr.wrap.session=true

Defaults:

    jcr.workspace.name=liferay
    jcr.node.documentlibrary=documentlibrary

Defaults:

    jcr.jackrabbit.repository.root=${liferay.home}/data/jackrabbit
    jcr.jackrabbit.config.file.path=${jcr.jackrabbit.repository.root}/repository.xml
    jcr.jackrabbit.repository.home=${jcr.jackrabbit.repository.root}/home
    jcr.jackrabbit.credentials.username=none
    jcr.jackrabbit.credentials.password=none


Top of Page

JSON


Set this property to true to activate strict mode for the JSON deserializer. In strict mode, the deserializer will not accept any bean attributes that are either static or do not comply with bean property name conventions (e.g. setBeanName, getBeanName).

Defaults:

    json.deserializer.strict.mode=true


Set this to 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 authenticaton 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.service.CyrusServiceUtil,\
        com.liferay.mail.service.MailServiceUtil,\
        com.liferay.portal.service.CompanyServiceUtil,\
        com.liferay.portal.service.PortalServiceUtil,\
        com.liferay.portal.service.PortletServiceUtil


Input a list of comma delimited method names that cannot be invoked via JSON.

Defaults:

    json.service.invalid.method.names=\
        getBeanIdentifier,\
        setBeanIdentifier


Top of Page

JSON Web Service


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


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=


Top of Page

Live Users


Set this to true to enable tracking via Live Users.

Defaults:

    live.users.enabled=false


Top of Page

Lock


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.

Defaults:

    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.portlet.documentlibrary.model.DLFolder=86400000


Locks for document library files should expire after 1 day.

Defaults:

    lock.expiration.time.com.liferay.portlet.documentlibrary.model.DLFileEntry=86400000


Locks for message board threads should never expire.

Defaults:

    lock.expiration.time.com.liferay.portlet.messageboards.model.MBThread=0


Top of Page

Mail


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.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.

Defaults:

    mail.hook.impl=com.liferay.mail.util.DummyHook

Examples:

    mail.hook.impl=com.liferay.mail.util.CyrusHook
    mail.hook.impl=com.liferay.mail.util.FuseMailHook
    mail.hook.impl=com.liferay.mail.util.GoogleHook
    mail.hook.impl=com.liferay.mail.util.SendmailHook
    mail.hook.impl=com.liferay.mail.util.ShellHook


CyrusHook

Set the commands for adding, updating, and deleting a user where %1% is the user id. Replace the password with the password for the cyrus user.

Defaults:

    mail.hook.cyrus.add.user=cyrusadmin password create %1%
    mail.hook.cyrus.delete.user=cyrusadmin password delete %1%
    mail.hook.cyrus.home=/home/cyrus

Examples:

    mail.hook.cyrus.add.user=cyrus_adduser password %1%
    mail.hook.cyrus.delete.user=cyrus_userdel password %1%


FuseMailHook

See http://www.fusemail.com/support/email-hosting/api-documentation/ for more information. You must also update the "mail.account.finder" property.

Defaults:

    mail.hook.fusemail.url=https://www.fusemail.com/api/request.html
    mail.hook.fusemail.username=
    mail.hook.fusemail.password=
    mail.hook.fusemail.account.type=group_subaccount
    mail.hook.fusemail.group.parent=


GoogleHook

See the properties "google.apps.username" and "google.apps.password".


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


Top of Page

Microsoft Translator


Set the client id and client secret values for Microsoft Translation integration. Subscription to the Microsoft Translator API on Azure Marketplace is required. Basic subscriptions, up to 2 million characters a month, are free. See http://msdn.microsoft.com/en-us/library/hh454950 for more information.

Defaults:

    microsoft.translator.client.id=
    microsoft.translator.client.secret=


Top of Page

Minifier


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 configure the maximum pieces of cached content. Set this property to 0 to disable caching of inline minified content.

Defaults:

    minifier.inline.content.cache.size=10000


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


Top of Page

Mobile Device Rules


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 this property to true to enable specific styling for WAP devices.

This property is deprecated and only provided for backwards compatibility.

Defaults:

    mobile.device.styling.wap.enabled=false


Top of Page

Module Framework


Set the module framework beginning start level. The module framework will proceed to this start level before the Spring context is initialized.

Defaults:

    module.framework.beginning.start.level=6


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 directory which will form the base path of the module framework.

Defaults:

    module.framework.base.dir=${liferay.home}/data/osgi


Set a comma delimited list of directories to scan for modules to auto deploy.

Defaults:

    module.framework.auto.deploy.dirs=${module.framework.base.dir}/modules


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 portal libraries will be placed.

Defaults:

    module.framework.portal.dir=${module.framework.base.dir}/portal


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=true

Defaults:

    module.framework.services.ignored.interfaces=\
        com.liferay.portal.kernel.bean.IdentifiableBean,\
        com.liferay.portal.kernel.dao.orm.SessionFactory,\
        com.liferay.portal.kernel.security.pacl.PACLConstants,\
        java.io.Closeable,\
        java.io.Serializable,\
        java.lang.Comparable,\
        org.aopalliance.intercept.MethodInterceptor,\
        org.springframework.aop.PointcutAdvisor,\
        org.springframework.aop.SpringProxy,\
        org.springframework.aop.framework.Advised,\
        org.springframework.aop.framework.AopInfrastructureBean,\
        org.springframework.beans.factory.BeanClassLoaderAware,\
        org.springframework.beans.factory.BeanFactoryAware,\
        org.springframework.beans.factory.InitializingBean,\
        org.springframework.beans.factory.config.BeanPostProcessor,\
        org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor,\
        org.springframework.core.Ordered


Set a comma delimited list of OSGi bundles that are automatically installed and optionally started once the system is up and running.

Defaults:

    module.framework.initial.bundles=\
        file:${module.framework.lib.dir}/org.apache.felix.log.jar@start,\
        felix-fileinstall.jar@start,\
        log-bridge.jar@start


Set a comma delimited list of regular OSGi bundles in Liferay's library paths for which a generated fragment will not be generated.

Defaults:

    module.framework.system.bundle.ignored.fragments=\
        log-bridge,\
        org.apache.felix.fileinstall,\
        org.apache.felix.main,\
        org.eclipse.osgi,\
        org.glassfish.web.jstl-impl,\
        util-java,\
        util-taglib,\
        \
        #
        # Apache Commons
        #
        commons-logging,\
        org.apache.commons.io,\
        #
        # Jetty
        #
        \
        com.sun.el,\
        javax.el,\
        javax.mail.glassfish,\
        javax.servlet,\
        javax.servlet.jsp,\
        javax.servlet.jsp.jstl,\
        org.apache.jasper.glassfish,\
        org.apache.taglibs.standard.glassfish,\
        org.eclipse.*,\
        \
        #
        # JBoss
        #
        \
        slf4j.api,\
        \
        #
        # Weblogic
        #
        \
        ch.qos.cal10n.api,\
        com.bea.*,\
        com.oracle.*,\
        javax.jsp,\
        org.jboss.*,\
        \
        #
        # Websphere
        #
        \
        com.ibm.*,\
        org.objectweb.asm.*


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=\
        aQute.lib.osgi;version="1.43.1",\
        aQute.libg.header;version="1.0",\
        aQute.libg.version;version="1.0",\
        com.liferay.alloy.taglib.alloy,\
        com.liferay.alloy.taglib.alloy.base,\
        com.liferay.alloy.taglib.alloy_util,\
        com.liferay.alloy.taglib.alloy_util.base,\
        com.liferay.alloy.taglib.liferay,\
        com.liferay.alloy.taglib.liferay.base,\
        com.liferay.alloy.tools.model,\
        com.liferay.alloy.tools.tagbuilder,\
        com.liferay.alloy.tools.tagbuilder.templates,\
        com.liferay.alloy.tools.xmlbuilder,\
        com.liferay.alloy.util,\
        com.liferay.alloy.util.json,\
        com.liferay.osgi.bootstrap,\
        com.sun.org.apache.xalan.internal.res,\
        com.sun.org.apache.xml.internal.utils,\
        com.sun.org.apache.xpath.internal,\
        com.sun.org.apache.xpath.internal.jaxp,\
        com.sun.org.apache.xpath.internal.objects,\
        freemarker.cache,\
        freemarker.core,\
        freemarker.ext.beans,\
        freemarker.ext.jsp,\
        freemarker.ext.servlet,\
        freemarker.template,\
        freemarker.template.utility,\
        javax.annotation;version="1.1.0",\
        javax.annotation.security;version="1.1.0",\
        javax.el;version="2.1.0",\
        javax.faces.convert,\
        javax.faces.webapp,\
        javax.mail;version="1.4",\
        javax.mail.event;version="1.4",\
        javax.mail.internet;version="1.4",\
        javax.mail.search;version="1.4",\
        javax.mail.util;version="1.4",\
        javax.portlet;version="2.0.0",\
        javax.portlet.filter;version="2.0.0",\
        javax.servlet;version="2.5.0",\
        javax.servlet.http;version="2.5.0",\
        javax.servlet.jsp;version="2.1.0",\
        javax.servlet.jsp.el;version="2.1.0",\
        javax.servlet.jsp.resources;version="2.1.0",\
        javax.servlet.jsp.tagext;version="2.1.0",\
        javax.servlet.resources;version="2.5.0",\
        org.aopalliance.aop,\
        org.aopalliance.intercept,\
        org.apache.axis,\
        org.apache.axis.configuration,\
        org.apache.axis.encoding.ser,\
        org.apache.axis.handlers.http,\
        org.apache.commons.httpclient,\
        org.apache.commons.httpclient.auth,\
        org.apache.commons.httpclient.params,\
        org.apache.commons.logging;version="1.1.1",\
        org.apache.tools.ant,\
        org.apache.tools.ant.taskdefs,\
        org.apache.tools.ant.util,\
        org.apache.xml.xml_soap,\
        org.json,\
        org.objectweb.asm,\
        org.objectweb.asm.commons,\
        org.objectweb.asm.signature,\
        org.w3c.dom,\
        org.w3c.dom.traversal,\
        \
        #
        # EL support
        #
        \
        com.sun.el,\
        com.sun.el.lang,\
        com.sun.el.parser,\
        com.sun.el.query,\
        com.sun.el.util,\
        org.apache.el,\
        org.apache.el.lang,\
        org.apache.el.parser,\
        org.apache.el.util,\
        \
        #
        # Random exports
        #
        \
        com.mysql.jdbc,\
        com.sun.security.auth.module,\
        org.apache.naming.java


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.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.gosh.args=--noshutdown
    module.framework.properties.org.osgi.framework.bootdelegation=__redirected


Top of Page

Monitoring


Configure the appropriate level for monitoring Liferay. Valid values are: HIGH, LOW, MEDIUM, OFF.

Defaults:

    monitoring.level.com.liferay.monitoring.Portal=HIGH
    monitoring.level.com.liferay.monitoring.Portlet=HIGH


Set this to true to monitor portal requests.

Defaults:

    monitoring.portal.request=false


Set this to true to monitor portlet action requests.

Defaults:

    monitoring.portlet.action.request=false


Set this to true to monitor portlet event requests.

Defaults:

    monitoring.portlet.event.request=false


Set this to true to monitor portlet render requests.

Defaults:

    monitoring.portlet.render.request=false


Set this to true to monitor portlet resource requests.

Defaults:

    monitoring.portlet.resource.request=false


Set this to true to show data samples at the bottom of each portal page as HTML comment. In order for data to show, the property "monitoring.data.sample.thread.local" must be set to true.

Defaults:

    monitoring.show.per.request.data.sample=false


Top of Page

Multicast


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"]=23301

Examples:

    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"]=23302

Examples:

    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"]=23303

Examples:

    multicast.group.address["cluster-link-mping"]=ff0e::8:8:3


See the properties "net.sf.ehcache.configurationResourceName" and "net.sf.ehcache.configurationResourceName.peerProviderProperties".

Defaults:

    multicast.group.address["hibernate"]=239.255.0.4
    multicast.group.port["hibernate"]=23304


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


Top of Page

Notifications


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


Top of Page

OpenOffice


Enabling OpenOffice integration allows the Document Library portlet and the Wiki portlet to provide conversion functionality. This is tested with OpenOffice 2.3.x through 3.2.x. It is recommended that you have OpenOffice on the same machine. Using a remote host for the instance is not fully supported and could lead to various problems. To start OpenOffice as service, run the command:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;"

Defaults:

    openoffice.server.enabled=false
    openoffice.server.host=127.0.0.1
    openoffice.server.port=8100
    openoffice.cache.enabled=true


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


Top of Page

Phone Number Format


Set the name of a class that implements com.liferay.portal.kernel.format.PhoneNumberFormat. It will be used for formatting and validating phone numbers.

Defaults:

    phone.number.format.impl=com.liferay.portal.format.IdenticalPhoneNumberFormatImpl

Examples:

    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})$


Top of Page

Poller


Specify the notification events timout 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


Top of Page

Polls


Set this to true if polls should be published to live by default.

Defaults:

    polls.publish.to.live.by.default=true


Top of Page

POP


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


Top of Page

Portal Resiliency


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


Top of Page

Quartz

Defaults:

    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=5

Defaults:

    persisted.scheduler.org.quartz.dataSource.ds.connectionProvider.class=com.liferay.portal.scheduler.quartz.QuartzConnectionProvider
    persisted.scheduler.org.quartz.jobStore.class=com.liferay.portal.scheduler.quartz.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


Top of Page

REST Proxy


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


Top of Page

Robots.txt

Defaults:

    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


Top of Page

RSS


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


Top of Page

Sanitizer


Input a list of comma delimited class names that implement com.liferay.portal.kernel.sanitizer.Sanitizer. These classes are used to sanitize content.

Defaults:

    sanitizer.impl=com.liferay.portal.sanitizer.DummySanitizerImpl


Top of Page

Scheduler


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


Top of Page

Scripting


Input a list of comma delimited class names that will never be available to user defined server side scripts. The special string "all_classes" disables access to any Java class. This property is only effective when using the Scripting service and invoking eval or exec methods.

Defaults:

    scripting.forbidden.classes=com.liferay.portal.kernel.scripting.ScriptingUtil,com.liferay.portal.scripting.ScriptingImpl,java.lang.System


Set the compile mode for the JRuby scripting engine.

Defaults:

    scripting.jruby.compile.mode=jit

Examples:

    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 load paths for the jruby engine. These paths allow JRuby to locate gems and ruby code libraries in the classpath.

Defaults:

    scripting.jruby.load.paths=\
        classpath:/META-INF/jruby.home/lib/ruby/site_ruby/1.8,\
        classpath:/META-INF/jruby.home/lib/ruby/site_ruby/shared,\
        classpath:/META-INF/jruby.home/lib/ruby/1.8,\
        classpath:/gems/chunky_png-1.2.9/lib,\
        classpath:/gems/compass-0.12.2/lib,\
        classpath:/gems/fssm-0.2.10/lib,\
        classpath:/gems/sass-3.2.12/lib,\
        ${java.io.tmpdir}/liferay/ruby/gems/chunky_png-1.2.9/lib,\
        ${java.io.tmpdir}/liferay/ruby/gems/compass-0.12.2/lib,\
        ${java.io.tmpdir}/liferay/ruby/gems/fssm-0.2.10/lib,\
        ${java.io.tmpdir}/liferay/ruby/gems/sass-3.2.12/lib


Top of Page

Search Container


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


Top of Page

Sharepoint


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


Top of Page

Sprite


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=


Top of Page

Staging


Set this property to true to enable locking the publishing process for staging. If this is enabled, the second publishing process will not start. Locks are held per site.

Defaults:

    staging.lock.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


Top of Page

Strip


Set this property to true to enable the strip filter to also parse Sass based CSS. This property is not used unless the property "com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter" is set to true.

Defaults:

    strip.css.sass.enabled=false


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*


Top of Page

Social Activity


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


Enter a list of comma delimited values to use in drop down lists in the Social Activity portlet.

Defaults:

    social.activity.contribution.increments=0,1,2,3,4,5,10,20,50,100
    social.activity.contribution.limit.values=0,1,2,3,4,5,10,20
    social.activity.participation.increments=0,1,2,3,4,5,10,20,50,100
    social.activity.participation.limit.values=0,1,2,3,4,5,10,20


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 this to true if similar activities should be bundled together in the same activity set. If this is false, a new activity set will be created with each activity.

Defaults:

    social.activity.sets.bundling.enabled=true


Set this to true if sets should be generated when new activities are added.

Defaults:

    social.activity.sets.enabled=false


Set the selector for the set of interpreters that will determine how activities are grouped together.

Defaults:

    social.activity.sets.selector=


Top of Page

Social Bookmarks

Defaults:

    social.bookmark.types=twitter,facebook,plusone

Defaults:

    social.bookmark.jsp[facebook]=/html/taglib/ui/social_bookmark/facebook.jsp
    social.bookmark.jsp[plusone]=/html/taglib/ui/social_bookmark/plusone.jsp
    social.bookmark.jsp[twitter]=/html/taglib/ui/social_bookmark/twitter.jsp


Top of Page

Text Extraction


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


Top of Page

Thread Dump


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


Top of Page

User Notifications


Set this to true if you want users to acknowledge receipt of user notification events.

Defaults:

    user.notification.event.confirmation.enabled=false


Top of Page

Vaadin


Specify the location of the portal wide Vaadin themes and widget set (client side JavaScript).

Defaults:

    vaadin.resources.path=/html


Specify the base Vaadin theme to load automatically for all Vaadin portlets. A portlet can include an additional theme that is loaded after the shared theme.

Defaults:

    vaadin.theme=liferay


Specify the shared widget set (client side JavaScript) that is used by all Vaadin portlets running in the portal.

Defaults:

    vaadin.widgetset=com.vaadin.portal.gwt.PortalDefaultWidgetSet


Top of Page

Velocity Engine


Set this property to true so that the #if condition calls toString() to check for null values.

For example, if the property is set to true, the condition "#if ($layout)" will evalute to true if $layout is null or if $layout.toString() returns null.

It is safe to set this property to false if we know that all toString() implementations return an actual value. Disabling the check (as was the case in Velocity 1.5) will boost performance since calling toString() may be expensive for some objects.

Defaults:

    velocity.engine.directive.if.to.string.null.check=false


Input a list of comma delimited class names that extend com.liferay.portal.template.TemplateResourceParser. These classes will run in sequence to allow you to find the applicable TemplateResourceParser to parse a Velocity template.

Defaults:

    velocity.engine.resource.parsers=com.liferay.portal.velocity.VelocityServletResourceParser,com.liferay.portal.template.ThemeResourceParser,com.liferay.portal.template.DDMTemplateResourceParser,com.liferay.portal.template.ClassLoaderResourceParser


Set this to 0 to load template source every time. Set this to a number less than 0 to load templates once and cache it indefinitely. Set this to a number greater than 0 to load templates and cache it for the period of time specified by that number in milliseconds.

Defaults:

    velocity.engine.resource.modification.check.interval=60


Set a comma delimited list of Java classes the Velocity engine cannot have access to.

Defaults:

    velocity.engine.restricted.classes=\
        java.lang.Class,\
        java.lang.ClassLoader,\
        java.lang.Thread


Set a comma delimited list of Java packages the Velocity engine cannot have access to.

Defaults:

    velocity.engine.restricted.packages=


Set a comma delimited list of variables the Velocity engine cannot have access to. This will affect Dynamic Data List templates, Journal templates, and Portlet Display templates.

Defaults:

    velocity.engine.restricted.variables=serviceLocator


Input a list of comma delimited macros that will be loaded. These files must exist in the class path.

Defaults:

    velocity.engine.velocimacro.library=VM_global_library.vm,VM_liferay.vm


Set the Velocity logging configuration.

Defaults:

    velocity.engine.logger=org.apache.velocity.runtime.log.SimpleLog4JLogSystem
    velocity.engine.logger.category=org.apache.velocity


Top of Page

Virtual Hosts


Set the extensions that will be ignored for virtual hosts.

Defaults:

    virtual.hosts.ignore.extensions=\
        /c,\
        .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/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,\
        \
        /c/layouts_admin/update_page


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


Top of Page

XML Validation


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


Top of Page

Xuggler


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.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=http://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=0

Examples:

    xuggler.ffpreset.flags2=-wpred-dct8x8+mbtree


Top of Page

YUI


Specify the YUI compressor settings used to compress CSS.

Defaults:

    yui.compressor.css.line.break=-1


Specify the YUI compressor settings used to compress JavaScript.

Defaults:

    yui.compressor.js.disable.optimizations=false
    yui.compressor.js.line.break=-1
    yui.compressor.js.munge=true
    yui.compressor.js.preserve.all.semicolons=false
    yui.compressor.js.verbose=false


Top of Page

JSP


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


Top of Page

Servlet Filters


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 audit filter populates the AuditRequestThreadLocal with the appropriate request values to generate audit requests.

Defaults:

    com.liferay.portal.servlet.filters.audit.AuditFilter=false


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.

Defaults:

    com.liferay.portal.servlet.filters.sso.cas.CASFilter=true


The char buffer pool filter enables char buffer pooling to minimize garbage collection of large char arrays. See the system property "com.liferay.portal.kernel.util.StringBundler.unsafe.create.limit".

Defaults:

    com.liferay.portal.servlet.filters.charbufferpool.CharBufferPoolFilter=false


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=true


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=true


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 monitoring filter monitors portal request performance.

Defaults:

    com.liferay.portal.servlet.filters.monitoring.MonitoringFilter=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 secure filter is used to protect servlets based on IP and protocol. See the properties "*.servlet.hosts.allowed" and "*.servlet.https.required".

Defaults:

    com.liferay.portal.servlet.filters.secure.SecureFilter=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 speed up page rendering for users that are on dial up.

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 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 attacks. Setting this property to true increases security level while setting this property to false optimizes server side performance.

Defaults:

    com.liferay.portal.servlet.filters.validhostname.ValidHostNameFilter=true


The valid HTML filter will move JavaScript that is outside of the closing body tag to its proper place inside the body tag. Most sites will prefer to leave this filter disabled because having JavaScript outside of the body tag causes the page to render faster. However, the side effect is that it will also make the site unaccessible to screen readers because the HTML is technically invalid. Setting this property to true optimizes for accessibility while setting this property to false optimizes for browser performance.

Defaults:

    com.liferay.portal.servlet.filters.validhtml.ValidHtmlFilter=false


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


Top of Page

Upload Servlet Request


Set the maximum file size. Default is 1024 * 1024 * 100.

Defaults:

    com.liferay.portal.upload.UploadServletRequestImpl.max.size=104857600


Set the temp directory for uploaded files.

Examples:

    com.liferay.portal.upload.UploadServletRequestImpl.temp.dir=C:/Temp


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


Top of Page

Web Server


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 enable support for legacy proxy servers (Apache 1.x).

Defaults:

    web.server.proxy.legacy.mode=false


Top of Page

WebDAV


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


Top of Page

Main Servlet


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


Top of Page

Atom Servlet


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


Top of Page

Axis Servlet


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


Top of Page

Dynamic Resource Servlet


Set the paths which are allowed to be served from the Dynamic Resource Servlet scratch.

Defaults:

    dynamic.resource.servlet.allowed.paths=\
        /sprite


Top of Page

Google Gadget Servlet


Set the servlet mapping for the Google Gadget servlet.

Defaults:

    google.gadget.servlet.mapping=/google_gadget


Top of Page

JSON Servlet


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


Top of Page

JSON Web Service Servlet


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


Top of Page

Netvibes Servlet


Set the servlet mapping for the Netvibes servlet.

Defaults:

    netvibes.servlet.mapping=/netvibes


Top of Page

Spring Remoting Servlet


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


Top of Page

Tunnel Servlet


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


Top of Page

Web Server Servlet


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/mpeg,audio/mpeg3,audio/ogg,audio/vorbis,audio/wav,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 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


Top of Page

WebDAV Servlet


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


Top of Page

Widget Servlet


Set the servlet mapping for the Widget servlet.

Defaults:

    widget.servlet.mapping=/widget


Top of Page

Admin Portlet


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 role names separated by \n characters that are associated with newly created users.

Defaults:

    admin.default.role.names=Power User\nUser


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.com

Defaults:

    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.tmpl

Defaults:

    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.tmpl

Defaults:

    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.tmpl

Defaults:

    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


Top of Page

Announcements Portlet


Configure email notification settings.

Defaults:

    announcements.email.from.name=
    announcements.email.from.address=

Defaults:

    announcements.email.to.name=
    announcements.email.to.address=noreply@liferay.com

Defaults:

    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


Top of Page

Asset


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 location of the XML file containing the configuration of the default display templates for the Asset Categories Navigation portlet.

Defaults:

    asset.categories.navigation.display.templates.config=com/liferay/portlet/assetcategoriesnavigation/dependencies/portlet-display-templates.xml


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


Input a class name that extends com.liferay.portlet.asset.util.BaseAssetEntryValidator. This class will be called to validate entries. The DefaultAssetEntryValidator class is just an empty class that doesn't actually do any validation. The MinimalAssetEntryValidator requires all entities to have at least one tag.

Defaults:

    asset.entry.validator=com.liferay.portlet.asset.util.DefaultAssetEntryValidator

Examples:

    asset.entry.validator=com.liferay.portlet.asset.util.MinimalAssetEntryValidator


Set the limit for results used when performing asset searches that are subsequently filtered by permissions.

Defaults:

    asset.filter.search.limit=200


Set this to true to enable permissions for tags. Note that this feature is deprecated and should only be enabled for backwards compatibility. If there is a requirement to use permissions for tags, consider using categories instead.

Defaults:

    asset.tag.permissions.enabled=false


Input a list of comma delimited default tag properties for new tags. Each item of the list should have the following format: "key:value".

Defaults:

    asset.tag.properties.default=


Set this to true to enable properties for tags. Note that this feature is deprecated and should only be enabled for backwards compatibility. If there is a requirement to use properties for tags, consider using categories instead.

Defaults:

    asset.tag.properties.enabled=false


Set this to true to enable tag suggestions.

Defaults:

    asset.tag.suggestions.enabled=true


Set the location of the XML file containing the configuration of the default display templates for the Asset Tags Navigation portlet.

Defaults:

    asset.tags.navigation.display.templates.config=com/liferay/portlet/assettagsnavigation/dependencies/portlet-display-templates.xml


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
    asset.renderer.enabled.com.liferay.portlet.messageboards.asset.MBDiscussionAssetRendererFactory=false


Top of Page

Asset Publisher Portlet


Input a list of comma delimited class names that implement com.liferay.portlet.assetpublisher.util.AssetEntryQueryProcessor.

Defaults:

    asset.publisher.asset.entry.query.processors=com.liferay.portlet.assetpublisher.util.CustomUserAttributesAssetEntryQueryProcessor


Set the interval in hours on how often CheckAssetEntryMessageListener will run to check for new assets. Users will be notified via email of new assets.

Defaults:

    asset.publisher.check.interval=24


Configure email notification settings.

Defaults:

    asset.publisher.email.from.name=
    asset.publisher.email.from.address=

Defaults:

    asset.publisher.email.asset.entry.added.enabled=false
    asset.publisher.email.asset.entry.added.subject=com/liferay/portlet/assetpublisher/dependencies/email_asset_entry_added_subject.tmpl
    asset.publisher.email.asset.entry.added.body=com/liferay/portlet/assetpublisher/dependencies/email_asset_entry_added_body.tmpl


Set the name of the display style which will be used by default.

Defaults:

    asset.publisher.display.style.default=abstracts


Input a list of comma delimited display styles that will be available in the configuration screen of Asset Publisher portlet.

Defaults:

    asset.publisher.display.styles=table,title-list,abstracts,full-content


Set the location of the XML file containing the configuration of the default display templates for the Asset Publisher portlet.

Defaults:

    asset.publisher.display.templates.config=com/liferay/portlet/assetpublisher/dependencies/portlet-display-templates.xml


Set the maximum number of new entries to notify subscribers of Asset Publisher portlets. Set this property to 0 if there is no limit.

Defaults:

    asset.publisher.dynamic.subscription.limit=20


Input a list of sections that will be included as part of the asset publisher configuration form.

Defaults:

    asset.publisher.query.form.configuration=custom-user-attributes


Set this to true to search assets in Asset Publisher from the index. Set this to false to search assets in Asset Publisher from the database.

Defaults:

    asset.publisher.search.with.index=true


Top of Page

Blogs Portlet


Set the location of the XML file containing the configuration of the default display templates for the Blogs portlet.

Defaults:

    blogs.display.templates.config=com/liferay/portlet/blogs/dependencies/portlet-display-templates.xml


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=com/liferay/portlet/blogs/dependencies/email_entry_added_subject.tmpl
    blogs.email.entry.added.body=com/liferay/portlet/blogs/dependencies/email_entry_added_body.tmpl

Defaults:

    blogs.email.entry.updated.enabled=true
    blogs.email.entry.updated.subject=com/liferay/portlet/blogs/dependencies/email_entry_updated_subject.tmpl
    blogs.email.entry.updated.body=com/liferay/portlet/blogs/dependencies/email_entry_updated_body.tmpl

Defaults:

    blogs.page.abstract.length=400

Defaults:

    blogs.rss.abstract.length=200


Set the excerpt length for linkbacks.

Defaults:

    blogs.linkback.excerpt.length=200


Set the interval on which the LinkbackMessageListener will run. The value is set in one minute increments.

Defaults:

    blogs.linkback.job.interval=5


Set this to true to enable pingbacks.

Defaults:

    blogs.pingback.enabled=true


Set this to true to enable trackbacks.

Defaults:

    blogs.trackback.enabled=true


Set this to true to enable pinging Google on new and updated blog entries.

Defaults:

    blogs.ping.google.enabled=true


Set the interval in minutes on how often CheckEntryMessageListener will run to check for and display blog entries scheduled to display.

Defaults:

    blogs.entry.check.interval=1


Set this to true to enable comments for blogs entries.

Defaults:

    blogs.entry.comments.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 and valid file extensions for images. 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".

Defaults:

    blogs.image.small.max.size=51200


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


Top of Page

Bookmarks Portlet


Configure email notification settings.

Defaults:

    bookmarks.email.from.name=
    bookmarks.email.from.address=

Defaults:

    bookmarks.email.entry.added.enabled=true
    bookmarks.email.entry.added.subject=com/liferay/portlet/bookmarks/dependencies/email_entry_added_subject.tmpl
    bookmarks.email.entry.added.body=com/liferay/portlet/bookmarks/dependencies/email_entry_added_body.tmpl

Defaults:

    bookmarks.email.entry.updated.enabled=true
    bookmarks.email.entry.updated.subject=com/liferay/portlet/bookmarks/dependencies/email_entry_updated_subject.tmpl
    bookmarks.email.entry.updated.body=com/liferay/portlet/bookmarks/dependencies/email_entry_updated_body.tmpl


Set this to true if bookmarks should be published to live by default.

Defaults:

    bookmarks.publish.to.live.by.default=true


Top of Page

Breadcrumb Portlet


Set the name of the display style which will be used by default.

Defaults:

    breadcrumb.display.style.default=horizontal


Specify the options that will be provided to the user in the edit configuration mode of the portlet.

Defaults:

    breadcrumb.display.style.options=horizontal,vertical


Set this to true to show the Guest Site as the top level parent in the breadcrumbs. It will only show if it has at least one page.

Defaults:

    breadcrumb.show.guest.group=false


Set this to true to show the path of parent sites or organizations in the breadcrumbs. A site will only be shown if it has at least one page.

Defaults:

    breadcrumb.show.parent.groups=true

Calendar


Top of Page

Discussion Tag Library


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


Set the thread view for discussion comments. This will affect Blogs, Document Library, and other portlets that use the Discussion tag library to provide comments. Set the value to "flat" to paginate comments. Set the value to "combination" to show all comments in one page along with a tree view of the comments.

Defaults:

    discussion.thread.view=flat

Examples:

    discussion.thread.view=combination


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


Top of Page

Document Library Portlet


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=com/liferay/portlet/documentlibrary/dependencies/email_file_entry_added_subject.tmpl
    dl.email.file.entry.added.body=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=com/liferay/portlet/documentlibrary/dependencies/email_file_entry_updated_subject.tmpl
    dl.email.file.entry.updated.body=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.portlet.documentlibrary.antivirus.AntivirusScanner. The document library server will use this to scan documents for viruses.

Defaults:

    dl.store.antivirus.impl=com.liferay.portlet.documentlibrary.antivirus.DummyAntivirusScannerImpl

Examples:

    dl.store.antivirus.impl=com.liferay.portlet.documentlibrary.antivirus.ClamAntivirusScannerImpl


Set the name of a class that implements com.liferay.portlet.documentlibrary.store.Store. The document library server will use this to persist documents.

Defaults:

    dl.store.impl=com.liferay.portlet.documentlibrary.store.FileSystemStore

Examples:

    dl.store.impl=com.liferay.portlet.documentlibrary.store.AdvancedFileSystemStore
    dl.store.impl=com.liferay.portlet.documentlibrary.store.CMISStore
    dl.store.impl=com.liferay.portlet.documentlibrary.store.DBStore
    dl.store.impl=com.liferay.portlet.documentlibrary.store.JCRStore
    dl.store.impl=com.liferay.portlet.documentlibrary.store.S3Store


CMISStore

Defaults:

    dl.store.cmis.credentials.username=none
    dl.store.cmis.credentials.password=none
    dl.store.cmis.repository.url=http://localhost:8080/alfresco/service/api/cmis
    dl.store.cmis.system.root.dir=Liferay Home


FileSystemStore

Defaults:

    dl.store.file.system.root.dir=${liferay.home}/data/document_library


JCRStore

Defaults:

    dl.store.jcr.fetch.delay=500
    dl.store.jcr.fetch.max.failures=5


Set this to true to allow version labels to be moved when updated. This provides a workaround to duplicate version labels that may result when using JCRStore.

Defaults:

    dl.store.jcr.move.version.labels=false


S3Store

Defaults:

    dl.store.s3.access.key=
    dl.store.s3.secret.key=
    dl.store.s3.bucket.name=


Set the number of days that files should be left in the temporary directory before they are deleted.

Defaults:

    dl.store.s3.temp.dir.clean.up.expunge=7


Set to the number of calls to S3Store#getFile() before triggering the clean up process.

Defaults:

    dl.store.s3.temp.dir.clean.up.frequency=100


Set the maximum file size and valid file extensions for documents. 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".

Defaults:

    dl.file.max.size=0

Examples:

    dl.file.max.size=307200
    dl.file.max.size=1024000
    dl.file.max.size=3072000


A file extension of * will permit all file extensions.

Defaults:

    dl.file.extensions=*

Examples:

    dl.file.extensions=.bmp,.css,.doc,.docx,.dot,.gif,.gz,.htm,.html,.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 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: /html/themes/_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 file size for indexing file contents. Files larger than this property will not have their contents indexed, only their metadata will be indexed. A value of -1 indicates that all file contents will be indexed. A value of 0 indicates that no file contents will be indexed.

Defaults:

    dl.file.indexing.max.size=10485760


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=

Examples:

    dl.file.indexing.ignore.extensions=.pdf,.ppt


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: /html/themes/_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 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.portlet.documentlibrary.util.DLProcessor. These classes will trigger asynchronous processing for document library files.

com.liferay.portlet.documentlibrary.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


Set the maximum file size for preview and thumbnail generation. Files larger than the value specified in this property will not result in the execution of a processor that generates a preview. A value of -1 indicates that all files will be processed. A value of 0 indicates that no files will be processed. The default maximum size is 100 megabytes.

Defaults:

    dl.file.entry.previewable.processor.max.size=104857600


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 interval in minutes on how often CheckFileRankMessageListener will run to check for and remove file ranks in excess of the maximum number of file ranks to maintain per user per file.

Defaults:

    dl.file.rank.check.interval=15


Set this to true to enable file rank for document library files.

Defaults:

    dl.file.rank.enabled=true


Set the maximum number of file ranks to maintain per user per file.

Defaults:

    dl.file.rank.max.size=5


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).

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=128
    dl.file.entry.thumbnail.max.width=128
    dl.file.entry.thumbnail.video.frame.percentage=25

Examples:

    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,ogg

Examples:

    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]=44100

Defaults:

    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/mpeg,audio/mpeg3,audio/ogg,audio/vorbis,audio/wav,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


Input a list of comma delimited video 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,ogv

Examples:

    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]=30

Defaults:

    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/x-flv,video/x-m4v,video/x-ms-wmv,video/x-msvideo


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=com.liferay.portal.repository.cmis.CMISAtomPubRepository,com.liferay.portal.repository.cmis.CMISWebServicesRepository


Sets the depth of mapped CMIS entries to remove when a deletion is called from within the portal. The deeper the setting, the more calls to the server required. When a deletion is called from outside the portal, mapped CMIS entries remain stagnant in the database. Expected values are: -1 for deep, 0 for none, and 1 for shallow.

Defaults:

    dl.repository.cmis.delete.depth=1


Set the location of the XML file containing the configuration of the default display templates for the Document Library portlet.

Defaults:

    dl.display.templates.config=com/liferay/portlet/documentlibrary/dependencies/portlet-display-templates.xml


Set the list of supported display views.

Defaults:

    dl.display.views=icon,descriptive,list


Set the default display view.

Defaults:

    dl.default.display.view=icon


Set this to true to show a tip for using Liferay Sync.

Defaults:

    dl.show.liferay.sync.message=true


Top of Page

Dockbar Portlet


Set the portlet ids that will be shown directly in the "Add Application" menu.

Defaults:

    dockbar.add.portlets=56,101,110,71


Set this to true if administrative links in the dockbar should be shown in a pop up window. The links under the "Manage" menu and the "Manage My Account" link are considered administrative links.

Defaults:

    dockbar.administrative.links.show.in.pop.up=true


Top of Page

Dynamic Data Lists Portlet


Set this to true if Dynamic Data Lists record set keys should always be autogenerated.

Defaults:

    dynamic.data.lists.record.set.force.autogenerate.key=false


Set the storage type that will be used to store the Dynamic Data Lists records. Valid values are: expando and xml.

Defaults:

    dynamic.data.lists.storage.type=xml


Specify the path to the template used for providing error messages on Dynamic Data Lists templates.

Defaults:

    dynamic.data.lists.error.template[ftl]=com/liferay/portlet/dynamicdatalists/dependencies/error.ftl
    dynamic.data.lists.error.template[vm]=com/liferay/portlet/dynamicdatalists/dependencies/error.vm


Top of Page

Dynamic Data Mapping Portlet


Set the maximum file size and valid file extensions for images. 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".

Defaults:

    dynamic.data.mapping.image.small.max.size=51200


A file extension of * will permit all file extensions.

Defaults:

    dynamic.data.mapping.image.extensions=.gif,.jpeg,.jpg,.png


Set this to true if dynamic data mapping structure keys should always be autogenerated.

Defaults:

    dynamic.data.mapping.structure.force.autogenerate.id=false


Set the private field names to be able to store fields that are not part of the structure.

Defaults:

    dynamic.data.mapping.structure.private.field.names=_fieldsDisplay


Set the data type for each private field.

Defaults:

    dynamic.data.mapping.structure.private.field.datatype[_fieldsDisplay]=string


Set the repeatable for each private field.

Defaults:

    dynamic.data.mapping.structure.private.field.repeatable[_fieldsDisplay]=false


Set the name of template language which will be used by default.

Defaults:

    dynamic.data.mapping.template.language.default=ftl


Set the location of the default content for each language type.

Defaults:

    dynamic.data.mapping.template.language.content[ftl]=com/liferay/portlet/dynamicdatamapping/dependencies/template.ftl
    dynamic.data.mapping.template.language.content[vm]=com/liferay/portlet/dynamicdatamapping/dependencies/template.vm
    dynamic.data.mapping.template.language.content[xsl]=com/liferay/portlet/dynamicdatamapping/dependencies/template.xsl


Top of Page

Flags Portlet


Input a list of questions used for flag reasons.

Defaults:

    flags.reasons=sexual-content,violent-or-repulsive-content,hateful-or-abusive-content,harmful-dangerous-acts,spam,infringes-my-rights


Configure email notification settings.

Defaults:

    flags.email.from.name=
    flags.email.from.address=

Defaults:

    flags.email.subject=com/liferay/portlet/flags/dependencies/email_flag_subject.tmpl
    flags.email.body=com/liferay/portlet/flags/dependencies/email_flag_body.tmpl


Set this to true to enable guest users to flag content.

Defaults:

    flags.guest.users.enabled=false


Top of Page

Icon Menu Tag Library


Configure maximum number of items to display when using the Icon Menu tag library. If the number of items is higher than the maximum allowed, then the icon menu will provide an autocomplete search box to display the items.

Defaults:

    icon.menu.max.display.items=15


Top of Page

IFrame Portlet


Specify a role name that a user must be associated with in order to configure the IFrame portlet to use the @password@ token. This token is used to post the password of users who access this portlet in order to automatically login to the framed site.

No role is required by default. However, it is recommended that you specify a role in high security environments where users who configure this portlet may attempt password theft. See LPS-5272 for more information.

Defaults:

    iframe.password.token.role=


Top of Page

Invitation Portlet

Defaults:

    invitation.email.max.recipients=20
    invitation.email.message.body=com/liferay/portlet/invitation/dependencies/email_message_body.tmpl
    invitation.email.message.subject=com/liferay/portlet/invitation/dependencies/email_message_subject.tmpl


Top of Page

Journal Portlet


Set the list of supported display views.

Defaults:

    journal.display.views=icon,descriptive,list


Set the default display view.

Defaults:

    journal.default.display.view=descriptive


Set this to true to expire all article versions when expiring an article. Set this to false to only expire the latest approved article version when expiring an article.

Defaults:

    journal.article.expire.all.versions=true


Input a list of sections that will be included as part of the article form when adding an article.

Defaults:

    journal.article.form.add=content,abstract,categorization,schedule,display-page,related-assets,permissions,custom-fields


Input a list of sections that will be included as part of the article form when defining the default values of a structure.

Defaults:

    journal.article.form.default.values=content,abstract,categorization,display-page,related-assets,permissions,custom-fields


Input a list of sections that will be included as part of the article form when translating an article.

Defaults:

    journal.article.form.translate=content,abstract


Input a list of sections that will be included as part of the article form when updating an article.

Defaults:

    journal.article.form.update=content,abstract,categorization,schedule,display-page,related-assets,custom-fields


Set this to true if article ids should always be autogenerated.

Defaults:

    journal.article.force.autogenerate.id=true


Set the list of article types. The display text of each of the article types is set in content/Language.properties.

Defaults:

    journal.article.types=announcements,blogs,general,news,press-release,test


Set a list of custom tokens that will be replaced when article content is rendered. For example, if set to "custom_token_1", then "@custom_token_1@" will be replaced with its token value before an article is displayed.

Examples:

    journal.article.custom.tokens=custom_token_1,custom_token_2
    journal.article.custom.token.value[custom_token_1]=This is the first custom token.
    journal.article.custom.token.value[custom_token_2]=This is the second custom token.


Set the token used when inserting simple page breaks in articles.

Defaults:

    journal.article.token.page.break=@page_break@


Set the interval in minutes on how often CheckArticleMessageListener will run to check for and send email on web content due for review.

Defaults:

    journal.article.check.interval=15


Set the storage type that will be used to store the Journal articles. Valid values are: expando and xml.

Defaults:

    journal.article.storage.type=xml


Set this to true to check that a user has the VIEW permission on a Journal article when its content is rendered.

Defaults:

    journal.article.view.permission.check.enabled=false


Set this to true to enable comments for journal articles.

Defaults:

    journal.article.comments.enabled=true


Set this to true if feed ids should always be autogenerated.

Defaults:

    journal.feed.force.autogenerate.id=true


Set the location of the default content for each language type.

Defaults:

    journal.template.language.content[css]=com/liferay/portlet/journal/dependencies/template.css
    journal.template.language.content[ftl]=com/liferay/portlet/journal/dependencies/template.ftl
    journal.template.language.content[vm]=com/liferay/portlet/journal/dependencies/template.vm
    journal.template.language.content[xsl]=com/liferay/portlet/journal/dependencies/template.xsl


Set the maximum file size and valid file extensions for images. 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".

Defaults:

    journal.image.small.max.size=51200


A file extension of * will permit all file extensions.

Defaults:

    journal.image.extensions=.gif,.jpeg,.jpg,.png


Input a list of comma delimited class names that extend com.liferay.portal.kernel.templateparser.BaseTransformerListener. These classes will run in sequence to allow you to modify the XML and XSL before it is transformed and allow you to modify the final output.

Defaults:

    journal.transformer.listener=\
        com.liferay.portlet.journal.util.TokensTransformerListener,\
        #com.liferay.portlet.journal.util.PropertiesTransformerListener,\
        com.liferay.portlet.journal.util.ContentTransformerListener,\
        com.liferay.portlet.journal.util.LocaleTransformerListener,\
        com.liferay.portlet.journal.util.RegexTransformerListener,\
        com.liferay.portlet.journal.util.ViewCounterTransformerListener


Enter a list of regular expression patterns and replacements that will be applied to outputted Journal content. The list of properties must end with a subsequent integer (0, 1, etc.) and it is assumed that the list has reached an end when the pattern or replacement is not set. See com.liferay.portlet.journal.util.RegexTransformerListener for implementation details.

Examples:

    journal.transformer.regex.pattern.0=beta.sample.com
    journal.transformer.regex.replacement.0=production.sample.com
    journal.transformer.regex.pattern.1=staging.sample.com
    journal.transformer.regex.replacement.1=production.sample.com


Set this to true if journal articles should be published to live by default.

Defaults:

    journal.publish.to.live.by.default=true


Set this to false if only the latest approved version of journal articles should be published by default.

Defaults:

    journal.publish.version.history.by.default=true


Set whether to synchronize content searches when the server starts.

Defaults:

    journal.sync.content.search.on.startup=false


Configure email notification settings.

Defaults:

    journal.email.from.name=
    journal.email.from.address=

Defaults:

    journal.email.article.added.enabled=true
    journal.email.article.added.subject=com/liferay/portlet/journal/dependencies/email_article_added_subject.tmpl
    journal.email.article.added.body=com/liferay/portlet/journal/dependencies/email_article_added_body.tmpl

Defaults:

    journal.email.article.approval.denied.enabled=false
    journal.email.article.approval.denied.subject=com/liferay/portlet/journal/dependencies/email_article_approval_denied_subject.tmpl
    journal.email.article.approval.denied.body=com/liferay/portlet/journal/dependencies/email_article_approval_denied_body.tmpl

Defaults:

    journal.email.article.approval.granted.enabled=false
    journal.email.article.approval.granted.subject=com/liferay/portlet/journal/dependencies/email_article_approval_granted_subject.tmpl
    journal.email.article.approval.granted.body=com/liferay/portlet/journal/dependencies/email_article_approval_granted_body.tmpl

Defaults:

    journal.email.article.approval.requested.enabled=false
    journal.email.article.approval.requested.subject=com/liferay/portlet/journal/dependencies/email_article_approval_requested_subject.tmpl
    journal.email.article.approval.requested.body=com/liferay/portlet/journal/dependencies/email_article_approval_requested_body.tmpl

Defaults:

    journal.email.article.review.enabled=true
    journal.email.article.review.subject=com/liferay/portlet/journal/dependencies/email_article_review_subject.tmpl
    journal.email.article.review.body=com/liferay/portlet/journal/dependencies/email_article_review_body.tmpl

Defaults:

    journal.email.article.updated.enabled=true
    journal.email.article.updated.subject=com/liferay/portlet/journal/dependencies/email_article_updated_subject.tmpl
    journal.email.article.updated.body=com/liferay/portlet/journal/dependencies/email_article_updated_body.tmpl


Specify the strategy used when Journal content is imported using the LAR system.

Defaults:

    journal.lar.creation.strategy=com.liferay.portlet.journal.lar.JournalCreationStrategyImpl


Specify the path to the template used for providing error messages on Journal templates.

Defaults:

    journal.error.template[ftl]=com/liferay/portlet/journal/dependencies/error.ftl
    journal.error.template[vm]=com/liferay/portlet/journal/dependencies/error.vm
    journal.error.template[xsl]=com/liferay/portlet/journal/dependencies/error.xsl


Top of Page

Journal Articles Portlet


Set the available values for the number of articles to display per page.

Defaults:

    journal.articles.page.delta.values=5,10,20,30,50,75


Set this to true to search articles from the index. Set this to false to search articles from the database. Note that setting this to false will disable searching articles based on Expando attributes or Message Boards discussions or article versions.

Defaults:

    journal.articles.search.with.index=true

Journal Content Portlet


Top of Page

Journal Content Search Portlet


Set whether unlisted articles are excluded from search results.

Defaults:

    journal.content.search.show.listed=true


Top of Page

Login Portlet


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=anonymous,sign-in,facebook,open-id
    login.form.navigation.post=create-account,forgot-password


Top of Page

Message Boards Portlet


Configure email notification settings.

Defaults:

    message.boards.email.from.name=
    message.boards.email.from.address=
    message.boards.email.bulk=true
    message.boards.email.html.format=true

Defaults:

    message.boards.email.message.added.enabled=true
    message.boards.email.message.added.subject=com/liferay/portlet/messageboards/dependencies/email_message_added_subject.tmpl
    message.boards.email.message.added.body=com/liferay/portlet/messageboards/dependencies/email_message_added_body.tmpl
    message.boards.email.message.added.signature=com/liferay/portlet/messageboards/dependencies/email_message_added_signature.tmpl

Defaults:

    message.boards.email.message.updated.enabled=true
    message.boards.email.message.updated.subject=com/liferay/portlet/messageboards/dependencies/email_message_updated_subject.tmpl
    message.boards.email.message.updated.body=com/liferay/portlet/messageboards/dependencies/email_message_updated_body.tmpl
    message.boards.email.message.updated.signature=com/liferay/portlet/messageboards/dependencies/email_message_updated_signature.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,question


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 minutes on how often this job is run. If a user's ban is set to expire at 12:05 PM and the job runs at 2 PM, the expire will occur during the 2 PM run.

Defaults:

    message.boards.expire.ban.job.interval=120


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=10

Examples:

    message.boards.expire.ban.interval=0


Set this to true to enable pingbacks.

Defaults:

    message.boards.pingback.enabled=true

Defaults:

    message.boards.rss.abstract.length=200


Set this to true to enable previous and next navigation for message board threads.

Defaults:

    message.boards.thread.previous.and.next.navigation.enabled=true


Set the allowed thread views and the default thread view.

Defaults:

    message.boards.thread.views=combination,flat,tree
    message.boards.thread.views.default=combination


Set this to true if message boards should be published to live by default.

Defaults:

    message.boards.publish.to.live.by.default=false


Top of Page

My Places Portlet


Set the display style for the My Places navigation menu.

Defaults:

    my.sites.display.style=simple

Examples:

    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


Top of Page

Navigation Portlet


Set the name of the display style which will be used by default.

Defaults:

    navigation.display.style.default=relative-with-breadcrumb


Specify the options that will be provided to the user in the edit configuration mode of the portlet.

Defaults:

    navigation.display.style.options=relative-with-breadcrumb,from-level-2-with-title,from-level-1-with-title,from-level-1,from-level-1-to-all-sublevels,from-level-0


Define each mode with four comma delimited strings that represent the form: headerType, rootLayoutType, rootLayoutLevel, includedLayouts, and nestedChildren.

Defaults:

    navigation.display.style[relative-with-breadcrumb]=breadcrumb,relative,0,auto,true
    navigation.display.style[from-level-2-with-title]=root-layout,absolute,2,auto,true
    navigation.display.style[from-level-1-with-title]=root-layout,absolute,1,auto,true
    navigation.display.style[from-level-1]=none,absolute,1,auto,true
    navigation.display.style[from-level-1-to-all-sublevels]=none,absolute,1,all,true
    navigation.display.style[from-level-0]=none,absolute,0,auto,true


Top of Page

Nested Portlets Portlet


Set the id of the layout template which will be used by default.

Defaults:

    nested.portlets.layout.template.default=2_columns_i


Add a comma delimited list of layout template ids that should not be allowed in the Nested Portlets portlet.

Defaults:

    nested.portlets.layout.template.unsupported=freeform,1_column


Top of Page

Portlet CSS Portlet


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


Top of Page

Ratings Tag Library


Set the number of stars that will be used by the ratings tag library by default.

Defaults:

    ratings.default.number.of.stars=5


Set the number of max score and min score that will be used by the ratings tag library for each model.

Defaults:

    ratings.max.score[com.liferay.portlet.messageboards.model.MBDiscussion]=1
    ratings.min.score[com.liferay.portlet.messageboards.model.MBDiscussion]=-1

Defaults:

    ratings.max.score[com.liferay.portlet.messageboards.model.MBMessage]=1
    ratings.min.score[com.liferay.portlet.messageboards.model.MBMessage]=-1


Top of Page

Recent Content Portlet


Configure maximum number of items to display per type in the Recent Content portlet.

Defaults:

    recent.content.max.display.items=5


Top of Page

RSS Portlet


Set the HTTP connection timeout in milliseconds for reading RSS feeds.

Defaults:

    rss.connection.timeout=2000


Top of Page

Search Portlet


Set the location of the default JSON object for the facets configured in the Search portlet.

Defaults:

    search.facet.configuration=com/liferay/portlet/search/dependencies/facet_configuration.json


Set any of these to false to disable the portlet from being searched by the Search portlet.

Defaults:

    com.liferay.portlet.blogs.util.BlogsOpenSearchImpl=true
    com.liferay.portlet.bookmarks.util.BookmarksOpenSearchImpl=true
    com.liferay.portlet.directory.util.DirectoryOpenSearchImpl=true
    com.liferay.portlet.documentlibrary.util.DLOpenSearchImpl=true
    com.liferay.portlet.journal.util.JournalOpenSearchImpl=true
    com.liferay.portlet.messageboards.util.MBOpenSearchImpl=true
    com.liferay.portlet.wiki.util.WikiOpenSearchImpl=true


Top of Page

My Sites Directory


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=


Top of Page

Sites Admin Portlet


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


Input a list of sections that will be included as part of the form when adding a site.

Defaults:

    sites.form.add.main=details,categorization
    sites.form.add.seo=
    sites.form.add.advanced=
    sites.form.add.miscellaneous=


Input a list of sections that will be included as part of the form when updating a site.

Defaults:

    sites.form.update.main=details,categorization,site-url,site-template
    sites.form.update.seo=sitemap,robots
    sites.form.update.advanced=default-user-associations,staging,analytics,content-sharing,recycle-bin
    sites.form.update.miscellaneous=custom-fields,display-settings


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=2

Examples:

    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.tmpl

Defaults:

    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=


Top of Page

Shopping Portlet


Set this to true if cart quantities must be a multiple of the item's minimum quantity.

Defaults:

    shopping.cart.min.qty.multiple=true


Set this to true to forward to the cart page when adding an item from the category page. The item must not have dynamic fields. All items with dynamic fields will forward to the item's details page regardless of the following setting.

Defaults:

    shopping.category.forward.to.cart=false


Set this to true to show special items when browsing a category.

Defaults:

    shopping.category.show.special.items=false


Set this to true to show availability when viewing an item.

Defaults:

    shopping.item.show.availability=true


Set the maximum file size and valid file extensions for images. 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".

Defaults:

    shopping.image.small.max.size=51200
    shopping.image.medium.max.size=153600
    shopping.image.large.max.size=307200


A file extension of * will permit all file extensions.

Defaults:

    shopping.image.extensions=.gif,.jpeg,.jpg,.png


Configure email notification settings.

Defaults:

    shopping.email.from.name=
    shopping.email.from.address=

Defaults:

    shopping.email.order.confirmation.enabled=true
    shopping.email.order.confirmation.subject=com/liferay/portlet/shopping/dependencies/email_order_confirmation_subject.tmpl
    shopping.email.order.confirmation.body=com/liferay/portlet/shopping/dependencies/email_order_confirmation_body.tmpl

Defaults:

    shopping.email.order.shipping.enabled=true
    shopping.email.order.shipping.subject=com/liferay/portlet/shopping/dependencies/email_order_shipping_subject.tmpl
    shopping.email.order.shipping.body=com/liferay/portlet/shopping/dependencies/email_order_shipping_body.tmpl


Set this to true to enable comments for shopping orders.

Defaults:

    shopping.order.comments.enabled=true


Top of Page

Site Map Portlet


Set the location of the XML file containing the configuration of the default display templates for the Site Map portlet.

Defaults:

    sitemap.display.templates.config=com/liferay/portlet/sitemap/dependencies/portlet-display-templates.xml


Top of Page

Software Catalog Portlet


Set the maximum file size and dimensions for thumbnails. 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".

Defaults:

    sc.image.max.size=307200
    sc.image.thumbnail.max.height=200
    sc.image.thumbnail.max.width=160


Set this to true to enable comments for software catalog products.

Defaults:

    sc.product.comments.enabled=true


Top of Page

Tags Compiler Portlet


Set this to true to enable the ability to compile tags from the URL. Disabling it can speed up performance.

Defaults:

    tags.compiler.enabled=true


Top of Page

Translator Portlet


Input a list of comma delimited languages.

Defaults:

    translator.languages=ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi_IN,ht,hu,in,it,iw,ja,ko,lt,lv,mww,nb,nl,pl,pt_PT,ro,ru,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW


Set the default languages to translate a given text.

Defaults:

    translator.default.languages=en_es


Top of Page

Trash


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=true

Examples:

    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 or in Site Settings for each Site.

Defaults:

    trash.entries.max.age=43200


Top of Page

Wiki Portlet


Set the location of the XML file containing the configuration of the default display templates for the Wiki portlet.

Defaults:

    wiki.display.templates.config=com/liferay/portlet/wiki/dependencies/portlet-display-templates.xml


Set the name of the default page for a wiki node. The name for the default page must be a valid wiki word. A wiki word follows the format of having an upper case letter followed by a series of lower case letters followed by another upper case letter and another series of lower case letters. See http://www.usemod.com/cgi-bin/wiki.pl?WhatIsaWiki for more information on wiki naming conventions.

Defaults:

    wiki.front.page.name=FrontPage


Set the name of the default node that will be automatically created when the Wiki portlet is first used in a site.

Defaults:

    wiki.initial.node.name=Main


Specify the requirements for the names of wiki pages. By default only a few characters are forbidden. Uncomment the regular expression below to allow only CamelCase titles.

Defaults:

    wiki.page.titles.regexp=([^\\\\\\[\\]\\|:;%<>]+)

Examples:

    wiki.page.titles.regexp=(((\\p{Lu}\\p{Ll}+)_?)+)


Specify the characters that will be automatically removed from the titles when importing wiki pages. This regexp should remove any characters that are forbidden in the regexp specified in the property "wiki.page.titles.regexp".

Defaults:

    wiki.page.titles.remove.regexp=([\\\\\\[\\]\\|:;%<>]+)


Set this to true to enable ratings for wiki pages.

Defaults:

    wiki.page.ratings.enabled=true


Set this to true to enable comments for wiki pages.

Defaults:

    wiki.page.comments.enabled=true


Set this to true to enable social activity notifications on minor edits of a wiki page.

Defaults:

    wiki.page.minor.edit.add.social.activity=true


Set this to true to enable email notifications on minor edits of a wiki page.

Defaults:

    wiki.page.minor.edit.send.email=false


Set the list of supported wiki formats and the default wiki format.

Defaults:

    wiki.formats=creole,html,mediawiki
    wiki.formats.default=creole


Configure settings for each of the wiki formats.

Defaults:

    wiki.formats.engine[creole]=com.liferay.portlet.wiki.engines.antlrwiki.CreoleWikiEngine
    wiki.formats.configuration.main[creole]=jspwiki.properties
    wiki.formats.edit.page[creole]=/html/portlet/wiki/edit/wiki.jsp
    wiki.formats.help.page[creole]=/html/portlet/wiki/help/creole.jsp
    wiki.formats.help.url[creole]=http://www.wikicreole.org/wiki/Creole1.0

Examples:

    wiki.formats.engine[creole]=com.liferay.portlet.wiki.engines.jspwiki.JSPWikiEngine

Defaults:

    wiki.formats.engine[html]=com.liferay.portlet.wiki.engines.HtmlEngine
    wiki.formats.edit.page[html]=/html/portlet/wiki/edit/html.jsp

Defaults:

    wiki.formats.engine[mediawiki]=com.liferay.portlet.wiki.engines.mediawiki.MediaWikiEngine
    wiki.formats.edit.page[mediawiki]=/html/portlet/wiki/edit/wiki.jsp
    wiki.formats.help.page[mediawiki]=/html/portlet/wiki/help/mediawiki.jsp
    wiki.formats.help.url[mediawiki]=http://www.mediawiki.org/wiki/Help:Formatting

Defaults:

    wiki.formats.engine[plain_text]=com.liferay.portlet.wiki.engines.TextEngine
    wiki.formats.edit.page[plain_text]=/html/portlet/wiki/edit/plain_text.jsp


Set the list of supported wiki importers.

Defaults:

    wiki.importers=MediaWiki


Configure settings for each of the wiki importers.

Defaults:

    wiki.importers.page[MediaWiki]=/html/portlet/wiki/import/mediawiki.jsp
    wiki.importers.class[MediaWiki]=com.liferay.portlet.wiki.importers.mediawiki.MediaWikiImporter


Configure email notification settings.

Defaults:

    wiki.email.from.name=
    wiki.email.from.address=

Defaults:

    wiki.email.page.added.enabled=true
    wiki.email.page.added.subject=com/liferay/portlet/wiki/dependencies/email_page_added_subject.tmpl
    wiki.email.page.added.body=com/liferay/portlet/wiki/dependencies/email_page_added_body.tmpl
    wiki.email.page.added.signature=com/liferay/portlet/wiki/dependencies/email_page_added_signature.tmpl

Defaults:

    wiki.email.page.updated.enabled=true
    wiki.email.page.updated.subject=com/liferay/portlet/wiki/dependencies/email_page_updated_subject.tmpl
    wiki.email.page.updated.body=com/liferay/portlet/wiki/dependencies/email_page_updated_body.tmpl
    wiki.email.page.updated.signature=com/liferay/portlet/wiki/dependencies/email_page_updated_signature.tmpl

Defaults:

    wiki.rss.abstract.length=200