ninja.utils.NinjaConstant Maven / Gradle / Ivy
/**
* Copyright (C) the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ninja.utils;
public interface NinjaConstant {
// /////////////////////////////////////////////////
// The 3 basic modes for ninja.
// they should be set as system property: -Dninja.mode=test
// and so on
String MODE_KEY_NAME = "ninja.mode";
// and the values for the modes:
String MODE_TEST = "test";
String MODE_DEV = "dev";
String MODE_PROD = "prod";
// /////////////////////////////////////////////////
// The basic directories used in all convention
// over configuration operations:
String VIEWS_DIR = "views";
String CONTROLLERS_DIR = "controllers";
String MODELS_DIR = "models";
// location of the default views for errors:
String LOCATION_VIEW_FTL_HTML_NOT_FOUND = "views/system/404notFound.ftl.html";
String LOCATION_VIEW_FTL_HTML_BAD_REQUEST = "views/system/400badRequest.ftl.html";
String LOCATION_VIEW_FTL_HTML_INTERNAL_SERVER_ERROR = "views/system/500internalServerError.ftl.html";
String LOCATION_VIEW_FTL_HTML_UNAUTHORIZED = "views/system/401unauthorized.ftl.html";
String LOCATION_VIEW_FTL_HTML_FORBIDDEN = "views/system/403forbidden.ftl.html";
String LOCATION_VIEW_HTML_NOT_FOUND_KEY = "application.views.404notFound";
String LOCATION_VIEW_HTML_BAD_REQUEST_KEY = "application.views.400badRequest";
String LOCATION_VIEW_HTML_INTERNAL_SERVER_ERROR_KEY = "application.views.500internalServerError";
String LOCATION_VIEW_HTML_UNAUTHORIZED_KEY = "application.views.401unauthorized";
String LOCATION_VIEW_HTML_FORBIDDEN_KEY = "application.views.403forbidden";
// i18n keys and default messages of Ninja
// create the keys in your own messages.properties file to customize the message
String I18N_NINJA_SYSTEM_BAD_REQUEST_TEXT_KEY = "ninja.system.bad_request.text";
String I18N_NINJA_SYSTEM_BAD_REQUEST_TEXT_DEFAULT = "Oops. That''s a bad request and all we know.";
String I18N_NINJA_SYSTEM_INTERNAL_SERVER_ERROR_TEXT_KEY = "ninja.system.internal_server_error.text";
String I18N_NINJA_SYSTEM_INTERNAL_SERVER_ERROR_TEXT_DEFAULT = "Oops. That''s an internal server error and all we know.";
String I18N_NINJA_SYSTEM_NOT_FOUND_TEXT_KEY = "ninja.system.not_found.text";
String I18N_NINJA_SYSTEM_NOT_FOUND_TEXT_DEFAULT = "Oops. The requested route cannot be found.";
String I18N_NINJA_SYSTEM_UNAUTHORIZED_REQUEST_TEXT_KEY = "ninja.system.unauthorized.text";
String I18N_NINJA_SYSTEM_UNAUTHORIZED_REQUEST_TEXT_DEFAULT = "Oops. You are unauthorized.";
String I18N_NINJA_SYSTEM_FORBIDDEN_REQUEST_TEXT_KEY = "ninja.system.forbidden.text";
String I18N_NINJA_SYSTEM_FORBIDDEN_REQUEST_TEXT_DEFAULT = "Oops. That''s forbidden and all we know.";
/**
* If false it will allow null as argument in controller methods.
* If true Ninja will not execute controller method when argument would be null
* and redirect to Bad Request page.
*
* Note: Default is false, but will change to true in the future (breaking change).
*
* More: https://www.ninjaframework.org/documentation/basic_concepts/controllers.html
*/
String NINJA_STRICT_ARGUMENT_EXTRACTORS = "ninja.strict_argument_extractors";
/**
* Comma separated list in application.conf. Determines which languages are
* loaded for the application.
*
* Something like
*
* application.languages=de,en
*/
final String applicationLanguages = "application.languages";
/**
* A cookie that helps Ninja to set a default language.
* Usually resolves to a cookie called NINJA_LANG.
* The cookie then looks like: "NINJA_LANG=en"
*/
final String LANG_COOKIE_SUFFIX = "_LANG";
/** Used to specify static base package for configuration modules and routes **/
final String APPLICATION_MODULES_BASE_PACKAGE = "application.modules.package";
/**
* Prefix used for all Ninja cookies.
*
* Make sure you set the prefix in your application.conf file.
*
* */
final String applicationCookiePrefix = "application.cookie.prefix";
/**
* Enables session/cookie sharing between subdomains. For example, to make cookies valid for
* all domains ending with ‘.example.com’, e.g. foo.example.com and bar.example.com:
*/
final String applicationCookieDomain = "application.cookie.domain";
/**
* Encryption of session cookies. Specify a boolean value. False by default.
*/
final String applicationCookieEncrypted = "application.cookie.encryption";
/** Used to verify client side cookie for instance. */
final String applicationName = "application.name";
/** Used to verify client side cookie for instance. */
final String applicationSecret = "application.secret";
/**
* In many situations the server cannot know its own name. So you can set the name
* using that variable.
*/
final String serverName = "application.server.name";
/**
* Whether to display logo at startup. Defaults to true if missing.
*/
final String NINJA_SPLASH_DISPLAY = "ninja.splash.display";
/**
* Time until session expires.
*/
final String sessionExpireTimeInSeconds = "application.session.expire_time_in_seconds";
/**
* Send session cookie only back when content has changed.
*/
final String sessionSendOnlyIfChanged = "application.session.send_only_if_changed";
/**
* Used to set the Secure flag if the cookie. Means Session will only be
* transferrd over Https.
*/
final String sessionTransferredOverHttpsOnly = "application.session.transferred_over_https_only";
/**
* Used to set the HttpOnly flag at the session cookie. On a supported
* browser, an HttpOnly session cookie will be used only when transmitting
* HTTP (or HTTPS) requests, thus restricting access from other, non-HTTP
* APIs (such as JavaScript). This restriction mitigates but does not
* eliminate the threat of session cookie theft via cross-site scripting
* (XSS).
*/
final String sessionHttpOnly = "application.session.http_only";
// /////////////////////////////////////////////////
// Diagnostic mode - extension to dev mode where
// ninja.Ninja is forced with ninja.diagnostics.NinjaDiagnostic
String DIAGNOSTICS_KEY_NAME = "application.diagnostics";
///////////////////////////////////////////////////////////////////////////
// Cache configuration
///////////////////////////////////////////////////////////////////////////
/**
* Constant used to bind custom cache implementation.
*/
public final String CACHE_IMPLEMENTATION = "cache.implementation";
/**
* Either a single host or a list of hosts (space separated)
*
*/
public final String MEMCACHED_HOST = "memcached.host";
/**
* Username for memcached (OPTIONAL)
*/
public final String MEMCACHED_USER = "memcached.user";
/**
* Password for memcached (OPTIONAL)
*/
public final String MEMCACHED_PASSWORD = "memcached.password";
/**
* Suffix used for Ninja cookies. Usually results in cookies like
* "NINJA_SESSION
*/
final String SESSION_SUFFIX = "_SESSION";
/**
* Suffix used for Ninja cookies. Usually results in cookies like
* "NINJA_FLASH
*/
final String FLASH_SUFFIX = "_FLASH";
/** Used as spacer for instance in session cookie */
final String UNI_CODE_NULL_ENTITY = "\u0000";
/** yea. utf-8 */
final String UTF_8 = "utf-8";
/** Value to set max age in header. E.g. Cache-Control:max-age=XXXXXX */
final String HTTP_CACHE_CONTROL = "http.cache_control";
/** Default value for Cache-Control http header when not set in application.conf */
final String HTTP_CACHE_CONTROL_DEFAULT = "3600";
/** Enable / disable etag E.g. ETag:"f0680fd3" */
final String HTTP_USE_ETAG = "http.useETag";
/** Default value / etag enabled by default. */
final boolean HTTP_USE_ETAG_DEFAULT = true;
/**
* Database stuff and JPA
*/
/** run migrations on startup of application */
final String MIGRATION_ENGINE_IMPLEMENTATION = "migration.engine.implementation";
/** run migrations on startup of application */
final String NINJA_MIGRATION_RUN = "ninja.migration.run";
/** boolean flag to determine if Flyway should drop the existing DB schema */
final String NINJA_MIGRATION_DROP_SCHEMA = "ninja.migration.drop";
/** Comma-separated list of locations to scan recursively for migrations */
final String NINJA_MIGRATION_LOCATIONS = "ninja.migration.locations";
/** Comma-separated list of schemas managed by Flyway */
final String NINJA_MIGRATION_SCHEMAS = "ninja.migration.schemas";
/** The name of the persistence unit to use */
String PERSISTENCE_UNIT_NAME = "ninja.jpa.persistence_unit_name";
/** eg. jdbc:hsqldb:mem:. */
String DB_CONNECTION_URL = "db.connection.url";
/** Username for db connection */
String DB_CONNECTION_USERNAME = "db.connection.username";
/** Password for db connection */
String DB_CONNECTION_PASSWORD = "db.connection.password";
String NINJA_JSONP_CALLBACK_PARAMETER = "ninja.jsonp.callbackParameter";
String AUTHENTICITY_TOKEN = "authenticityToken";
///////////////////////////////////////////////////////////////////////////
// File uploads constants used by FileProvider implementations.
///////////////////////////////////////////////////////////////////////////
/**
* The maximum allowed size of a single uploaded file.
*
* @see org.apache.commons.fileupload.FileUploadBase#fileSizeMax
*/
final String UPLOADS_MAX_FILE_SIZE = "uploads.max_file_size";
/**
* The maximum allowed size of a complete request, i.e. size of all uploaded
* files.
*
* @see org.apache.commons.fileupload.FileUploadBase#sizeMax
*/
final String UPLOADS_MAX_TOTAL_SIZE = "uploads.max_total_size";
/**
* Directory where uploaded files are saved. Defaults to system's temporary
* directory, i.e. "java.io.tmpdir" system property is consulted
*/
final String UPLOADS_TEMP_FOLDER = "uploads.temp_folder";
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy