• Document Up to Date

Engine’s Configuration Overrides

Crafter Engine comes with pre-configured settings that you may want to override. To view the pre-configured settings in Crafter Engine, in your installation, go to CRAFTER_HOME/bin/apache-tomcat/webapps/ROOT/WEB-INF/classes/crafter/engine and open the file server-config.properties.

To override any of the pre-configured settings, in your installation, go to CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/engine/extension and add the settings you would like to configure in the file server-config.properties. The override file have some settings already listed that you may want to override in Crafter Engine:

Properties

The following allows you to configure the following:

  • crafter.engine.site.default.rootFolder.path allows you to set the content root folder

  • crafter.engine.elasticsearch.timeout.connect, crafter.engine.elasticsearch.timeout.socket and crafter.engine.elasticsearch.threads allows you to configure the Elasticsearch client connection timeout, socket timeout and number of threads

CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/engine/extension/server-config.properties
 1# Content root folder. The {siteName} variable will be automatically replaced.
 2crafter.engine.site.default.rootFolder.path=file:${CRAFTER_DATA_DIR}/repos/sites/{siteName}/sandbox/
 3# The URL of Crafter Search
 4crafter.engine.search.server.url=${SEARCH_URL}
 5# The value for the access token for Crafter Search
 6crafter.engine.search.server.accessToken.value=${SEARCH_ACCESS_TOKEN}
 7# The URL of Crafter Profile
 8crafter.profile.rest.client.url.base=${PROFILE_URL}
 9# If the Security Provider is enabled
10crafter.security.enabled=true
11# The Elasticsearch hosts to use
12crafter.engine.elasticsearch.urls=${ES_URL}
13# The username for Elasticsearch
14crafter.engine.elasticsearch.username=${ES_USERNAME}
15# The password for Elasticsearch
16crafter.engine.elasticsearch.password=${ES_PASSWORD}
17# The connection timeout in milliseconds, if set to -1 the default will be used
18crafter.engine.elasticsearch.timeout.connect=-1
19# The socket timeout in milliseconds, if set to -1 the default will be used
20crafter.engine.elasticsearch.timeout.socket=-1
21# The number of threads to use, if set to -1 the default will be used
22crafter.engine.elasticsearch.threads=-1
23# Indicates if keep alive should be enabled for sockets used by the search client, defaults to false
24crafter.engine.elasticsearch.keepAlive=false
25
26# Engine management authorization token
27crafter.engine.management.authorizationToken=${ENGINE_MANAGEMENT_TOKEN}
28
29# The key used for encryption of configuration properties
30crafter.security.encryption.key=${CRAFTER_ENCRYPTION_KEY}
31# The salt used for encryption of configuration properties
32crafter.security.encryption.salt=${CRAFTER_ENCRYPTION_SALT}
33
34# The prefix used for all header names
35crafter.security.header.names.prefix=CRAFTER_
36# The name of the header containing the username
37crafter.security.header.names.username=username
38# The name of the header containing the email
39crafter.security.header.names.email=email
40# The name of the header containing the groups
41crafter.security.header.names.groups=groups
42# The name of the header containing the token
43crafter.security.header.names.token=secure_key
44
45# The current environment the Engine instance is running in (e.g. default, dev, qa, prod)
46crafter.engine.environment=${CRAFTER_ENVIRONMENT}

Forwarded Headers

The following section allows you to configure forwarded headers to resolve the actual hostname and protocol when it is behind a load balancer or reverse proxy. Forwarded headers are disabled by default.

CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/engine/extension/server-config.properties
1# Indicates if Forwarded or X-Forwarded headers should be used when resolving the client-originated protocol and
2# address. Enable when Engine is behind a reverse proxy or load balancer that sends these
3crafter.engine.forwarded.headers.enabled=false

Content-Length Headers

The following allows you to configure the content-length header sent for responses. The content-length header is sent for all responses by default.

CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/engine/extension/server-config.properties
1# Indicates if the 'etag' header should be added
2crafter.engine.header.etag.enable=false
3# Indicates the urls that will have the 'etag' header (comma separated ant matchers)
4crafter.engine.header.etag.include.urls=/**

Spring Expression Language

The following allows you to configure SpEL expressions for custom app contexts. SpEL expressions support is disabled by default.

CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/engine/extension/server-config.properties
1# Indicates if the custom site application contexts should support SpEL expressions
2crafter.engine.context.expressions.enable=false
3# Indicates if the whole servlet & spring context should be available for templates & scripts
4crafter.engine.disableVariableRestrictions=false
5# Patterns for beans that should always be accessible from the site application context
6crafter.engine.defaultPublicBeans=crafter\\.(targetIdManager|targetedUrlStrategy)

Groovy Sandbox Configuration

The following allows you to configure the Groovy sandbox. The Groovy sandbox is enabled by default.

CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/engine/extension/server-config.properties
1# Indicates if the sandbox should be enabled for all sites
2crafter.engine.groovy.sandbox.enable=true
3# Indicates if the blacklist should be enabled for all sites (this will have no effect if the sandbox is disabled)
4crafter.engine.groovy.sandbox.blacklist.enable=true
5# The location of the default blacklist to use for all sites (this will have no effect if the sandbox is disabled)
6crafter.engine.groovy.sandbox.blacklist.path=classpath:crafter/engine/groovy/blacklist

For more information on configuring the Groovy sandbox, see here

Static Methods in Freemarker Templates

The following allows you to configure access to static methods in Freemarker templates. Access to static methods in Freemarker templates is disabled by default.

CRAFTER_HOME/bin/apache-tomcat/shared/classes/crafter/engine/extension/server-config.properties
1# Indicates if access for static methods should be allowed in Freemarker templates
2crafter.engine.freemarker.statics.enable=false