Liferay Portal 4.3 Configuration

Introduction

To see the default values of the Liferay 4.3 portal, you need to crack open portal-impl.jar. Inside this is portal.properties. I've included this file on this page and it contains many useful settings for configuring the Liferay Portal.

foo

##
## Properties Override
##

    #
    # Specify where to get the overridden properties. Updates should not be made
    # on this file but on the overridden version of this file. Furthermore, each
    # portal instance can have its own overriden property file following the
    # convention portal-companyid.properties.
    #
    # For example, one read order may be: portal.properties, then
    # portal-ext.properties, then portal-liferay.com.properties.
    #
    include-and-override=portal-ext.properties
    include-and-override=portal-${easyconf:companyId}.properties
    include-and-override=portal-test.properties

##
## Portal Context
##

    #
    # Specify the path of the portal servlet context. This is needed because
    # javax.servlet.ServletContext does not have access to the context path
    # until Java EE 5.
    #
    # Set this property if you deploy the portal to another path besides root.
    #
    portal.ctx=/

##
## Resource Repositories Root
##

    #
    # Specify the default root path for various repository and resource paths.
    #
    resource.repositories.root=${user.home}/liferay

##
## Error
##

    #
    # Set the following to true to log the error message.
    #
    error.message.log=true

    #
    # Set the following to true to print the error message to the console.
    #
    error.message.print=false

    #
    # Set the following to true to show the error message to the user.
    #
    error.message.show=true

    #
    # Set the following to true to log the stack trace.
    #
    error.stack.trace.log=false

    #
    # Set the following to true to print the stack trace to the console.
    #
    error.stack.trace.print=true

    #
    # Set the following to true to show the stack trace to the user.
    #
    error.stack.trace.show=false

##
## TCK
##

    #
    # Set the following 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.
    #
    tck.url=false

##
## Schema
##

    #
    # Set this to true to automatically create tables and populate with default
    # data if the database is empty.
    #
    schema.run.enabled=true

    #
    # Set this to to true to populate with the minimal amount of data. Set this
    # to false to populate with a larger amount of sample data.
    #
    schema.run.minimal=false

##
## 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.
    #
    upgrade.processes=\
        com.liferay.portal.upgrade.UpgradeProcess_4_3_0,\
    com.liferay.portal.upgrade.UpgradeProcess_4_3_1

##
## Verify
##

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

##
## 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.
    #
    auto.deploy.listeners=\
        com.liferay.portal.deploy.auto.LayoutTemplateAutoDeployListener,\
        com.liferay.portal.deploy.auto.PortletAutoDeployListener,\
        com.liferay.portal.deploy.auto.ThemeAutoDeployListener,\
        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 the following to true to enable auto deploy of layout templates,
    # portlets, and themes.
    #
    auto.deploy.enabled=true

    #
    # Set the directory to scan for layout templates, portlets, and themes to
    # auto deploy.
    #
    auto.deploy.deploy.dir=${resource.repositories.root}/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 "../webapps" whereas JBoss listens on
    # "../server/default/deploy".
    #
    auto.deploy.dest.dir=../webapps
    #auto.deploy.dest.dir=../server/default/deploy
    #auto.deploy.dest.dir=../../webapps/autoload

    #
    # Set the interval in milliseconds on how often to scan the directory for
    # changes.
    #
    auto.deploy.interval=10000

    #
    # Set the number of attempts to deploy a file before blacklisting it.
    #
    auto.deploy.blacklist.threshold=10

    #
    # Set the following to true if deployed WARs are unpacked. Set this to false
    # your application server has concurrency issues with deploying large WARs.
    #
    auto.deploy.unpack.war=true

    #
    # Set the following 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.
    #
    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.
    #
    auto.deploy.jboss.prefix=

    #
    # Set the path to Tomcat's configuration directory. This property is used to
    # auto deploy exploded WARs. Tomcat context XML fiels 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.
    #
    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.
    #
    auto.deploy.tomcat.lib.dir=../common/lib/ext

    #
    # Set the URLs of Libraries that might be needed to download during the
    # auto deploy process
    #
    library.download.url.quercus.jar=http://lportal.svn.sourceforge.net/viewvc/*checkout*/lportal/portal/trunk/lib/development/quercus.jar
    library.download.url.resin-util.jar=http://lportal.svn.sourceforge.net/viewvc/*checkout*/lportal/portal/trunk/lib/development/resin-util.jar
    library.download.url.script-10.jar=http://lportal.svn.sourceforge.net/viewvc/*checkout*/lportal/portal/trunk/lib/development/script-10.jar

##
## 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.
    #
    # Note: PluginPackageHotDeployListener must always be first.
    #
    hot.deploy.listeners=\
        com.liferay.portal.deploy.hot.PluginPackageHotDeployListener,\
        com.liferay.portal.deploy.hot.LayoutTemplateHotDeployListener,\
        com.liferay.portal.deploy.hot.PortletHotDeployListener,\
        com.liferay.portal.deploy.hot.ThemeHotDeployListener,\
        com.liferay.portal.deploy.hot.ThemeLoaderHotDeployListener

##
## Plugin
##

    #
    # Input a list of comma delimited supported plugin types.
    #
    plugin.types=portlet,theme,layout-template

    #
    # Input a list of Liferay plugin repositories separated by \n chararcters.
    #
    plugin.repositories=http://plugins.liferay.com/official\nhttp://plugins.liferay.com/community

##
## Portlet
##

    #
    # Set this property to set the default virtual path for all hot deployed
    # portlets. See liferay-portlet-app_4_3_0.dtd and the virtual-path element
    # for more information.
    #
    portlet.virtual.path=

##
## Theme
##

    #
    # Set this property to set the default virtual path for all hot deployed
    # themes. See liferay-look-and-feel_4_3_0.dtd and the virtual-path element
    # for more information.
    #
    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.
    #
    theme.loader.storage.path=

##
## Resource Actions
##

    #
    # Input a list of comma delimited resource action configurations that will
    # be read from the class path.
    #
    resource.actions.configs=resource-actions/default.xml

##
## Model Hints
##

    #
    # Input a list of comma delimited model hints configurations.
    #
    model.hints.configs=\
        META-INF/portal-model-hints.xml,\
        META-INF/workflow-model-hints.xml,\
        META-INF/ext-model-hints.xml

##
## Spring
##

    #
    # Input a list of comma delimited Spring configurations. The file name will
    # be namespaced depending on the release of the portal if and only if the
    # specified file name ends with spring.xml.
    #
    # For example, if you are starting Liferay Portal Professional, then
    # META-INF/counter-spring-professional.xml will be loaded. If you are
    # starting Liferay Portal Enterprise, then
    # META-INF/counter-spring-enterprise.xml will be loaded.
    #
    # Certain configurations, like mail-spring-jms.xml, are shared by both
    # professional and enterprise editions and will not be automatically
    # namespaced because it does not end with spring.xml.
    #
    spring.configs=\
        META-INF/activemq-spring-jms.xml,\
        META-INF/data-source-spring.xml,\
        META-INF/misc-spring.xml,\
        META-INF/counter-spring.xml,\
        META-INF/documentlibrary-spring.xml,\
        META-INF/documentlibrary-spring-jms.xml,\
        META-INF/lock-spring.xml,\
        META-INF/mail-spring.xml,\
        META-INF/mail-spring-jms.xml,\
        META-INF/portal-spring.xml,\
        META-INF/portal-spring-jcr.xml,\
        META-INF/portal-spring-jms.xml,\
        META-INF/ext-spring.xml

    #
    # Set the bean name for the Liferay data source.
    #
    spring.hibernate.data.source=liferayDataSource

    #
    # Set the bean name for the Liferay session factory.
    #
    spring.hibernate.session.factory=&liferaySessionFactory

##
## Hibernate
##

    #
    # Input a list of comma delimited Hibernate configurations.
    #
    hibernate.configs=\
        META-INF/counter-hbm.xml,\
        META-INF/mail-hbm.xml,\
        META-INF/portal-hbm.xml,\
        META-INF/ext-hbm.xml

    #
    # Use the Liferay SQL dialect because it will automatically detect the proper
    # SQL dialect based on your connection URL.
    #
    hibernate.dialect=com.liferay.portal.spring.hibernate.DynamicDialect

    #
    # 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.
    #
    #hibernate.connection.release_mode=on_close

    #
    # Set the Hibernate cache provider. Ehcache is recommended in a clustered
    # environment. See the property "net.sf.ehcache.configurationResourceName"
    # for detailed configuration.
    #
    hibernate.cache.provider_class=net.sf.ehcache.hibernate.EhCacheProvider
    #hibernate.cache.provider_class=net.sf.hibernate.cache.HashtableCacheProvider
    #hibernate.cache.provider_class=com.liferay.portal.spring.hibernate.OSCacheProvider

    #
    # This property is used if Hibernate is configured to use Ehcache's
    # cache provider.
    #
    net.sf.ehcache.configurationResourceName=/ehcache/hibernate.xml

    #
    # Set other Hibernate cache settings.
    #
    hibernate.cache.use_query_cache=true
    hibernate.cache.use_second_level_cache=true
    hibernate.cache.use_minimal_puts=true
    hibernate.cache.use_structured_entries=false

    #
    # Uncomment these properties to disable Hibernate caching.
    #
    #hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider
    #hibernate.cache.use_query_cache=false
    #hibernate.cache.use_second_level_cache=false

    #
    # Set the JDBC batch size to improve performance. However, 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 http://support.liferay.com/browse/LEP-1234
    # for more information.
    #
    hibernate.jdbc.batch_size=20
    #hibernate.jdbc.batch_size=0

    #
    # Set other miscellaneous Hibernate properties.
    #
    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.
    #
    hibernate.query.factory_class=org.hibernate.hql.classic.ClassicQueryTranslatorFactory

##
## Custom SQL
##

    #
    # Input a list of comma delimited custom SQL configurations.
    #
    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.hibernate.DynamicDialect already sets it.
    # However, these properties are set so that you can see how you can override
    # it for a database that DynamicDialect does not yet know how to auto
    # configure.
    #

    #
    # DB2
    #
    #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)
    #
    #custom.sql.function.isnull=IFNULL(?, '1') = '1'
    #custom.sql.function.isnotnull=IFNULL(?, '1') = '0'

    #
    # Sybase
    #
    #custom.sql.function.isnull=ISNULL(?, '1') = '1'
    #custom.sql.function.isnotnull=ISNULL(?, '1') = '0'

##
## 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.
    #
    ehcache.single.vm.config.location=/ehcache/liferay-single-vm.xml
    ehcache.multi.vm.config.location=/ehcache/liferay-multi-vm.xml

##
## Commons Pool
##

    #
    # Commons Pool is used to pool and recycle objects that are used very often.
    # This can help lower memory usage. There is some debate over the
    # synchronization issues related to Commons Pool. Set this to false to
    # disable object pooling.
    #
    commons.pool.enabled=true

##
## JavaScript
##

    #
    # Set a list of JavaScript files that will be loaded programmatically in
    # /html/common/themes/top_js.jsp.
    #
    # The ordering of the JavaScript files is important. Specifically, all
    # JQuery scripts should go first.
    #
    # 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.
    #
    javascript.files=\
        \
        #
        # JQuery scripts
        #
        \
        jquery/jquery.js,\
        jquery/cookie.js,\
        jquery/dimensions.js,\
        jquery/hover_intent.js,\
        jquery/interface.js,\
        jquery/interface.patch.js,\
        jquery/j2browse.js,\
        jquery/jeditable.js,\
        jquery/json.js,\
        jquery/media.js,\
        jquery/tabs.js,\
        \
        #
        # Miscellaneous scripts
        #
        \
        misc/class.js,\
        misc/swfobject.js,\
        \
        #
        # Liferay base utility scripts
        #
        \
        liferay/liferay.js,\
        liferay/browser.js,\
        liferay/util.js,\
        liferay/language.js,\
        liferay/layout.js,\
        \
        #
        # Liferay utility scripts
        #
        \
        liferay/ajax.js,\
        liferay/animate.js,\
        liferay/coordinates.js,\
        liferay/ldrag.js,\
        #liferay/leditable.js,\
        liferay/lresize.js,\
        liferay/popup.js,\
        liferay/portal.js,\
        liferay/portlet.js,\
        liferay/publisher.js,\
        liferay/service.js,\
        \
        #
        # Liferay modules
        #
        \
        liferay/auto_fields.js,\
        liferay/color_picker.js,\
        liferay/columns.js,\
        liferay/dock.js,\
        liferay/dynamic_select.js,\
        liferay/freeform.js,\
        liferay/layout_configuration.js,\
        liferay/messaging.js,\
        liferay/notice.js,\
        liferay/portlet_css.js,\
        liferay/navigation.js,\
        liferay/session.js,\
        liferay/tags_selector.js,\
        \
        #
        # Calendar
        #
        \
        calendar/calendar_stripped.js,\
        calendar/calendar-setup_stripped.js

    #
    # Set this property to true to load the combined JavaScript files from the
    # property "javascript.files" into one compacted file 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 "js_fast_load" to "0".
    #
    javascript.fast.load=false

    #
    # Set the following to true to enable the display of JavaScript logging.
    #
    javascript.log.enabled=false

##
## Company
##

    #
    # This sets the default web id. Omniadmin users must belong to the company
    # with this web id.
    #
    company.default.web.id=liferay.com

    #
    # The portal can authenticate users based on their email address, screen
    # name, or user id.
    #
    company.security.auth.type=emailAddress
    #company.security.auth.type=screenName
    #company.security.auth.type=userId

    #
    # Set the following to true to allow users to select the "remember me"
    # feature to automatically login to the portal.
    #
    company.security.auto.login=true

    #
    # Set the following to the maximum age (in number of seconds) of the browser
    # cookie that enables the "remember me" feature. A value of 31536000
    # signifies a 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.
    #
    company.security.auto.login.max.age=31536000

    #
    # Set the following to true to allow users to ask the portal to send them
    # their password.
    #
    company.security.send.password=true

    #
    # Set the following to true to allow strangers to create accounts and
    # register themselves on the portal.
    #
    company.security.strangers=false

    #
    # Set the following to true to allow community administrators to use their
    # own logo instead of the enterprise logo.
    #
    company.security.community.logo=true

##
## Users
##

    #
    # Set the following to false if users cannot be deleted.
    #
    users.delete=true

    #
    # Set the following to true to always autogenerate user screen names even if
    # the user gives a specific user screen name.
    #
    users.screen.name.always.autogenerate=false

    #
    # Input a class name that extends
    # com.liferay.portal.security.auth.ScreenNameGenerator. This class will be
    # called to generate user screen names.
    #
    users.screen.name.generator=com.liferay.portal.security.auth.ScreenNameGenerator

    #
    # Input a class name that extends
    # com.liferay.portal.security.auth.ScreenNameValidator. This class will be
    # called to validate user ids.
    #
    users.screen.name.validator=com.liferay.portal.security.auth.ScreenNameValidator
    #users.screen.name.validator=com.liferay.portal.security.auth.LiberalScreenNameValidator

    #
    # 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 by the system is set in
    # property "com.liferay.util.servlet.UploadServletRequest.max.size" found
    # in system.properties.
    #
    users.image.max.size=307200

##
## 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.
    #
    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.
    #
    system.roles=

    #
    # Input a list of comma delimited system community role names that will
    # exist in addition to the standard system community roles. When the server
    # starts, the portal checks to ensure all system community roles exist. Any
    # missing system community role will be created by the portal.
    #
    system.community.roles=

    #
    # 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, and
    # 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.
    #
    omniadmin.users=

    #
    # Set the following to true if all users can personalize pages. If set to
    # false, only Administrators and Power Users can personalize.
    #
    universal.personalization=false

    #
    # Set the following to true if all users are required to agree to the terms
    # of use.
    #
    terms.of.use.required=true

##
## Organizations and Locations
##

    #
    # Set the following to true if users must belong to a parent organization.
    #
    organizations.parent.organization.required=false

    #
    # Set the following to true if users must belong to a location. If location
    # is required, then a parent organization is also required.
    #
    organizations.location.required=false

##
## 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.
    #
    # All locales must use UTF-8 encoding.
    #
    # See the following links specifiy language and country codes:
    #     http://ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt
    #     http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html
    #
    locales=ar_SA,ca_AD,ca_ES,zh_CN,zh_TW,cs_CZ,nl_NL,en_US,fi_FI,fr_FR,de_DE,el_GR,hu_HU,it_IT,ja_JP,ko_KR,fa_IR,pt_BR,ru_RU,es_ES,sv_SE,tr_TR,vi_VN

    #
    # Set the following to true if unauthenticated users get their preferred
    # language from the Accept-Language header. Set the following to false if
    # unauthenticated users get their preferred language from their company.
    #
    locale.default.request=false

    #
    # Specify the available time zones. The specified ids must match those from
    # the class java.util.TimeZone.
    #
    time.zones=Pacific/Midway,Pacific/Honolulu,AST,PST,MST,CST,EST,PRT,CNT,BET,America/Noronha,Atlantic/Azores,GMT,WET,CET,EET,Asia/Jerusalem,Asia/Baghdad,Iran,Asia/Dubai,Asia/Kabul,Asia/Karachi,IST,Asia/Katmandu,Asia/Dhaka,Asia/Rangoon,VST,CTT,JST,ROK,ACT,AET,SST,NST,Pacific/Enderbury,Pacific/Kiritimati

##
## Look and Feel
##

    #
    # Set the following to false if the system does not use allow users to
    # modify the look and feel.
    #
    look.and.feel.modifiable=true

    #
    # Set the default theme id for regular themes.
    #
    default.regular.theme.id=classic

    #
    # Set the default color scheme id for regular themes.
    #
    default.regular.color.scheme.id=01

    #
    # Set the default theme id for wap themes.
    #
    default.wap.theme.id=mobile

    #
    # Set the default color scheme id for wap themes.
    #
    default.wap.color.scheme.id=01

    #
    # Set the following 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).
    #
    theme.sync.on.group=false

##
## 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.
    #
    request.shared.attributes=LIFERAY_SHARED_

##
## Session
##

    #
    # Specify the number of minutes before a session expires. This value is
    # always overridden by the value set in web.xml.
    #
    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.
    #
    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
    # browser is open and 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.
    #
    session.timeout.auto.extend=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.
    #
    session.shared.attributes=org.apache.struts.action.LOCALE,COMPANY_,USER_

    #
    # Set this to false to disable all persistent cookie. Features like
    # automatically logging in will not work.
    #
    session.enable.persistent.cookies=true

    #
    # The login process sets several cookies if persistent cookies are enabled.
    # Set this property to set the domain of those cookies.
    #
    #session.cookie.domain=

    #
    # Set the following to true to invalidate the session when a user logs into
    # the portal. This helps prevents phishing. Set this to false if you need
    # the guest user and the authenticated user to have the same session.
    #
    session.enable.phishing.protection=true

    #
    # Set the following 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.
    #
    session.test.cookie.support=true

    #
    # Set the following 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".
    #
    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
    #
    servlet.session.create.events=com.liferay.portal.events.SessionCreateAction

    #
    # Servlet session destroy event
    #
    servlet.session.destroy.events=com.liferay.portal.events.SessionDestroyAction

    #
    # Set the following 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.
    #
    session.tracker.memory.enabled=true

    #
    # Set the following 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.
    #
    session.tracker.persistence.enabled=false

    #
    # Enter a list of comma delimited paths that should not be tracked.
    #
    session.tracker.ignore.paths=\
        /portal/ajax,\
        /portal/css_cached,\
        /portal/javascript_cached,\
        /portal/render_portlet

##
## JAAS
##

    #
    # Set the following to true if the portal will use
    # com.liferay.portal.security.jaas.PortalConfiguration as the JAAS master
    # configuration.
    #
    portal.configuration=true

    #
    # Set the following 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.
    #
    portal.jaas.enable=false

    #
    # 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.
    #
    #portal.jaas.impl=

    #
    # 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.
    #
    portal.jaas.strict.password=false

    #
    # Set the following to true to enable administrators to impersonate other
    # users. JAAS must also be disabled for this feature to work.
    #
    portal.impersonation.enable=true

##
## LDAP
##

    #
    # Set the values used to connect to a LDAP store.
    #
    ldap.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
    ldap.base.provider.url=ldap://localhost:10389
    ldap.base.dn=dc=example,dc=com
    ldap.security.principal=uid=admin,ou=system
    ldap.security.credentials=secret

    #
    # Settings for com.liferay.portal.security.auth.LDAPAuth can be configured
    # from the Admin portlet. It provides out of the box support for Apache
    # Directory Server, Microsoft Active Directory Server, Novell eDirectory,
    # and OpenLDAP. The default settings are for 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.
    #
    ldap.auth.enabled=false
    ldap.auth.required=false

    #
    # 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.
    #
    ldap.auth.method=bind

    #
    # 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 similiar 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
    #
    ldap.auth.search.filter=(mail=@email_address@)
    ldap.auth.password.encryption.algorithm=
    ldap.auth.password.encryption.algorithm.types=MD5,SHA

    #
    # The portal uses this DN value for two purposes. When searching for users
    # to import, the portal will search for users under this DN. Also, when
    # exporting a user, the portal will export the user to this DN.
    #
    ldap.users.dn=ou=users,dc=example,dc=com

    #
    # You can write your own class that extends
    # com.liferay.portal.security.ldap.LDAPUser to customize the behavior for
    # exporting portal users to the LDAP store.
    #
    ldap.user.impl=com.liferay.portal.security.ldap.LDAPUser

    #
    # When a user is exported to LDAP and the user does not exist, the user will
    # be created with the following default object classes.
    #
    ldap.user.default.object.classes=top,person,inetOrgPerson,organizationalPerson

    #
    # When importing and exporting users, the portal will use this mapping to
    # connect LDAP user attributes and portal user variables
    #
    ldap.user.mappings=screenName=cn\npassword=userPassword\nemailAddress=mail\nfirstName=givenName\nlastName=sn\njobTitle=title\ngroup=groupMembership

    #
    # The portal uses this DN value for two purposes.  When searching for groups
    # to import, the portal will search for groups under this DN.  Also, when
    # exporting a group, the portal will export the group to this DN.
    #
    ldap.groups.dn=ou=groups,dc=example,dc=com

    #
    # When importing groups, the portal will use this mapping to connect LDAP
    # group attributes and portal user group variables.
    #
    ldap.group.mappings=groupName=cn\ndescription=description\nuser=uniqueMember

    #
    # Settings for importing users and groups from LDAP to the portal.
    #
    ldap.import.enabled=false
    ldap.import.on.startup=false
    ldap.import.interval=10
    ldap.import.user.search.filter=(objectClass=inetOrgPerson)
    ldap.import.group.search.filter=(objectClass=groupOfUniqueNames)

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

    #
    # 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 get pushed to the LDAP server. This will only be active if the
    # property "ldap.auth.enabled" is also set to true.
    #
    ldap.export.enabled=true

    #
    # Set this to true to use the LDAP's password policy instead of the portal
    # password policy.
    #
    ldap.password.policy.enabled=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.
    #
    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

##
## 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.
    #
    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.
    #
    cas.import.from.ldap=false

    #
    # Set the default values for the required CAS URLs.
    #
    cas.login.url=https://localhost:8443/cas-web/login
    cas.logout.url=https://localhost:8443/cas-web/logout
    cas.service.url=http://localhost:8080/c/portal/login
    cas.validate.url=https://localhost:8443/cas-web/proxyValidate

##
## 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.
    #
    ntlm.auth.enabled=false

##
## 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.
    #
    open.id.auth.enabled=true

##
## 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.
    #
    # Constants in Authenticator:
    #     public static final int SUCCESS = 1;
    #     public static final int FAILURE = -1;
    #     public static final int DNE = 0;
    #
    # In case you have several classes in the authentication pipeline, all of
    # them have to return SUCCESS if you want the user to be able to login. If
    # one of the authenticators returns FAILURE or DNE, 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.
    #
    auth.pipeline.pre=com.liferay.portal.security.auth.LDAPAuth
    #auth.pipeline.post=

    #
    # Set this to true to enable password checking by the internal portal
    # authentication. If set to false, you're essentially delegating password
    # checking is delegated to the authenticators configured in
    # "auth.pipeline.pre" and "auth.pipeline.post" settings.
    #
    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.
    #
    auth.failure=com.liferay.portal.security.auth.LoginFailure
    auth.max.failures=com.liferay.portal.security.auth.LoginMaxFailures
    auth.max.failures.limit=5

    #
    # Set the following to true if users are allowed to have simultaneous logins
    # from different sessions.
    #
    auth.simultaneous.logins=true

    #
    # Set the following 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.
    #
    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.
    #
    auth.forward.by.redirect=true

    #
    # Enter a list of comma delimited paths that can be considered part of the
    # last visited path.
    #
    auth.forward.last.paths=/document_library/get_file

    #
    # Enter a list of comma delimited paths that do not require authentication.
    #
    auth.public.paths=\
        /blogs/find_entry,\
        /blogs/rss,\
        \
        /bookmarks/open_entry,\
        \
        /document_library/get_file,\
        \
        /journal/get_article,\
        /journal/get_articles,\
        /journal/get_latest_article_content,\
        /journal/get_structure,\
        /journal/get_template,\
        /journal_articles/view_article_content,\
        \
        /message_boards/find_category,\
        /message_boards/find_message,\
        /message_boards/find_thread,\
        /message_boards/get_message_attachment,\
        /message_boards/rss,\
        \
        /messaging/action,\
        \
        /polls/view_chart,\
        \
        /portal/expire_session,\
        /portal/extend_session,\
        /portal/extend_session_confirm,\
        /portal/json_service,\
    /portal/logout,\
        /portal/open_id_request,\
        /portal/open_id_response,\
        /portal/session_click,\
        /portal/session_tree_js_click,\
        \
        /search/open_search,\
        /search/open_search_description.xml,\
        \
        /shopping/notify

##
## 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 return 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.
    #
    auto.login.hooks=com.liferay.portal.security.auth.CASAutoLogin,com.liferay.portal.security.auth.NtlmAutoLogin,com.liferay.portal.security.auth.OpenIdAutoLogin,com.liferay.portal.security.auth.RememberMeAutoLogin

##
## SSO with MAC (Message Authentication Code)
##

    #
    # To use SSO with MAC, post to an URL like:
    #     http://localhost:8080/c/portal/login?cmd=already-registered&login=<userId|emailAddress>&password=<MAC>
    #
    # 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://support.liferay.com/browse/LEP-1288
    #     http://en.wikipedia.org/wiki/Message_authentication_code
    #
    # Set the following to true to enable SSO with MAC.
    #
    auth.mac.allow=false

    #
    # Set the algorithm to use for MAC encryption.
    #
    auth.mac.algorithm=MD5

    #
    # Set the shared key used to generate the MAC.
    #
    auth.mac.shared.key=

##
## Passwords
##

    #
    # Set the following encryption algorithm to encrypt passwords. The default
    # algorithm is SHA (SHA-1). If set to NONE, passwords are stored in the
    # database as plain text. The SHA-512 algorithm is currently unsupported.
    #
    #passwords.encryption.algorithm=CRYPT
    #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

    #
    # Input a class name that extends
    # com.liferay.portal.security.pwd.BasicToolkit. This class will be called to
    # generate and validate passwords.
    #
    passwords.toolkit=com.liferay.portal.security.pwd.PasswordPolicyToolkit
    #passwords.toolkit=com.liferay.portal.security.pwd.RegExpToolkit

    #
    # If you choose to use com.liferay.portal.security.pwd.PasswordPolicyToolkit
    # as your password toolkit, you can choose either static or dynamic password
    # generation. Static is set through the property
    # "passwords.passwordpolicytoolkit.static" and dynamic uses the class
    # com.liferay.util.PwdGenerator to generate the password. If you are using
    # LDAP password syntax checking, you will also have to use the static
    # generator so that you can guarantee that passwords obey its rules.
    #
    passwords.passwordpolicytoolkit.generator=static
    #passwords.passwordpolicytoolkit.generator=dynamic
    passwords.passwordpolicytoolkit.static=iheartliferay

    #
    # 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.
    #
    passwords.regexptoolkit.pattern=(?=.{4})(?:[a-zA-Z0-9]*)
    #passwords.regexptoolkit.pattern=(?=.{8})(?:[a-zA-Z0-9]*)

    #
    # Set the name of the default password policy.
    #
    passwords.default.policy.name=Default Password Policy

##
## Permissions
##

    #
    # Set the default permission checker class used by
    # com.liferay.portal.security.permission.PermissionCheckerFactory to check
    # permissions for actions on objects. These classes can be overrided with
    # custom classes that extend
    # com.liferay.portal.security.permission.PermissionCheckerImpl.
    #
    permissions.checker=com.liferay.portal.security.permission.PermissionCheckerImpl

    #
    # Set the algorithm used to check permissions for a user. This is useful so
    # that you can optimize the search for different databases. See
    # com.liferay.portal.service.impl.PermissionLocalServiceImpl.
    #
    #permissions.user.check.algorithm=1
    permissions.user.check.algorithm=2
    #permissions.user.check.algorithm=3
    #permissions.user.check.algorithm=4

##
## 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.
    #
    captcha.max.challenges=1

##
## 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.
    #
    global.startup.events=com.liferay.portal.events.GlobalStartupAction

    #
    # Application startup event that runs once for every web site instance of
    # the portal that initializes.
    #
    application.startup.events=com.liferay.portal.events.AppStartupAction

##
## 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.
    #
    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.
    #
    application.shutdown.events=com.liferay.portal.events.AppShutdownAction

    #
    # 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://support.liferay.com/browse/LEP-2048 for more information.
    #
    shutdown.programmatically.exit=false

##
## Portal Events
##

    #
    # Input a list of comma delimited class names that extend
    # com.liferay.portal.struts.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.
    #
    servlet.service.events.pre=com.liferay.portal.events.ServicePreAction
    #servlet.service.events.pre=com.liferay.portal.events.LogMemoryUsageAction,com.liferay.portal.events.LogThreadCountAction,com.liferay.portal.events.ServicePreAction
    #servlet.service.events.pre=com.liferay.portal.events.LogSessionIdAction,com.liferay.portal.events.ServicePreAction
    #servlet.service.events.pre=com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.RandomLayoutAction
    #servlet.service.events.pre=com.liferay.portal.events.ServicePreAction,com.liferay.portal.events.RandomLookAndFeelAction
    servlet.service.events.pre.error.page=/common/error.jsp
    servlet.service.events.post=com.liferay.portal.events.ServicePostAction

    #
    # Login event
    #
    login.events.pre=com.liferay.portal.events.LoginPreAction
    login.events.post=com.liferay.portal.events.LoginPostAction,com.liferay.portal.events.DefaultLandingPageAction

    #
    # Logout event
    #
    logout.events.pre=com.liferay.portal.events.LogoutPreAction
    logout.events.post=com.liferay.portal.events.LogoutPostAction
    #logout.events.post=com.liferay.portal.events.LogoutPostAction,com.liferay.portal.events.GarbageCollectorAction

##
## Default Landing Page
##

    #
    # Set the default landing page path for logged in users relative to the
    # server path. For example, if you want the default landing page to be
    # http://localhost:8080/web/guest/home, set this to /web/guest/home. 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.
    #
    #default.landing.page.path=/web/guest/home

##
## Default Guest
##

    #
    # The Guest group at least one public page. The settings for the initial
    # public page are specified in the following properties. For more complex
    # behavior, override the addDefaultLayouts method in
    # com.liferay.portal.service.impl.GroupLocalServiceImpl.
    #

    #
    # Set the layout name.
    #
    default.guest.layout.name=Welcome

    #
    # Set the layout template id that matches an existing TPL.
    #
    #default.guest.layout.template.id=1_2_1_columns
    #default.guest.layout.template.id=1_column
    #default.guest.layout.template.id=2_2_columns
    #default.guest.layout.template.id=2_columns_i
    default.guest.layout.template.id=2_columns_ii
    #default.guest.layout.template.id=2_columns_iii
    #default.guest.layout.template.id=3_columns

    #
    # Set the layout ids for the column specified in the layout template.
    #
    default.guest.layout.column-1=58,
    default.guest.layout.column-2=47,
    default.guest.layout.column-3=
    default.guest.layout.column-4=

    #
    # Set the friendly url. This will only have an effect if the Guest group
    # also has a friendly URL set.
    #
    default.guest.friendly.url=/home

##
## Default User
##

    #
    # Users who have the Power User role must have at least one private personal
    # page. The settings for the initial private page are specified in the
    # following properties. For more complex behavior, override the
    # addDefaultLayouts method in com.liferay.portal.events.ServicePreAction.
    #

    #
    # Set the layout name.
    #
    default.user.layout.name=Home

    #
    # Set the layout template id that matches an existing TPL.
    #
    #default.user.layout.template.id=1_2_1_columns
    #default.user.layout.template.id=1_column
    #default.user.layout.template.id=2_2_columns
    #default.user.layout.template.id=2_columns_i
    default.user.layout.template.id=2_columns_ii
    #default.user.layout.template.id=2_columns_iii
    #default.user.layout.template.id=3_columns

    #
    # Set the layout ids for the column specified in the layout template.
    #
    default.user.layout.column-1=71_INSTANCE_OY0d,82,23,61,65,
    default.user.layout.column-2=11,29,8,19
    default.user.layout.column-3=
    default.user.layout.column-4=

##
## Default Admin
##

    #
    # Set the default admin password.
    #
    default.admin.password=test

    #
    # Set the default admin screen name prefix.
    #
    default.admin.screen.name=test

    #
    # Set the default admin email address prefix.
    #
    default.admin.email.address.prefix=test

    #
    # Set the default admin first name.
    #
    default.admin.first.name=Test

    #
    # Set the default admin middle name.
    #
    default.admin.middle.name=

    #
    # Set the default admin last name.
    #
    default.admin.last.name=Test

##
## 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.
    #
    layout.types=portlet,embedded,article,url,link_to_layout

    #
    # Default settings layouts.
    #
    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}
    layout.url.friendliable=true
    layout.parentable=true
    layout.sitemapable=true

    #
    # Settings for portlet layouts are inherited from the default settings.
    #
    #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}
    #layout.url.friendliable[portlet]=true
    #layout.parentable[portlet]=true

    #
    # Settings for embedded layouts.
    #
    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}
    layout.url.friendliable[embedded]=true
    layout.parentable[embedded]=false
    layout.sitemapable[embedded]=true

    #
    # Settings for article layouts.
    #
    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}
    layout.parentable[article]=false
    layout.sitemapable[article]=true

    #
    # Settings for URL layouts.
    #
    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

    #
    # Settings for page layouts.
    #
    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_l_id=${linkToPlid}
    layout.url.friendliable[link_to_layout]=true
    layout.parentable[link_to_layout]=true
    layout.sitemapable[link_to_layout]=false

    #
    # 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.
    #
    #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 add a static portlet which only shows in the first
    # layout of a user or community.
    #
    #layout.static.portlets.start.column-1[user][firstLayout]=3,6
    #layout.static.portlets.end.column-2[community][firstLayout]=14

    #
    # Set the static layouts for community layouts.
    #
    #layout.static.portlets.start.column-1[community]=
    #layout.static.portlets.end.column-1[community]=
    #layout.static.portlets.start.column-2[community]=
    #layout.static.portlets.end.column-2[community]=
    #layout.static.portlets.start.column-3[community]=
    #layout.static.portlets.end.column-3[community]=

    #
    # Set the static layouts for organization layouts.
    #
    #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 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 community'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.
    #
    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.
    #
    #layout.friendly.url.page.not.found=/html/portal/404.html

    #
    # Set the reserved keywords that cannot be used in a friendly URL.
    #
    layout.friendly.url.keywords=c,group,web,image,wsrp,page,public,private,blogs,calendar,document_library,image_gallery,journal,message_boards,podcast,rss,tags,wiki

    #
    # Set the following to true if users are allowed to add portlets from the
    # layout page.
    #
    layout.add.portlets=true

    #
    # Set the maximum length to display a layout name.
    #
    layout.name.max.length=10

    #
    # Set the maximum number of tabs per row.
    #
    layout.tabs.per.row=7

    #
    # Set the following to true if layouts should remember (across sessions)
    # that a window state was set to maximized.
    #
    layout.remember.session.window.state.maximized=false

    #
    # Set the following to true if layouts should remember (across requests)
    # that a window state was set to maximized.
    #
    layout.remember.request.window.state.maximized=false

    #
    # Set the following to true if guest users should see the maximize window
    # icon.
    #
    layout.guest.show.max.icon=false

    #
    # Set the following to true if guest users should see the minimize window
    # icon.
    #
    layout.guest.show.min.icon=false

    #
    # Set the following 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.
    #
    layout.show.portlet.access.denied=true

    #
    # Set the following to true if users are shown that a portlet is inactive.
    # The portlet init parameter "show-portlet-inactive" will override this
    # setting.
    #
    layout.show.portlet.inactive=true

    #
    # Set the default layout template id used when creating layouts.
    #
    layout.default.template.id=2_columns_ii

    #
    # Set the following to false to disable 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".
    #
    layout.parallel.render.enable=true

    #
    # 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.
    #
    layout.clone.impl=com.liferay.portal.util.SessionLayoutClone

    #
    # Set the following 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.
    #
    layout.template.cache.enabled=true

    #
    # Set the default value for the "p_l_reset" parameter. If set to true, then
    # 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.
    #
    layout.default.p_l_reset=true

##
## Portlet URL
##

    #
    # Set the following 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://support.liferay.com/browse/LEP-426 for more information.
    #
    portlet.url.append.parameters=false

    #
    # Set the following to true to allow portlet URLs to generate with an anchor
    # tag.
    #
    portlet.url.anchor.enable=false

##
## Preferences
##

    #
    # Set the following to true to validate portlet preferences on startup.
    #
    preference.validate.on.startup=false

##
## 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.
    #
    struts.portlet.request.processor=com.liferay.portal.struts.PortletRequestProcessor

##
## Images
##

    #
    # Set the location of the default spacer image that is used for missing
    # images. This image must be found in the class path.
    #
    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 found in the class path.
    #
    image.default.company.logo=com/liferay/portal/dependencies/company_logo.png

    #
    # Set the location of the default user portrait image that is used for
    # missing user portrait images. This image must be found in the class path.
    #
    image.default.user.portrait=com/liferay/portal/dependencies/user_portrait.gif

##
## Editors
##

    #
    # You can configure individual JSP pages to use a specific implementation of
    # the available WYSIWYG editors: liferay, fckeditor, simple, tinymce,
    # or tinymcesimple.
    #
    editor.wysiwyg.default=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.blogs.edit_entry.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.calendar.edit_configuration.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.enterprise_admin.view.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.invitation.edit_configuration.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.journal.edit_article_content.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.journal.edit_article_content_xsd_el.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.journal.edit_configuration.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.mail.edit.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.mail.edit_message.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.message_boards.edit_configuration.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.shopping.edit_configuration.jsp=fckeditor
    editor.wysiwyg.portal-web.docroot.html.portlet.wiki.edit_page.jsp=fckeditor

##
## Fields
##

    #
    # Set the following fields to false so users cannot see them. Some company
    # policies require gender and birthday information to always be hidden.
    #
    field.enable.com.liferay.portal.model.Contact.male=true
    field.enable.com.liferay.portal.model.Contact.birthday=true

##
## Mime Types
##

    #
    # Input a list of comma delimited mime types that are not available by
    # default from javax.activation.MimetypesFileTypeMap.
    #
    mim