diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b25c8a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/jre diff --git a/README.md b/README.md index 9d2f3e5..1bce2e3 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,12 @@ -# Java Service Wrapper +# Java Service Wrapper For Tomcat ## 项目介绍 -java service wrapper 3.5.40 +java service wrapper 3.5.43 > - support windows x86-32 and x86-64 > - support linux x86-32 and x86-64 > - include apr-1.7.0, apr-util-1.6.1, crypto-1.1, expat-1.6.0, ssl-1.1, z-1.2.11, tcnative-1.2.23 -## 编译说明 - -### build for wrapper-single: - - - `cd ./wrapper` - - `cp ./conf/wrapper.single.temp ./conf/wrapper.conf` - - `cp ./conf/wrapper-property.single.temp ./conf/wrapper-property.conf` - - `cp ./conf/wrapper-additional.single.temp ./conf/wrapper-additional.conf` - - `rm -rf ./conf/*.temp` - -### build for wrapper-tomcat: - - - `cd ./wrapper` - - `cp ./conf/wrapper.tomcat.temp ./conf/wrapper.conf` - - `cp ./conf/wrapper-property.tomcat.temp ./conf/wrapper-property.conf` - - `cp ./conf/wrapper-additional.tomcat.temp ./conf/wrapper-additional.conf` - - `rm -rf ./conf/*.temp` - ## 安装说明 ### install for windows: @@ -51,5 +33,6 @@ java service wrapper 3.5.40 - conf/wrapper-property.conf这个文件里设置服务名称 - conf/wrapper-additional.conf这个文件里设置内存、端口、其他-D参数 + - conf/wrapper-additional.conf这个文件里的参数如果包含空格,需要使用双引号引起来 - \#号是注释 - 配置文件里不能有中文字符,编辑的时候建议用notepad++ diff --git a/bin/bootstrap.jar b/bin/bootstrap.jar new file mode 100644 index 0000000..21f3908 Binary files /dev/null and b/bin/bootstrap.jar differ diff --git a/bin/keytool.bat b/bin/keytool.bat new file mode 100644 index 0000000..472cc62 --- /dev/null +++ b/bin/keytool.bat @@ -0,0 +1,440 @@ +@echo off + +rem ====================================================================================== +rem set window properties +rem buffer size : 9999*150=0x270f0096 +rem window size : 40*150=0x00280096 +set CONSOLE_CURR="HKCU\Console\%%SystemRoot%%_system32_cmd.exe" +reg add %CONSOLE_CURR% /t REG_SZ /v "FaceName" /d "Lucida Console" /f 2>nul>nul +reg add %CONSOLE_CURR% /t REG_DWORD /v "FontSize" /d 0x00100008 /f 2>nul>nul +reg add %CONSOLE_CURR% /t REG_DWORD /v "ScreenBufferSize" /d 0x270f0096 /f 2>nul>nul +reg add %CONSOLE_CURR% /t REG_DWORD /v "ScreenColors" /d 0x0000000a /f 2>nul>nul +reg add %CONSOLE_CURR% /t REG_DWORD /v "WindowSize" /d 0x00280096 /f 2>nul>nul +rem ====================================================================================== + +cd /d %~dp0 +set "WORK_DIR=%CD%" +cd .. +set "BASE_DIR=%CD%" +cd %WORK_DIR% +SET PATH=.;%WORK_DIR%;%BASE_DIR%\jre\bin;%PATH% +rem echo %WORK_DIR% + +rem restart console +rem if not defined x (set x=0&start cmd /c %0&exit) + +setlocal EnableDelayedExpansion +setlocal EnableExtensions + +rem 版权信息 +set "PROG_NAME=keytool" +set "COPY_RIGHT=www.cdjdgm.com" + +rem 步骤计数 +set "step=1" + +rem 当前日期和时间 +set "DATE=%DATE: =0%" +set "YYYY=%DATE:~,4%" +set "MM=%DATE:~5,2%" +set "DD=%DATE:~8,2%" +set "YYYYMMDD=%YYYY%%MM%%DD%" +set "TIME=%TIME: =0%" +set "HH=%TIME:~0,2%" +set "MI=%TIME:~3,2%" +set "SS=%TIME:~6,2%" +set "HHMISS=%HH%%MI%%SS%" +set "YYYYMMDDHHMISS=%YYYY%-%MM%-%DD% %HH%:%MI%:%SS%" + +rem 命令行参数 +set arg_subcmd= +set arg_alias= +set arg_file= + +rem 设置标题 +title %PROG_NAME% ^| %COPY_RIGHT% + +rem 程序开始 +rem ====================================================================================== + +rem 打印基本信息 +echo. +rem echo start... +rem echo CopyRight %COPY_RIGHT% +rem echo current time : %YYYYMMDDHHMISS% +echo. + +rem 读取命令行参数 +call :read_parameters %* +rem 读取配置信息 +call :read_config +rem 执行命令 +call :execute_command + +rem echo end... +echo. +pause +rem pause>nul +goto :eof + +rem 程序结束 +rem ====================================================================================== + + +rem init,list,import,export,delete,alias,file +rem 读取命令行参数 +:read_parameters +rem echo [Step %step%]: read command line parameters +rem set /a step+=1 + +rem no param +if "%1x" == "x" goto :no_param + +rem read param +:loop_read_param +if "%1x" == "x" goto :end_read_param +rem echo [%1] +if "%1x" == "--helpx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=help" ) + shift + goto :loop_read_param +) +if "%1x" == "-helpx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=help" ) + shift + goto :loop_read_param +) +if "%1x" == "--hx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=help" ) + shift + goto :loop_read_param +) +if "%1x" == "-hx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=help" ) + shift + goto :loop_read_param +) +if "%1x" == "--initx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=init" ) + shift + goto :loop_read_param +) +if "%1x" == "-initx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=init" ) + shift + goto :loop_read_param +) +if "%1x" == "--listx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=list" ) + shift + goto :loop_read_param +) +if "%1x" == "-listx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=list" ) + shift + goto :loop_read_param +) +if "%1x" == "--importx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=import" ) + shift + goto :loop_read_param +) +if "%1x" == "-importx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=import" ) + shift + goto :loop_read_param +) +if "%1x" == "--exportx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=export" ) + shift + goto :loop_read_param +) +if "%1x" == "-exportx" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=export" ) + shift + goto :loop_read_param +) +if "%1x" == "--deletex" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=delete" ) + shift + goto :loop_read_param +) +if "%1x" == "-deletex" ( + if "!arg_subcmd!x" == "x" ( set "arg_subcmd=delete" ) + shift + goto :loop_read_param +) +if "%1x" == "--aliasx" ( + if "!arg_alias!x" == "x" ( set "arg_alias=%~2" ) + shift + shift + goto :loop_read_param +) +if "%1x" == "-aliasx" ( + if "!arg_alias!x" == "x" ( set "arg_alias=%~2" ) + shift + shift + goto :loop_read_param +) +if "%1x" == "--filex" ( + if "!arg_file!x" == "x" ( set "arg_file=%~2" ) + shift + shift + goto :loop_read_param +) +if "%1x" == "-filex" ( + if "!arg_file!x" == "x" ( set "arg_file=%~2" ) + shift + shift + goto :loop_read_param +) +echo [unsupport command : %1] +shift +goto :loop_read_param +:end_read_param + +rem echo arg_subcmd=%arg_subcmd% +rem echo arg_alias=%arg_alias% +rem echo arg_file=%arg_file% +rem echo. +goto :eof + +:no_param +rem echo. +goto :eof + +rem read config info from keytool.env +:read_config +rem echo [Step %step%]: read config info from keytool.env +rem set /a step+=1 +if exist "%WORK_DIR%\keytool.env" ( + for /f "eol=# delims=" %%i in ('type "%WORK_DIR%\keytool.env"^| find /i "="') do ( + set _temp=%%i + rem set !_temp! + rem echo !_temp! + for /f "tokens=1,* delims==" %%a in ("!_temp!") do ( + set "key=%%~a" + set "value=%%~b" + rem echo key=!key!,value=!value! + if "!value!x" neq "x" ( + set "!key!=!value:/=\!" + rem echo !key!=!value:/=\! + ) else ( + set "!key!=" + ) + ) + ) +) else ( + echo %WORK_DIR%\keytool.env does not exist. + echo please make sure keytool.env exists. + goto :eof +) +rem echo. +goto :eof + +rem call command +:execute_command +if [%arg_subcmd%]==[] ( + call :show_menu +) else if [%arg_subcmd%]==[help] ( + call :show_help +) else if [%arg_subcmd%]==[init] ( + call :execute_init_command +) else if [%arg_subcmd%]==[list] ( + call :execute_list_command +) else if [%arg_subcmd%]==[import] ( + call :execute_import_command +) else if [%arg_subcmd%]==[export] ( + call :execute_export_command +) else if [%arg_subcmd%]==[delete] ( + call :execute_delete_command +) +if not errorlevel 1 goto :eof +echo. +goto :eof + +rem show menu +:show_menu +cls +echo. +echo Enter the number 1-5 to execute the command +echo================================================== +echo. +echo [1] : Initialize Cacerts +echo [2] : List Certs +echo [3] : Import Certs +echo [4] : Export Certs +echo [5] : Delete Certs +echo. +echo [q] : Exit Menu +echo. +echo================================================== +echo. +set /p menu_input=enter the number : +if "%menu_input%x" equ "1x" call :execute_init_command +if "%menu_input%x" equ "2x" call :execute_list_command +if "%menu_input%x" equ "3x" call :execute_import_command +if "%menu_input%x" equ "4x" call :execute_export_command +if "%menu_input%x" equ "5x" call :execute_delete_command +if "%menu_input%x" equ "qx" goto :eof +set "menu_input=" +set "step=1" +pause +goto show_menu + +echo. +goto :eof + +rem show help +:show_help +echo [Step %step%]: show help info +set /a step+=1 + +echo keytool.bat [--init] ^| [--list] ^| [--import] ^| [--export] ^| [--delete] ^| [--alias test] ^| [--file xxx.crt] +echo --init execute init command. +echo. +echo --list execute list command. +echo --alias test +echo. +echo --import execute import command. +echo --alias test +echo --file xxx.crt +echo. +echo --export execute export command. +echo --alias test +echo --file xxx.crt +echo. +echo --delete execute delete command. +echo --alias test + +echo. +goto :eof + +rem execute init command +:execute_init_command +echo [Step %step%]: execute init command +set /a step+=1 + +echo copy %BASE_DIR%\jre\lib\security\cacerts to %BASE_DIR%\%trustfile% +echo f | xcopy "%BASE_DIR%\jre\lib\security\cacerts" "%BASE_DIR%\%trustfile%" /s/e/i/y +echo change storepasswd to %newstorepass% +"%BASE_DIR%\jre\bin\keytool" -storepasswd -v -keystore "%BASE_DIR%\%trustfile%" -storepass "%oldstorepass%" -new "%newstorepass%" +echo successfully executed init command. + +echo. +goto :eof + +rem execute list command +:execute_list_command +echo [Step %step%]: execute list command +set /a step+=1 + +if "%arg_alias%x" == "x" ( + echo list all entries in the keystore + "%BASE_DIR%\jre\bin\keytool" -list -keystore "%BASE_DIR%\%trustfile%" -storepass "%newstorepass%" + echo successfully executed list command. +) else ( + echo list the specified entries in the keystore : [%arg_alias%] + "%BASE_DIR%\jre\bin\keytool" -list -v -keystore "%BASE_DIR%\%trustfile%" -alias "%arg_alias%" -storepass "%newstorepass%" + echo successfully executed list command. +) + +echo. +goto :eof + +rem execute import command +:execute_import_command +echo [Step %step%]: execute import command +set /a step+=1 + +if "%arg_alias%x" == "x" ( + if "%arg_file%x" == "x" ( + rem import certificate from %BASE_DIR%\%certspath% + echo import certificate from %BASE_DIR%\%certspath%\*.crt + for /f "delims=" %%a in ('dir /b "%BASE_DIR%\%certspath%" ^| findstr .crt') do ( + rem echo %%a + set file=%%a + set alias=!file:~0,-4! + rem echo !alias! + rem echo !file! + rem echo check if alias [!alias!] exists + rem "%BASE_DIR%\jre\bin\keytool" -list -keystore "%BASE_DIR%\%trustfile%" -alias "!alias!" -storepass "%newstorepass%" + echo delete alias [!alias!]... + "%BASE_DIR%\jre\bin\keytool" -delete -keystore "%BASE_DIR%\%trustfile%" -alias "!alias!" -storepass "%newstorepass%" + echo import certificate, alias : [!alias!], file : [!file!] + "%BASE_DIR%\jre\bin\keytool" -importcert -noprompt -keystore "%BASE_DIR%\%trustfile%" -alias "!alias!" -file "%BASE_DIR%\%certspath%\!file!" -storepass "%newstorepass%" + ) + echo import certificate from %BASE_DIR%\%certspath%\*.cer + for /f "delims=" %%a in ('dir /b "%BASE_DIR%\%certspath%" ^| findstr .cer') do ( + rem echo %%a + set file=%%a + set alias=!file:~0,-4! + rem echo !alias! + rem echo !file! + rem echo check if alias [!alias!] exists + rem "%BASE_DIR%\jre\bin\keytool" -list -keystore "%BASE_DIR%\%trustfile%" -alias "!alias!" -storepass "%newstorepass%" + echo delete alias [!alias!]... + "%BASE_DIR%\jre\bin\keytool" -delete -keystore "%BASE_DIR%\%trustfile%" -alias "!alias!" -storepass "%newstorepass%" + echo import certificate, alias : [!alias!], file : [!file!] + "%BASE_DIR%\jre\bin\keytool" -importcert -noprompt -keystore "%BASE_DIR%\%trustfile%" -alias "!alias!" -file "%BASE_DIR%\%certspath%\!file!" -storepass "%newstorepass%" + ) + echo successfully executed import command. + ) else ( + echo alias cannot be empty + ) +) else ( + if "%arg_file%x" == "x" ( + echo file cannot be empty + ) else ( + if not exist "%arg_file%" ( + echo the file [%arg_file%] does not exist + ) else ( + echo import certificate, alias : [%arg_alias%], file : [%arg_file%] + "%BASE_DIR%\jre\bin\keytool" -importcert -noprompt -keystore "%BASE_DIR%\%trustfile%" -alias "%arg_alias%" -file "%arg_file%" -storepass "%newstorepass%" + echo successfully executed import command. + ) + ) +) + +echo. +goto :eof + +rem execute export command +:execute_export_command +echo [Step %step%]: execute export command +set /a step+=1 + +if "%arg_alias%x" == "x" ( + echo alias cannot be empty + goto :eof +) +if "%arg_file%x" == "x" ( + echo file cannot be empty + goto :eof +) +if exist "%arg_file%" ( + echo the file [%arg_file%] already exists + goto :eof +) +echo export certificate, alias : [%arg_alias%], file : [%arg_file%] +"%BASE_DIR%\jre\bin\keytool" -exportcert -rfc -keystore "%BASE_DIR%\%trustfile%" -alias "%arg_alias%" -file "%arg_file%" -storepass "%newstorepass%" +echo successfully executed export command. + +echo. +goto :eof + +rem execute delete command +:execute_delete_command +echo [Step %step%]: execute delete command +set /a step+=1 + +if "%arg_alias%x" == "x" ( + echo alias cannot be empty + goto :eof +) +echo delete certificate, alias : [%arg_alias%] +"%BASE_DIR%\jre\bin\keytool" -delete -v -keystore "%BASE_DIR%\%trustfile%" -alias "%arg_alias%" -storepass "%newstorepass%" +echo successfully executed delete command. + +echo. +goto :eof diff --git a/bin/keytool.env b/bin/keytool.env new file mode 100644 index 0000000..b950814 --- /dev/null +++ b/bin/keytool.env @@ -0,0 +1,5 @@ +# keytool.env +trustfile="conf/certs/.truststore" +certspath="conf/certs" +oldstorepass="changeit" +newstorepass="123456" diff --git a/bin/keytool.sh b/bin/keytool.sh new file mode 100644 index 0000000..ad0e970 --- /dev/null +++ b/bin/keytool.sh @@ -0,0 +1,420 @@ +#!/bin/bash + +########################################################################## +# keytool.sh +# for centos 7.x +# author : yong.ran@cdjdgm.com +########################################################################## + +# local variable +keytoolcmd="jre/bin/keytool" #keytoolcmd +step=1 + +set -e +set -o noglob + +# save old work path +pwd_old=`pwd` + +# set author info +date1=`date "+%Y-%m-%d %H:%M:%S"` +date2=`date "+%Y%m%d%H%M%S"` +author="yong.ran@cdjdgm.com" + +# init font and color +if [ "${TERM}" == "xterm" ]; then + bold=$(tput bold); underline=$(tput sgr 0 1); reset=$(tput sgr0); + red=$(tput setaf 1); green=$(tput setaf 2); yellow=$(tput setaf 3); blue=$(tput setaf 4); white=$(tput setaf 7); +else + bold=""; underline=""; reset=""; + red=""; green=""; yellow=""; blue=""; white=""; +fi + +# header and logging +header() { printf "\n${underline}${bold}${blue}■ %s${reset}\n" "$@"; } +header2() { printf "\n${underline}${bold}${blue}❏ %s${reset}\n" "$@"; } +header3() { printf "\n${underline}${bold}${blue}❏ %s${reset}\n" "$@"; } +info() { printf "${white}➜ %s${reset}\n" "$@"; } +warn() { printf "${yellow}➜ %s${reset}\n" "$@"; } +error() { printf "${red}✖ %s${reset}\n" "$@"; } +success() { printf "${green}✔ %s${reset}\n" "$@"; } +usage() { printf "\n${underline}${bold}${blue}Usage:${reset} ${blue}%s${reset}\n" "$@"; } +timestamp() { printf "➜ current time : $(date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23)\n"; } + +# get real path +getRealPath() { if [[ "$1" =~ ^\/.* ]]; then temp_path="$1"; else temp_path="${pwd_old}/$1"; fi; printf "$(readlink -f ${temp_path})"; } + +# trap signal +trap "error '******* ERROR: Something went wrong.*******'; exit 1" sigterm +trap "error '******* Caught sigint signal. Stopping...*******'; exit 2" sigint + +set +o noglob + +# entry base dir +base_name=`basename $0 .sh` +base_dir="${pwd_old}" +source_name="$0" +while [ -h "${source_name}" ]; do + base_dir="$( cd -P "$( dirname "${source_name}" )" && pwd )" + source_name="$(readlink "${source_name}")" + [[ ${source_name} != /* ]] && source_name="${base_dir}/${source_name}" +done +base_dir="$( cd -P "$( dirname "${source_name}" )" && pwd )" +cd "${base_dir}" + +# envirionment + +# args flag +arg_subcmd= +arg_alias= +arg_file= + +# 解析参数 +# echo $@ +# 定义选项, -o 表示短选项 -a 表示支持长选项的简单模式(以 - 开头) -l 表示长选项 +# a 后没有冒号,表示没有参数 +# b 后跟一个冒号,表示有一个必要参数 +# c 后跟两个冒号,表示有一个可选参数(可选参数必须紧贴选项) +# -n 出错时的信息 +# -- 也是一个选项,比如 要创建一个名字为 -f 的目录,会使用 mkdir -- -f , +# 在这里用做表示最后一个选项(用以判定 while 的结束) +# $@ 从命令行取出参数列表(不能用用 $* 代替,因为 $* 将所有的参数解释成一个字符串 +# 而 $@ 是一个参数数组) +# args=`getopt -o ab:c:: -a -l apple,banana:,cherry:: -n "${source_name}" -- "$@"` +args=`getopt -o h -a -l help,init,list,import,export,delete,alias:,file: -n "${source_name}" -- "$@"` +# 判定 getopt 的执行时候有错,错误信息输出到 STDERR +if [ $? != 0 ]; then + error "Terminating..." >&2 + exit 1 +fi + +# show start time +timestamp; + +# show parameter options +header "[Step ${step}]: show parameter options."; let step+=1 + +# echo ${args} +# 重新排列参数的顺序 +# 使用eval 的目的是为了防止参数中有shell命令,被错误的扩展。 +eval set -- "${args}" +# 处理具体的选项 +while true +do + case "$1" in + -h | --help | -help) + info "option -h|--help" + arg_subcmd=help + shift + ;; + --init | -init) + info "option --init" + arg_subcmd=init + shift + ;; + --list | -list) + info "option --list" + arg_subcmd=list + shift + ;; + --import | -import) + info "option --import" + arg_subcmd=import + shift + ;; + --export | -export) + info "option --export" + arg_subcmd=export + shift + ;; + --delete | -delete) + info "option --delete" + arg_subcmd=delete + shift + ;; + --alias | -alias) + info "option --alias argument : $2" + arg_alias=$2 + shift 2 + ;; + --file | -file) + info "option --file argument : $2" + arg_file=$(getRealPath "$2") + shift 2 + ;; + --) + shift + break + ;; + *) + error "Internal error!" + exit 1 + ;; + esac +done +#显示除选项外的参数(不包含选项的参数都会排到最后) +# arg 是 getopt 内置的变量 , 里面的值,就是处理过之后的 $@(命令行传入的参数) +for arg do + warn "$arg"; +done + +# define usage +usage=$"`basename $0` [-h|--help] [--init] [--list] [--import] [--export] [--delete] [--alias=xxx] [--file=xxx.crt] + [-h|--help]................show help info. + [--init]...................execute init command. + [--list]...................execute list command. + [--import].................execute import command. + [--export].................execute export command. + [--delete].................execute delete command. + [--alias=xxx]..............alias of the entry. + [--file=xxx.crt]...........the name of the certificate. +" + +# show usage +fun_show_usage() { + usage "$usage"; + exit 1 +} + +########################################################################## + +# read environment variables from .env file +fun_read_envfile() { + header "[Step ${step}]: read environment variables from ${base_name}.env file."; let step+=1 + while read line; + do + # echo ${line}; + trim=$(echo ${line} | sed 's/^[ ]*//g' | sed 's/[ ]*$//g') + if [ "x$trim" == "x" ]; then + # ignore empty line + continue; + fi + rem=$(echo ${trim:0:1}) + if [ "x$rem" == "x#" ]; then + # ignore rem line + continue; + fi + key=$(echo ${trim%%=*} | sed 's/^[ ]*//g' | sed 's/[ ]*$//g') + value=$(echo ${trim#*=} | sed 's/^[ ]*//g' | sed 's/[ ]*$//g') + last=$(echo ${key##*_}) + if [ "x$last" == "xPASS" ]; then + info "${key}=***" + else + info "${key}=${value}" + fi + eval "${key}=${value}" + done < "${base_dir}/${base_name}.env" + success "successfully readed environment variables." + return 0 +} + +# execute init command +fun_execute_init_command() { + header "[Step ${step}]: execute init command."; let step+=1 + set +e + + info "copy ${base_dir}/../jre/lib/security/cacerts to ${base_dir}/../${trustfile}" + \cp -rf "${base_dir}/../jre/lib/security/cacerts" "${base_dir}/../${trustfile}" + info "change storepasswd to ${newstorepass}" + "${base_dir}"/../${keytoolcmd} -storepasswd -v -keystore "${base_dir}/../${trustfile}" -storepass "${oldstorepass}" -new "${newstorepass}" + + success "successfully executed init command." + set -e + return 0 +} + +# execute list command +fun_execute_list_command() { + header "[Step ${step}]: execute list command."; let step+=1 + set +e + + if [ "x${arg_alias}" == "x" ]; then + info "list all entries in the keystore" + "${base_dir}"/../${keytoolcmd} -list -keystore "${base_dir}/../${trustfile}" -storepass "${newstorepass}" + ret=$? + if [ ${ret} == 0 ]; then + success "successfully executed list command." + else + error "failed to execute list command." + fi + else + info "list the specified entries in the keystore : [${arg_alias}]" + "${base_dir}"/../${keytoolcmd} -list -v -keystore "${base_dir}/../${trustfile}" -alias "${arg_alias}" -storepass "${newstorepass}" + ret=$? + if [ ${ret} == 0 ]; then + success "successfully executed list command." + else + error "failed to execute list command." + fi + fi + + set -e + return 0 +} + +# execute import command +fun_execute_import_command() { + header "[Step ${step}]: execute import command."; let step+=1 + set +e + + if [ "x${arg_alias}" == "x" -a "x${arg_file}" == "x" ]; then + # import certificate from ${base_dir}/../${certspath} + info "import certificate from ${base_dir}/../${certspath}" + i=0 + for file in $(find "${base_dir}/../${certspath}" -name "*.crt" -o -name "*.cer"); do + _file="${file##*/}" + alias="${_file%.*}" + #suffix="${_file##*.}" + # list + info "check if alias [${alias}] exists" + "${base_dir}"/../${keytoolcmd} -list -keystore "${base_dir}/../${trustfile}" -alias "${alias}" -storepass "${newstorepass}" + ret1=$? + if [ ${ret1} == 0 ]; then + info "alias [${alias}] already exists." + echo "" + # delete + info "delete alias [${alias}]..." + "${base_dir}"/../${keytoolcmd} -delete -keystore "${base_dir}/../${trustfile}" -alias "${alias}" -storepass "${newstorepass}" + ret2=$? + if [ ${ret2} == 0 ]; then + info "successfully deleted alias [${alias}]." + else + info "failed to delete alias [${alias}]." + fi + else + info "alias [${alias}] does not exist." + fi + echo "" + # import + info "import certificate, alias : [${alias}], file : [${file}]" + "${base_dir}"/../${keytoolcmd} -importcert -noprompt -keystore "${base_dir}/../${trustfile}" -alias "${alias}" -file "${file}" -storepass "${newstorepass}" + ret3=$? + if [ ${ret3} == 0 ]; then + info "successfully deleted alias [${alias}]." + else + info "failed to delete alias [${alias}]." + fi + echo "" + done + success "successfully executed import command." + set -e + return 0 + else + # import certificate from specified file + info "import certificate from specified file" + if [ "x${arg_alias}" == "x" ]; then + error "alias cannot be empty" + usage "$usage" + set -e + return 1 + fi + if [ "x${arg_file}" == "x" ]; then + error "file cannot be empty" + usage "$usage" + set -e + return 1 + fi + if [ ! -f "${arg_file}" ]; then + error "the file [${arg_file}] does not exist" + usage "$usage" + set -e + return 1 + fi + info "import certificate, alias : [${arg_alias}], file : [${arg_file}]" + "${base_dir}"/../${keytoolcmd} -importcert -noprompt -keystore "${base_dir}/../${trustfile}" -alias "${arg_alias}" -file "${arg_file}" -storepass "${newstorepass}" + success "successfully executed import command." + set -e + return 0 + fi +} + +# execute export command +fun_execute_export_command() { + header "[Step ${step}]: execute export command."; let step+=1 + set +e + + if [ "x${arg_alias}" == "x" -o "x${arg_file}" == "x" ]; then + error "alias and file cannot be empty" + usage "$usage" + return 1 + fi + if [ -f "${arg_file}" ]; then + error "the file [${arg_file}] already exists" + usage "$usage" + return 1 + fi + info "export certificate, alias : [${arg_alias}], file : [${arg_file}]" + "${base_dir}"/../${keytoolcmd} -exportcert -rfc -keystore "${base_dir}/../${trustfile}" -alias "${arg_alias}" -file "${arg_file}" -storepass "${newstorepass}" + + success "successfully executed export command." + set -e + return 0 +} + +# execute delete command +fun_execute_delete_command() { + header "[Step ${step}]: execute delete command."; let step+=1 + set +e + + if [ "x${arg_alias}" == "x" ]; then + error "alias cannot be empty" + usage "$usage" + return 1 + fi + info "delete certificate, alias : [${arg_alias}]" + "${base_dir}"/../${keytoolcmd} -delete -v -keystore "${base_dir}/../${trustfile}" -alias "${arg_alias}" -storepass "${newstorepass}" + + success "successfully executed delete command." + set -e + return 0 +} + +########################################################################## + +# execute subcommand +case "${arg_subcmd}" in + help) + # show usage + fun_show_usage + ;; + init) + # read environment variables from .env file + fun_read_envfile; + # execute init command + fun_execute_init_command; + ;; + list) + # read environment variables from .env file + fun_read_envfile; + # execute list command + fun_execute_list_command; + ;; + import) + # read environment variables from .env file + fun_read_envfile; + # execute import command + fun_execute_import_command; + ;; + export) + # read environment variables from .env file + fun_read_envfile; + # execute export command + fun_execute_export_command; + ;; + delete) + # read environment variables from .env file + fun_read_envfile; + # execute delete command + fun_execute_delete_command; + ;; + *) + # show usage + fun_show_usage + ;; +esac + +# show end time +timestamp; +echo "" + +exit $? diff --git a/bin/tomcat-juli.jar b/bin/tomcat-juli.jar new file mode 100644 index 0000000..056d9d8 Binary files /dev/null and b/bin/tomcat-juli.jar differ diff --git a/bin/wrapper-3.5.41.jar b/bin/wrapper-3.5.43.jar similarity index 56% rename from bin/wrapper-3.5.41.jar rename to bin/wrapper-3.5.43.jar index 5207f28..1af8444 100644 Binary files a/bin/wrapper-3.5.41.jar and b/bin/wrapper-3.5.43.jar differ diff --git a/bin/wrapper-console-start.sh b/bin/wrapper-console-start.sh index ef6e247..543ae14 100644 --- a/bin/wrapper-console-start.sh +++ b/bin/wrapper-console-start.sh @@ -17,7 +17,7 @@ base_dir="$( cd -P "$( dirname "$source" )" && pwd )" cd "${base_dir}" if [ -x "${base_dir}/wrapper-create-linkfile.sh" ]; then - "${base_dir}/wrapper-create-linkfile.sh" + "${base_dir}/wrapper-create-linkfile.sh" >/dev/null 2>&1 fi if [ -x "${base_dir}/wrapper.sh" ]; then diff --git a/bin/wrapper-linux-x86-32 b/bin/wrapper-linux-x86-32 index 7aa0852..979d13f 100644 Binary files a/bin/wrapper-linux-x86-32 and b/bin/wrapper-linux-x86-32 differ diff --git a/bin/wrapper-linux-x86-64 b/bin/wrapper-linux-x86-64 index b9e3152..c74248a 100644 Binary files a/bin/wrapper-linux-x86-64 and b/bin/wrapper-linux-x86-64 differ diff --git a/bin/wrapper-service-install.sh b/bin/wrapper-service-install.sh index 1265287..22b1b0d 100644 --- a/bin/wrapper-service-install.sh +++ b/bin/wrapper-service-install.sh @@ -17,7 +17,7 @@ base_dir="$( cd -P "$( dirname "$source" )" && pwd )" cd "${base_dir}" if [ -x "${base_dir}/wrapper-create-linkfile.sh" ]; then - "${base_dir}/wrapper-create-linkfile.sh" + "${base_dir}/wrapper-create-linkfile.sh" >/dev/null 2>&1 fi if [ -x "${base_dir}/wrapper.sh" ]; then diff --git a/bin/wrapper-service-start.sh b/bin/wrapper-service-start.sh index 595e8bd..e7280cc 100644 --- a/bin/wrapper-service-start.sh +++ b/bin/wrapper-service-start.sh @@ -17,7 +17,7 @@ base_dir="$( cd -P "$( dirname "$source" )" && pwd )" cd "${base_dir}" if [ -x "${base_dir}/wrapper-create-linkfile.sh" ]; then - "${base_dir}/wrapper-create-linkfile.sh" + "${base_dir}/wrapper-create-linkfile.sh" >/dev/null 2>&1 fi if [ -x "${base_dir}/wrapper.sh" ]; then diff --git a/bin/wrapper-service-stop.sh b/bin/wrapper-service-stop.sh index 16b9b38..804a574 100644 --- a/bin/wrapper-service-stop.sh +++ b/bin/wrapper-service-stop.sh @@ -17,7 +17,7 @@ base_dir="$( cd -P "$( dirname "$source" )" && pwd )" cd "${base_dir}" if [ -x "${base_dir}/wrapper-create-linkfile.sh" ]; then - "${base_dir}/wrapper-create-linkfile.sh" + "${base_dir}/wrapper-create-linkfile.sh" >/dev/null 2>&1 fi if [ -x "${base_dir}/wrapper.sh" ]; then diff --git a/bin/wrapper-service-uninstall.sh b/bin/wrapper-service-uninstall.sh index 1922a87..1c639d5 100644 --- a/bin/wrapper-service-uninstall.sh +++ b/bin/wrapper-service-uninstall.sh @@ -17,7 +17,7 @@ base_dir="$( cd -P "$( dirname "$source" )" && pwd )" cd "${base_dir}" if [ -x "${base_dir}/wrapper-create-linkfile.sh" ]; then - "${base_dir}/wrapper-create-linkfile.sh" + "${base_dir}/wrapper-create-linkfile.sh" >/dev/null 2>&1 fi if [ -x "${base_dir}/wrapper.sh" ]; then diff --git a/bin/wrapper-windows-x86-32.exe b/bin/wrapper-windows-x86-32.exe index 8526200..e32a292 100644 Binary files a/bin/wrapper-windows-x86-32.exe and b/bin/wrapper-windows-x86-32.exe differ diff --git a/bin/wrapper-windows-x86-64.exe b/bin/wrapper-windows-x86-64.exe index 95289cc..ec3c9b2 100644 Binary files a/bin/wrapper-windows-x86-64.exe and b/bin/wrapper-windows-x86-64.exe differ diff --git a/bin/wrapper.bat b/bin/wrapper.bat index ed0d2c1..ff89021 100644 --- a/bin/wrapper.bat +++ b/bin/wrapper.bat @@ -23,7 +23,7 @@ rem echo RUN_AS_USER=%RUN_AS_USER% rem ####################################################################################### rem -rem Copyright (c) 1999, 2019 Tanuki Software, Ltd. +rem Copyright (c) 1999, 2020 Tanuki Software, Ltd. rem http://www.tanukisoftware.com rem All rights reserved. rem @@ -37,7 +37,7 @@ rem rem ----------------------------------------------------------------------------- rem These settings can be modified to fit the needs of your application -rem Optimized for use with version 3.5.41 of the Wrapper. +rem Optimized for use with version 3.5.43 of the Wrapper. rem The base name for the Wrapper binary. set _WRAPPER_BASE=wrapper diff --git a/bin/wrapper.sh b/bin/wrapper.sh index b3ece43..1581fa1 100644 --- a/bin/wrapper.sh +++ b/bin/wrapper.sh @@ -31,7 +31,7 @@ fi ####################################################################################### # -# Copyright (c) 1999, 2019 Tanuki Software, Ltd. +# Copyright (c) 1999, 2020 Tanuki Software, Ltd. # http://www.tanukisoftware.com # All rights reserved. # @@ -42,11 +42,11 @@ fi # # Java Service Wrapper sh script. Suitable for starting and stopping # wrapped Java applications on UNIX platforms. +# Optimized for use with version 3.5.43 of the Wrapper. # #----------------------------------------------------------------------------- # These settings can be modified to fit the needs of your application -# Optimized for use with version 3.5.41 of the Wrapper. # IMPORTANT - Please always stop and uninstall an application before making # any changes to this file. Failure to do so could remove the @@ -255,23 +255,59 @@ gettext() { fi } -resolveIdLocation() { - if [ "X$ID_BIN" = "X" ] ; then - # On Solaris, the version in /usr/xpg4/bin should be used. - ID_BIN="/usr/xpg4/bin/id" - if [ ! -x "$ID_BIN" ] ; then - ID_BIN="id" - result=`command -v id 2>/dev/null` - if [ $? -ne 0 ] ; then - ID_BIN="/usr/bin/id" - if [ ! -x "$ID_BIN" ] ; then - eval echo `gettext 'Unable to locate "id".'` - eval echo `gettext 'Please report this message along with the location of the command on your system.'` - exit 1 +## +# Resolves the location of a system command. +# +# $1: the name of the variable to set (without the $) +# $2: the name of the command +# $3: an ordered and semicolon-separated list of paths where the command should +# be searched. The list should contain an empty value for the command to be +# searched using the PATH environment variable. +# $4: 1 to be strict (the script will stop with an error), 0 otherwise. +resolveLocation() { + eval "CMD_TEMP=\$$1" + if [ "X$CMD_TEMP" = "X" ] ; then + found=0 + + OIFS=$IFS + IFS=';' + for CMD_PATH in $3 + do + if [ -z "$CMD_PATH" ] ; then + # empty path + CMD_TEMP="$2" + ret=`command -v $CMD_TEMP 2>/dev/null` + if [ $? -eq 0 ] ; then + found=1 + break + fi + else + CMD_TEMP="${CMD_PATH}/$2" + if [ -x "$CMD_TEMP" ] ; then + found=1 + break fi fi + done + IFS=$OIFS + + if [ $found -eq 1 ] ; then + eval "$1=$CMD_TEMP" + elif [ $4 -eq 1 ] ; then + eval echo `gettext 'Unable to locate "$2".'` + eval echo `gettext 'Please report this message along with the location of the command on your system.'` + exit 1 + else + # return the error + return 1 fi fi + return 0 +} + +resolveIdLocation() { + # On Solaris, the version in /usr/xpg4/bin should be used in priority. + resolveLocation ID_BIN id "/usr/xpg4/bin/id;;/usr/bin/id" 1 } resolveCurrentUser() { @@ -281,24 +317,6 @@ resolveCurrentUser() { fi } -resolvePidofLocation() { - if [ "X$PIDOF_BIN" = "X" ] ; then - PIDOF_BIN="pidof" - result=`command -v pidof 2>/dev/null` - if [ $? -ne 0 ] ; then - PIDOF_BIN="/bin/pidof" - if [ ! -x "$PIDOF_BIN" ] ; then - PIDOF_BIN="/usr/sbin/pidof" - if [ ! -x "$PIDOF_BIN" ] ; then - eval echo `gettext 'Unable to locate "pidof".'` - eval echo `gettext 'Please report this message along with the location of the command on your system.'` - exit 1 - fi - fi - fi - fi -} - # check if we are running under Cygwin terminal. # Note: on some OS's (for example Solaris, MacOS), -o is not a valid parameter # and it shows an error message. We redirect stderr to null so the error message @@ -514,34 +532,10 @@ LOCKDIR="/var/lock/subsys" LOCKFILE="$LOCKDIR/$APP_NAME" pid="" -# Resolve the location of the 'ps' command -PS_BIN="/usr/ucb/ps" -if [ ! -x "$PS_BIN" ] -then - PS_BIN="/usr/bin/ps" - if [ ! -x "$PS_BIN" ] - then - PS_BIN="/bin/ps" - if [ ! -x "$PS_BIN" ] - then - eval echo `gettext 'Unable to locate "ps".'` - eval echo `gettext 'Please report this message along with the location of the command on your system.'` - exit 1 - fi - fi -fi +# Resolve the location of the 'ps' & 'tr' command +resolveLocation PS_BIN ps "/usr/ucb;/usr/bin;/bin" 1 +resolveLocation TR_BIN tr "/usr/bin;/bin" 1 -TR_BIN="/usr/bin/tr" -if [ ! -x "$TR_BIN" ] -then - TR_BIN="/bin/tr" - if [ ! -x "$TR_BIN" ] - then - eval echo `gettext 'Unable to locate "tr".'` - eval echo `gettext 'Please report this message along with the location of the command on your system.'` - exit 1 - fi -fi # Resolve the os DIST_OS=`uname -s | $TR_BIN "[A-Z]" "[a-z]" | $TR_BIN -d ' '` case "$DIST_OS" in @@ -552,7 +546,7 @@ case "$DIST_OS" in # HP-UX needs the XPG4 version of ps (for -o args) DIST_OS="hpux" UNIX95="" - export UNIX95 + export UNIX95 ;; 'darwin') DIST_OS="macosx" @@ -564,23 +558,7 @@ case "$DIST_OS" in DIST_OS="zos" ;; 'linux') - if [ -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/redhat_version ] ; then - if [ "X`command -v /sbin/chkconfig`" != "X" ] ; then - DIST_LINUX_FAMILY="Red Hat" - fi - elif [ -f /etc/SuSE-release ] ; then - if [ "X`command -v insserv`" != "X" ] ; then - DIST_LINUX_FAMILY="SUSE" - fi - elif [ -f /etc/lsb-release -o -f /etc/debian_version -o -f /etc/debian_release ] ; then - if [ "X`command -v update-rc.d`" != "X" ] ; then - DIST_LINUX_FAMILY="Debian" - fi - fi - DIST_LINUX_NAME=`grep "^NAME=" /etc/os-release 2>/dev/null | cut -d= -f 2 | sed 's/\"//g'` - if [ "$DIST_LINUX_NAME" = "Amazon Linux" ] && [ "X`command -v /sbin/chkconfig`" != "X" ] ; then - DIST_LINUX_FAMILY="Red Hat" - fi + DIST_OS="linux" ;; esac @@ -1374,7 +1352,7 @@ launchinternal() { if [ "X$pid" = "X" ] then # The string passed to eval must handles spaces in paths correctly. - COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.41 $ADDITIONAL_PARA" + COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.43 $ADDITIONAL_PARA" eval $COMMAND_LINE else eval echo `gettext '$APP_LONG_NAME is already running.'` @@ -1397,7 +1375,7 @@ console() { prepAdditionalParams "$@" # The string passed to eval must handles spaces in paths correctly. - COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.41 $ADDITIONAL_PARA" + COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" $APPNAMEPROP $ANCHORPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.43 $ADDITIONAL_PARA" eval $COMMAND_LINE COMMAND_EXIT_CODE=$? if [ $COMMAND_EXIT_CODE -ne 0 ] ; then @@ -1597,7 +1575,7 @@ upstartInstall() { return 1 fi - eval echo `gettext ' Installing the $APP_LONG_NAME daemon using upstart...'` + eval echo `gettext ' Installing the $APP_LONG_NAME daemon with upstart...'` if [ -f "${REALDIR}/${APP_NAME}.install" ] ; then eval echo `gettext ' a custom upstart conf file ${APP_NAME}.install found'` cp "${REALDIR}/${APP_NAME}.install" "/etc/init/${APP_NAME}.conf" @@ -1655,7 +1633,7 @@ upstartRestart() { upstartRemove() { stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon from upstart...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon from upstart...'` rm "/etc/init/${APP_NAME}.conf" } @@ -1666,7 +1644,7 @@ systemdDetection() { return 1 fi - resolvePidofLocation + resolveLocation PIDOF_BIN pidof ";/bin;/usr/sbin" 1 result=`$PIDOF_BIN systemd` return $? } @@ -1679,7 +1657,7 @@ systemdInstall() { return 1 fi - eval echo `gettext ' Installing the $APP_LONG_NAME daemon using systemd...'` + eval echo `gettext ' Installing the $APP_LONG_NAME daemon with systemd...'` if [ -f "${REALDIR}/${APP_NAME}.service" ] ; then eval echo `gettext ' a custom service file ${APP_NAME}.service found'` cp "${REALDIR}/${APP_NAME}.service" "${SYSTEMD_SERVICE_FILE}" @@ -1735,7 +1713,7 @@ systemdStart() { systemctl start $APP_NAME if [ $? -ne 0 ] ; then - eval echo `gettext 'Failed to start service $APP_NAME'` + eval echo `gettext 'Failed to start $APP_LONG_NAME.'` exit 1 fi @@ -1751,7 +1729,7 @@ systemdStop() { systemctl stop $APP_NAME if [ $? -ne 0 ] ; then - eval echo `gettext 'Failed to stop service $APP_NAME'` + eval echo `gettext 'Failed to stop $APP_LONG_NAME.'` exit 1 fi } @@ -1773,7 +1751,7 @@ systemdRestart() { systemdRemove() { stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon from systemd...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon from systemd...'` systemctl disable $APP_NAME rm "/etc/systemd/system/${APP_NAME}.service" systemctl daemon-reload @@ -1819,7 +1797,7 @@ srcStart() { startsrc -s "${APP_NAME}" if [ $? -ne 0 ] ; then - eval echo `gettext 'Failed to start service $APP_NAME'` + eval echo `gettext 'Failed to start $APP_LONG_NAME.'` exit 1 fi @@ -1835,7 +1813,7 @@ srcStop() { stopsrc -s "${APP_NAME}" if [ $? -ne 0 ] ; then - eval echo `gettext 'Failed to stop service $APP_NAME'` + eval echo `gettext 'Failed to stop $APP_LONG_NAME.'` exit 1 fi } @@ -1861,7 +1839,7 @@ start() { prepAdditionalParams "$@" # The string passed to eval must handles spaces in paths correctly. - COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.41 $ADDITIONAL_PARA" + COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=\"$APP_NAME\" wrapper.pidfile=\"$PIDFILE\" wrapper.daemonize=TRUE $APPNAMEPROP $ANCHORPROP $IGNOREPROP $STATUSPROP $COMMANDPROP $LOCKPROP wrapper.script.version=3.5.43 $ADDITIONAL_PARA" eval $COMMAND_LINE startwait @@ -2012,67 +1990,24 @@ checkInstalled() { installedStatus=$SERVICE_INSTALLED_DEFAULT fi elif [ "$DIST_OS" = "linux" ] ; then - case "$DIST_LINUX_FAMILY" in - 'Red Hat') - if [ "X$1" != "Xstrict" -o \( -z "$USE_SYSTEMD" -a -z "$USE_UPSTART" \) ] ; then - if [ -f "/etc/init.d/$APP_NAME" -o -L "/etc/init.d/$APP_NAME" ] ; then - installedStatus=$SERVICE_INSTALLED_DEFAULT - installedWith="init.d" - fi - fi - if [ "X$1" != "Xstrict" -o -n "$USE_SYSTEMD" ] ; then - if [ -f "${SYSTEMD_SERVICE_FILE}" ] ; then - installedStatus=`expr $installedStatus + $SERVICE_INSTALLED_SYSTEMD` - installedWith="${installedWith}${installedWith:+, }systemd" - fi - fi - if [ "X$1" != "Xstrict" -o -n "$USE_UPSTART" ] ; then - if [ -f "/etc/init/${APP_NAME}.conf" ] ; then - installedStatus=`expr $installedStatus + $SERVICE_INSTALLED_UPSTART` - installedWith="${installedWith}${installedWith:+, }upstart" - fi - fi - ;; - 'SUSE') - if [ "X$1" != "Xstrict" -o \( -z "$USE_SYSTEMD" -a -z "$USE_UPSTART" \) ] ; then - if [ -f "/etc/init.d/$APP_NAME" -o -L "/etc/init.d/$APP_NAME" ] ; then - installedStatus=$SERVICE_INSTALLED_DEFAULT - installedWith="init.d" - fi - fi - if [ "X$1" != "Xstrict" -o -n "$USE_SYSTEMD" ] ; then - if [ -f "${SYSTEMD_SERVICE_FILE}" ] ; then - installedStatus=`expr $installedStatus + $SERVICE_INSTALLED_SYSTEMD` - installedWith="${installedWith}${installedWith:+, }systemd" - fi - fi - ;; - 'Debian') - if [ "X$1" != "Xstrict" -o \( -z "$USE_SYSTEMD" -a -z "$USE_UPSTART" \) ] ; then - if [ -f "/etc/init.d/$APP_NAME" -o -L "/etc/init.d/$APP_NAME" ] ; then - installedStatus=$SERVICE_INSTALLED_DEFAULT - installedWith="init.d" - fi - fi - if [ "X$1" != "Xstrict" -o -n "$USE_SYSTEMD" ] ; then - if [ -f "${SYSTEMD_SERVICE_FILE}" ] ; then - installedStatus=`expr $installedStatus + $SERVICE_INSTALLED_SYSTEMD` - installedWith="${installedWith}${installedWith:+, }systemd" - fi - fi - if [ "X$1" != "Xstrict" -o -n "$USE_UPSTART" ] ; then - if [ -f "/etc/init/${APP_NAME}.conf" ] ; then - installedStatus=`expr $installedStatus + $SERVICE_INSTALLED_UPSTART` - installedWith="${installedWith}${installedWith:+, }upstart" - fi - fi - ;; - *) + if [ "X$1" != "Xstrict" -o \( -z "$USE_SYSTEMD" -a -z "$USE_UPSTART" \) ] ; then if [ -f "/etc/init.d/$APP_NAME" -o -L "/etc/init.d/$APP_NAME" ] ; then installedStatus=$SERVICE_INSTALLED_DEFAULT + installedWith="init.d" fi - ;; - esac + fi + if [ "X$1" != "Xstrict" -o -n "$USE_SYSTEMD" ] ; then + if [ -f "${SYSTEMD_SERVICE_FILE}" ] ; then + installedStatus=`expr $installedStatus + $SERVICE_INSTALLED_SYSTEMD` + installedWith="${installedWith}${installedWith:+, }systemd" + fi + fi + if [ "X$1" != "Xstrict" -o -n "$USE_UPSTART" ] ; then + if [ -f "/etc/init/${APP_NAME}.conf" ] ; then + installedStatus=`expr $installedStatus + $SERVICE_INSTALLED_UPSTART` + installedWith="${installedWith}${installedWith:+, }upstart" + fi + fi elif [ "$DIST_OS" = "hpux" ] ; then if [ -f "/sbin/init.d/$APP_NAME" -o -L "/sbin/init.d/$APP_NAME" ] ; then installedStatus=$SERVICE_INSTALLED_DEFAULT @@ -2166,11 +2101,30 @@ validateAppNameLength() { fi } -printDetectedDistro() { - if [ "X$DIST_LINUX_NAME" != "X" ] ; then - eval echo `gettext 'Detected $DIST_LINUX_NAME \($DIST_LINUX_FAMILY family\):'` +resolveInitdCommand() { + # NOTE: update-rc.d & chkconfig are the recommended interfaces for managing + # init scripts. insserv is a low level tool used by these interfaces. + # chkconfig was available on old versions Ubuntu, but update-rc.d is + # preferred. chkconfig is used on RHEL based Linux. + + # update-rc.d is used on distros such as Debian/Ubuntu + resolveLocation INITD_COMMAND "update-rc.d" ";/usr/sbin" 0 + if [ $? -eq 0 ] ; then + USE_UPDATE_RC=1 else - eval echo `gettext 'Detected $DIST_LINUX_FAMILY or one of its derivatives:'` + # chkconfig is used on distros such as RHEL or Amazon Linux + resolveLocation INITD_COMMAND chkconfig ";/sbin" 0 + if [ $? -eq 0 ] ; then + USE_CHKCONFIG=1 + else + # if neither chkconfig nor update-rc.d are present, try insserv + resolveLocation INITD_COMMAND insserv ";/sbin" 0 + if [ $? -eq 0 ] ; then + USE_INSSERV=1 + else + INITD_COMMAND="" + fi + fi fi } @@ -2194,54 +2148,30 @@ installdaemon() { ln -s "/etc/init.d/$APP_NAME" "/etc/rc3.d/S${APP_RUN_LEVEL_S}$APP_NAME_LOWER" fi elif [ "$DIST_OS" = "linux" ] ; then - case "$DIST_LINUX_FAMILY" in - 'Red Hat') - printDetectedDistro - if [ $installedStatus -ne $SERVICE_NOT_INSTALLED ] ; then - eval echo `gettext ' The $APP_LONG_NAME daemon is already installed with $installedWith.'` - elif [ -n "$USE_SYSTEMD" ] ; then - systemdInstall - elif [ -n "$USE_UPSTART" ] ; then - upstartInstall - else - eval echo `gettext ' Installing the $APP_LONG_NAME daemon...'` + eval echo `gettext 'Detected Linux:'` + if [ $installedStatus -ne $SERVICE_NOT_INSTALLED ] ; then + eval echo `gettext ' The $APP_LONG_NAME daemon is already installed with $installedWith.'` + elif [ -n "$USE_SYSTEMD" ] ; then + systemdInstall + elif [ -n "$USE_UPSTART" ] ; then + upstartInstall + else + resolveInitdCommand + if [ -n "$USE_CHKCONFIG" ] ; then + eval echo `gettext ' Installing the $APP_LONG_NAME daemon with init.d \($INITD_COMMAND\)...'` ln -s "$REALPATH" "/etc/init.d/$APP_NAME" - /sbin/chkconfig --add "$APP_NAME" - /sbin/chkconfig "$APP_NAME" on - fi - ;; - 'SUSE') - printDetectedDistro - if [ $installedStatus -ne $SERVICE_NOT_INSTALLED ] ; then - eval echo `gettext ' The $APP_LONG_NAME daemon is already installed with $installedWith.'` - elif [ -n "$USE_SYSTEMD" ] ; then - systemdInstall - else - eval echo `gettext ' Installing the $APP_LONG_NAME daemon...'` + $INITD_COMMAND --add "$APP_NAME" + $INITD_COMMAND "$APP_NAME" on + elif [ "$USE_INSSERV" ] ; then + eval echo `gettext ' Installing the $APP_LONG_NAME daemon with init.d \($INITD_COMMAND\)...'` ln -s "$REALPATH" "/etc/init.d/$APP_NAME" - insserv "/etc/init.d/$APP_NAME" - fi - ;; - 'Debian') - printDetectedDistro - if [ $installedStatus -ne $SERVICE_NOT_INSTALLED ] ; then - eval echo `gettext ' The $APP_LONG_NAME daemon is already installed with $installedWith.'` - elif [ -n "$USE_SYSTEMD" ] ; then - systemdInstall - elif [ -n "$USE_UPSTART" ] ; then - upstartInstall - else - eval echo `gettext ' Installing the $APP_LONG_NAME daemon using init.d...'` + $INITD_COMMAND "/etc/init.d/$APP_NAME" + elif [ "$USE_UPDATE_RC" ] ; then + eval echo `gettext ' Installing the $APP_LONG_NAME daemon with init.d \($INITD_COMMAND\)...'` ln -s "$REALPATH" "/etc/init.d/$APP_NAME" - update-rc.d "$APP_NAME" defaults - fi - ;; - *) - eval echo `gettext 'Detected Linux:'` - if [ $installedStatus -ne $SERVICE_NOT_INSTALLED ] ; then - eval echo `gettext ' The $APP_LONG_NAME daemon is already installed.'` + $INITD_COMMAND "$APP_NAME" defaults else - eval echo `gettext ' Installing the $APP_LONG_NAME daemon...'` + eval echo `gettext ' Installing the $APP_LONG_NAME daemon with init.d...'` ln -s "$REALPATH" /etc/init.d/$APP_NAME for i in `ls "/etc/rc3.d/K"??"$APP_NAME_LOWER" "/etc/rc5.d/K"??"$APP_NAME_LOWER" "/etc/rc3.d/S"??"$APP_NAME_LOWER" "/etc/rc5.d/S"??"$APP_NAME_LOWER" 2>/dev/null` ; do eval echo `gettext ' Removing unexpected file before proceeding: $i'` @@ -2252,8 +2182,7 @@ installdaemon() { ln -s "/etc/init.d/$APP_NAME" "/etc/rc5.d/S${APP_RUN_LEVEL_S}$APP_NAME_LOWER" ln -s "/etc/init.d/$APP_NAME" "/etc/rc5.d/K${APP_RUN_LEVEL_K}$APP_NAME_LOWER" fi - ;; - esac + fi elif [ "$DIST_OS" = "hpux" ] ; then eval echo `gettext 'Detected HP-UX:'` if [ $installedStatus -ne $SERVICE_NOT_INSTALLED ] ; then @@ -2467,7 +2396,7 @@ removedaemon() { isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT if [ $? -eq 1 ] ; then stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon...'` for i in `ls "/etc/rc3.d/K"??"$APP_NAME_LOWER" "/etc/rc3.d/S"??"$APP_NAME_LOWER" "/etc/init.d/$APP_NAME" 2>/dev/null` ; do rm -f $i done @@ -2476,50 +2405,7 @@ removedaemon() { exit 1 fi elif [ "$DIST_OS" = "linux" ] ; then - case "$DIST_LINUX_FAMILY" in - 'Red Hat') - printDetectedDistro - isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT - if [ $? -eq 1 ] ; then - stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` - /sbin/chkconfig "$APP_NAME" off - /sbin/chkconfig --del "$APP_NAME" - rm -f "/etc/init.d/$APP_NAME" - fi - ;; - 'SUSE') - printDetectedDistro - isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT - if [ $? -eq 1 ] ; then - stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon from init.d...'` - insserv -r "/etc/init.d/$APP_NAME" - rm -f "/etc/init.d/$APP_NAME" - fi - ;; - 'Debian') - printDetectedDistro - isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT - if [ $? -eq 1 ] ; then - stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon from init.d...'` - update-rc.d -f "$APP_NAME" remove - rm -f "/etc/init.d/$APP_NAME" - fi - ;; - *) - eval echo `gettext 'Detected Linux:'` - isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT - if [ $? -eq 1 ] ; then - stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` - for i in `ls "/etc/rc3.d/K"??"$APP_NAME_LOWER" "/etc/rc5.d/K"??"$APP_NAME_LOWER" "/etc/rc3.d/S"??"$APP_NAME_LOWER" "/etc/rc5.d/S"??"$APP_NAME_LOWER" "/etc/init.d/$APP_NAME" 2>/dev/null` ; do - rm -f $i - done - fi - ;; - esac + eval echo `gettext 'Detected Linux:'` isBitSet $installedStatus $SERVICE_INSTALLED_SYSTEMD if [ $? -eq 1 ] ; then systemdRemove @@ -2528,6 +2414,27 @@ removedaemon() { if [ $? -eq 1 ] ; then upstartRemove fi + isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT + if [ $? -eq 1 ] ; then + stopit "0" + eval echo `gettext ' Removing the $APP_LONG_NAME daemon from init.d...'` + resolveInitdCommand + if [ -n "$USE_CHKCONFIG" ] ; then + $INITD_COMMAND "$APP_NAME" off + $INITD_COMMAND --del "$APP_NAME" + rm -f "/etc/init.d/$APP_NAME" + elif [ "$USE_INSSERV" ] ; then + $INITD_COMMAND -r "/etc/init.d/$APP_NAME" + rm -f "/etc/init.d/$APP_NAME" + elif [ "$USE_UPDATE_RC" ] ; then + $INITD_COMMAND -f "$APP_NAME" remove + rm -f "/etc/init.d/$APP_NAME" + else + for i in `ls "/etc/rc3.d/K"??"$APP_NAME_LOWER" "/etc/rc5.d/K"??"$APP_NAME_LOWER" "/etc/rc3.d/S"??"$APP_NAME_LOWER" "/etc/rc5.d/S"??"$APP_NAME_LOWER" "/etc/init.d/$APP_NAME" 2>/dev/null` ; do + rm -f $i + done + fi + fi if [ $installedStatus -eq $SERVICE_NOT_INSTALLED ] ; then eval echo `gettext ' The $APP_LONG_NAME daemon is not currently installed.'` exit 1 @@ -2537,7 +2444,7 @@ removedaemon() { isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT if [ $? -eq 1 ] ; then stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon...'` for i in `ls "/sbin/rc3.d/K"??"$APP_NAME_LOWER" "/sbin/rc3.d/S"??"$APP_NAME_LOWER" "/sbin/init.d/$APP_NAME" 2>/dev/null` ; do rm -f $i done @@ -2549,7 +2456,7 @@ removedaemon() { eval echo `gettext 'Detected AIX:'` if [ $installedStatus -ne $SERVICE_NOT_INSTALLED ] ; then stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon...'` isBitSet $installedStatus $SERVICE_INSTALLED_DEFAULT if [ $? -eq 1 ] ; then for i in `ls "/etc/rc.d/rc2.d/K"??"$APP_NAME_LOWER" "/etc/rc.d/rc2.d/S"??"$APP_NAME_LOWER" "/etc/rc.d/init.d/$APP_NAME" 2>/dev/null` ; do @@ -2573,7 +2480,7 @@ removedaemon() { eval echo `gettext 'Detected FreeBSD:'` if [ -f "/etc/rc.d/$APP_NAME" -o -L "/etc/rc.d/$APP_NAME" ] ; then stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon...'` for i in "/etc/rc.d/$APP_NAME" do rm -f $i @@ -2587,7 +2494,7 @@ removedaemon() { eval echo `gettext 'Detected Mac OSX:'` if [ -f "/Library/LaunchDaemons/${APP_PLIST}" -o -L "/Library/LaunchDaemons/${APP_PLIST}" ] ; then stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon...'` # Make sure the plist is installed LOADED_PLIST=`launchctl list | grep ${APP_PLIST_BASE}` if [ "X${LOADED_PLIST}" != "X" ] ; then @@ -2602,7 +2509,7 @@ removedaemon() { eval echo `gettext 'Detected z/OS:'` if [ -f /etc/rc.bak ] ; then stopit "0" - eval echo `gettext ' Removing $APP_LONG_NAME daemon...'` + eval echo `gettext ' Removing the $APP_LONG_NAME daemon...'` cp /etc/rc /etc/rc.bak sed "s/_BPX_JOBNAME=\'APP_NAME\'.*//g" /etc/rc.bak > /etc/rc rm /etc/rc.bak diff --git a/conf/catalina.policy b/conf/catalina.policy new file mode 100644 index 0000000..4a5af06 --- /dev/null +++ b/conf/catalina.policy @@ -0,0 +1,271 @@ +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. + +// ============================================================================ +// catalina.policy - Security Policy Permissions for Tomcat +// +// This file contains a default set of security policies to be enforced (by the +// JVM) when Catalina is executed with the "-security" option. In addition +// to the permissions granted here, the following additional permissions are +// granted to each web application: +// +// * Read access to the web application's document root directory +// * Read, write and delete access to the web application's working directory +// ============================================================================ + + +// ========== SYSTEM CODE PERMISSIONS ========================================= + + +// These permissions apply to javac +grant codeBase "file:${java.home}/lib/-" { + permission java.security.AllPermission; +}; + +// These permissions apply to all shared system extensions +grant codeBase "file:${java.home}/jre/lib/ext/-" { + permission java.security.AllPermission; +}; + +// These permissions apply to javac when ${java.home} points at $JAVA_HOME/jre +grant codeBase "file:${java.home}/../lib/-" { + permission java.security.AllPermission; +}; + +// These permissions apply to all shared system extensions when +// ${java.home} points at $JAVA_HOME/jre +grant codeBase "file:${java.home}/lib/ext/-" { + permission java.security.AllPermission; +}; + + +// ========== CATALINA CODE PERMISSIONS ======================================= + + +// These permissions apply to the daemon code +grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" { + permission java.security.AllPermission; +}; + +// These permissions apply to the logging API +// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home}, +// update this section accordingly. +// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} +grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" { + permission java.io.FilePermission + "${java.home}${file.separator}lib${file.separator}logging.properties", "read"; + + permission java.io.FilePermission + "${catalina.base}${file.separator}conf${file.separator}logging.properties", "read"; + permission java.io.FilePermission + "${catalina.base}${file.separator}logs", "read, write"; + permission java.io.FilePermission + "${catalina.base}${file.separator}logs${file.separator}*", "read, write, delete"; + + permission java.lang.RuntimePermission "shutdownHooks"; + permission java.lang.RuntimePermission "getClassLoader"; + permission java.lang.RuntimePermission "setContextClassLoader"; + + permission java.lang.management.ManagementPermission "monitor"; + + permission java.util.logging.LoggingPermission "control"; + + permission java.util.PropertyPermission "java.util.logging.config.class", "read"; + permission java.util.PropertyPermission "java.util.logging.config.file", "read"; + permission java.util.PropertyPermission "org.apache.juli.AsyncLoggerPollInterval", "read"; + permission java.util.PropertyPermission "org.apache.juli.AsyncMaxRecordCount", "read"; + permission java.util.PropertyPermission "org.apache.juli.AsyncOverflowDropType", "read"; + permission java.util.PropertyPermission "org.apache.juli.ClassLoaderLogManager.debug", "read"; + permission java.util.PropertyPermission "catalina.base", "read"; + + // Note: To enable per context logging configuration, permit read access to + // the appropriate file. Be sure that the logging configuration is + // secure before enabling such access. + // E.g. for the examples web application (uncomment and unwrap + // the following to be on a single line): + // permission java.io.FilePermission "${catalina.base}${file.separator} + // webapps${file.separator}examples${file.separator}WEB-INF + // ${file.separator}classes${file.separator}logging.properties", "read"; +}; + +// These permissions apply to the server startup code +grant codeBase "file:${catalina.home}/bin/bootstrap.jar" { + permission java.security.AllPermission; +}; + +// These permissions apply to the servlet API classes +// and those that are shared across all class loaders +// located in the "lib" directory +grant codeBase "file:${catalina.home}/lib/-" { + permission java.security.AllPermission; +}; + + +// If using a per instance lib directory, i.e. ${catalina.base}/lib, +// then the following permission will need to be uncommented +// grant codeBase "file:${catalina.base}/lib/-" { +// permission java.security.AllPermission; +// }; + + +// ========== WEB APPLICATION PERMISSIONS ===================================== + + +// These permissions are granted by default to all web applications +// In addition, a web application will be given a read FilePermission +// for all files and directories in its document root. +grant { + // Required for JNDI lookup of named JDBC DataSource's and + // javamail named MimePart DataSource used to send mail + permission java.util.PropertyPermission "java.home", "read"; + permission java.util.PropertyPermission "java.naming.*", "read"; + permission java.util.PropertyPermission "javax.sql.*", "read"; + + // OS Specific properties to allow read access + permission java.util.PropertyPermission "os.name", "read"; + permission java.util.PropertyPermission "os.version", "read"; + permission java.util.PropertyPermission "os.arch", "read"; + permission java.util.PropertyPermission "file.separator", "read"; + permission java.util.PropertyPermission "path.separator", "read"; + permission java.util.PropertyPermission "line.separator", "read"; + + // JVM properties to allow read access + permission java.util.PropertyPermission "java.version", "read"; + permission java.util.PropertyPermission "java.vendor", "read"; + permission java.util.PropertyPermission "java.vendor.url", "read"; + permission java.util.PropertyPermission "java.class.version", "read"; + permission java.util.PropertyPermission "java.specification.version", "read"; + permission java.util.PropertyPermission "java.specification.vendor", "read"; + permission java.util.PropertyPermission "java.specification.name", "read"; + + permission java.util.PropertyPermission "java.vm.specification.version", "read"; + permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; + permission java.util.PropertyPermission "java.vm.specification.name", "read"; + permission java.util.PropertyPermission "java.vm.version", "read"; + permission java.util.PropertyPermission "java.vm.vendor", "read"; + permission java.util.PropertyPermission "java.vm.name", "read"; + + // Required for OpenJMX + permission java.lang.RuntimePermission "getAttribute"; + + // Allow read of JAXP compliant XML parser debug + permission java.util.PropertyPermission "jaxp.debug", "read"; + + // All JSPs need to be able to read this package + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat"; + + // Precompiled JSPs need access to these packages. + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.el"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime"; + permission java.lang.RuntimePermission + "accessClassInPackage.org.apache.jasper.runtime.*"; + + // The cookie code needs these. + permission java.util.PropertyPermission + "org.apache.catalina.STRICT_SERVLET_COMPLIANCE", "read"; + permission java.util.PropertyPermission + "org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING", "read"; + permission java.util.PropertyPermission + "org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR", "read"; + + // Applications using WebSocket need to be able to access these packages + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; + + // Applications need to access these packages to use the Servlet 4.0 Preview + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.servlet4preview.http"; +}; + + +// The Manager application needs access to the following packages to support the +// session display functionality. It also requires the custom Tomcat +// DeployXmlPermission to enable the use of META-INF/context.xml +// These settings support the following configurations: +// - default CATALINA_HOME == CATALINA_BASE +// - CATALINA_HOME != CATALINA_BASE, per instance Manager in CATALINA_BASE +// - CATALINA_HOME != CATALINA_BASE, shared Manager in CATALINA_HOME +grant codeBase "file:${catalina.base}/webapps/manager/-" { + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.ha.session"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager.util"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util"; + permission org.apache.catalina.security.DeployXmlPermission "manager"; +}; +grant codeBase "file:${catalina.home}/webapps/manager/-" { + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.ha.session"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager.util"; + permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util"; + permission org.apache.catalina.security.DeployXmlPermission "manager"; +}; + +// The Host Manager application needs the custom Tomcat DeployXmlPermission to +// enable the use of META-INF/context.xml +// These settings support the following configurations: +// - default CATALINA_HOME == CATALINA_BASE +// - CATALINA_HOME != CATALINA_BASE, per instance Host Manager in CATALINA_BASE +// - CATALINA_HOME != CATALINA_BASE, shared Host Manager in CATALINA_HOME +grant codeBase "file:${catalina.base}/webapps/host-manager/-" { + permission org.apache.catalina.security.DeployXmlPermission "host-manager"; +}; +grant codeBase "file:${catalina.home}/webapps/host-manager/-" { + permission org.apache.catalina.security.DeployXmlPermission "host-manager"; +}; + + +// You can assign additional permissions to particular web applications by +// adding additional "grant" entries here, based on the code base for that +// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files. +// +// Different permissions can be granted to JSP pages, classes loaded from +// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/ +// directory, or even to individual jar files in the /WEB-INF/lib/ directory. +// +// For instance, assume that the standard "examples" application +// included a JDBC driver that needed to establish a network connection to the +// corresponding database and used the scrape taglib to get the weather from +// the NOAA web server. You might create a "grant" entries like this: +// +// The permissions granted to the context root directory apply to JSP pages. +// grant codeBase "file:${catalina.base}/webapps/examples/-" { +// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect"; +// permission java.net.SocketPermission "*.noaa.gov:80", "connect"; +// }; +// +// The permissions granted to the context WEB-INF/classes directory +// grant codeBase "file:${catalina.base}/webapps/examples/WEB-INF/classes/-" { +// }; +// +// The permission granted to your JDBC driver +// grant codeBase "jar:file:${catalina.base}/webapps/examples/WEB-INF/lib/driver.jar!/-" { +// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect"; +// }; +// The permission granted to the scrape taglib +// grant codeBase "jar:file:${catalina.base}/webapps/examples/WEB-INF/lib/scrape.jar!/-" { +// permission java.net.SocketPermission "*.noaa.gov:80", "connect"; +// }; + +// To grant permissions for web applications using packed WAR files, use the +// Tomcat specific WAR url scheme. +// +// The permissions granted to the entire web application +// grant codeBase "war:file:${catalina.base}/webapps/examples.war*/-" { +// }; +// +// The permissions granted to a specific JAR +// grant codeBase "war:file:${catalina.base}/webapps/examples.war*/WEB-INF/lib/foo.jar" { +// }; diff --git a/conf/catalina.properties b/conf/catalina.properties new file mode 100644 index 0000000..826cb8f --- /dev/null +++ b/conf/catalina.properties @@ -0,0 +1,336 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. + +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageAccess unless the +# corresponding RuntimePermission ("accessClassInPackage."+package) has +# been granted. +package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.jasper.,org.apache.tomcat. +# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageDefinition unless the +# corresponding RuntimePermission ("defineClassInPackage."+package) has +# been granted. +# +# by default, no packages are restricted for definition, and none of +# the class loaders supplied with the JDK call checkPackageDefinition. +# +package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,\ +org.apache.jasper.,org.apache.naming.,org.apache.tomcat. + +# +# +# List of comma-separated paths defining the contents of the "common" +# classloader. Prefixes should be used to define what is the repository type. +# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute. +# If left as blank,the JVM system loader will be used as Catalina's "common" +# loader. +# Examples: +# "foo": Add this folder as a class repository +# "foo/*.jar": Add all the JARs of the specified folder as class +# repositories +# "foo/bar.jar": Add bar.jar as a class repository +# +# Note: Values are enclosed in double quotes ("...") in case either the +# ${catalina.base} path or the ${catalina.home} path contains a comma. +# Because double quotes are used for quoting, the double quote character +# may not appear in a path. +common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar" + +# +# List of comma-separated paths defining the contents of the "server" +# classloader. Prefixes should be used to define what is the repository type. +# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute. +# If left as blank, the "common" loader will be used as Catalina's "server" +# loader. +# Examples: +# "foo": Add this folder as a class repository +# "foo/*.jar": Add all the JARs of the specified folder as class +# repositories +# "foo/bar.jar": Add bar.jar as a class repository +# +# Note: Values may be enclosed in double quotes ("...") in case either the +# ${catalina.base} path or the ${catalina.home} path contains a comma. +# Because double quotes are used for quoting, the double quote character +# may not appear in a path. +server.loader= + +# +# List of comma-separated paths defining the contents of the "shared" +# classloader. Prefixes should be used to define what is the repository type. +# Path may be relative to the CATALINA_BASE path or absolute. If left as blank, +# the "common" loader will be used as Catalina's "shared" loader. +# Examples: +# "foo": Add this folder as a class repository +# "foo/*.jar": Add all the JARs of the specified folder as class +# repositories +# "foo/bar.jar": Add bar.jar as a class repository +# Please note that for single jars, e.g. bar.jar, you need the URL form +# starting with file:. +# +# Note: Values may be enclosed in double quotes ("...") in case either the +# ${catalina.base} path or the ${catalina.home} path contains a comma. +# Because double quotes are used for quoting, the double quote character +# may not appear in a path. +shared.loader= + +# Default list of JAR files that should not be scanned using the JarScanner +# functionality. This is typically used to scan JARs for configuration +# information. JARs that do not contain such information may be excluded from +# the scan to speed up the scanning process. This is the default list. JARs on +# this list are excluded from all scans. The list must be a comma separated list +# of JAR file names. +# The list of JARs to skip may be over-ridden at a Context level for individual +# scan types by configuring a JarScanner with a nested JarScanFilter. +# The JARs listed below include: +# - Tomcat Bootstrap JARs +# - Tomcat API JARs +# - Catalina JARs +# - Jasper JARs +# - Tomcat JARs +# - Common non-Tomcat JARs +# - Test JARs (JUnit, Cobertura and dependencies) +tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ +annotations-api.jar,\ +ant-junit*.jar,\ +ant-launcher.jar,\ +ant.jar,\ +asm-*.jar,\ +aspectj*.jar,\ +bootstrap.jar,\ +catalina-ant.jar,\ +catalina-ha.jar,\ +catalina-jmx-remote.jar,\ +catalina-storeconfig.jar,\ +catalina-tribes.jar,\ +catalina-ws.jar,\ +catalina.jar,\ +cglib-*.jar,\ +cobertura-*.jar,\ +commons-beanutils*.jar,\ +commons-codec*.jar,\ +commons-collections*.jar,\ +commons-daemon.jar,\ +commons-dbcp*.jar,\ +commons-digester*.jar,\ +commons-fileupload*.jar,\ +commons-httpclient*.jar,\ +commons-io*.jar,\ +commons-lang*.jar,\ +commons-logging*.jar,\ +commons-math*.jar,\ +commons-pool*.jar,\ +dom4j-*.jar,\ +easymock-*.jar,\ +ecj-*.jar,\ +el-api.jar,\ +geronimo-spec-jaxrpc*.jar,\ +h2*.jar,\ +hamcrest-*.jar,\ +hibernate*.jar,\ +httpclient*.jar,\ +icu4j-*.jar,\ +jasper-el.jar,\ +jasper.jar,\ +jaspic-api.jar,\ +jaxb-*.jar,\ +jaxen-*.jar,\ +jdom-*.jar,\ +jetty-*.jar,\ +jmx-tools.jar,\ +jmx.jar,\ +jsp-api.jar,\ +jstl.jar,\ +jta*.jar,\ +junit-*.jar,\ +junit.jar,\ +log4j*.jar,\ +mail*.jar,\ +objenesis-*.jar,\ +oraclepki.jar,\ +oro-*.jar,\ +servlet-api-*.jar,\ +servlet-api.jar,\ +slf4j*.jar,\ +taglibs-standard-spec-*.jar,\ +tagsoup-*.jar,\ +tomcat-api.jar,\ +tomcat-coyote.jar,\ +tomcat-dbcp.jar,\ +tomcat-i18n-*.jar,\ +tomcat-jdbc.jar,\ +tomcat-jni.jar,\ +tomcat-juli-adapters.jar,\ +tomcat-juli.jar,\ +tomcat-util-scan.jar,\ +tomcat-util.jar,\ +tomcat-websocket.jar,\ +tools.jar,\ +websocket-api.jar,\ +wsdl4j*.jar,\ +xercesImpl.jar,\ +xml-apis.jar,\ +xmlParserAPIs-*.jar,\ +xmlParserAPIs.jar,\ +xom-*.jar,\ +amqp-client-*.jar,\ +ant-*.jar,\ +ant-launcher-*.jar,\ +asm-*.jar,\ +aspectjweaver-*.jar,\ +bcpkix-*.jar,\ +bcprov-*.jar,\ +cglib-nodep-*.jar,\ +commons-beanutils-*.jar,\ +commons-codec-*.jar,\ +commons-collections-*.jar,\ +commons-fileupload-*.jar,\ +commons-io-*.jar,\ +commons-lang-*.jar,\ +commons-lang3-*.jar,\ +commons-logging-*.jar,\ +commons-net-*.jar,\ +commons-pool-*.jar,\ +commons-pool2-*.jar,\ +consul-api-*.jar,\ +curvesapi-*.jar,\ +cxf-core-*.jar,\ +cxf-rt-bindings-soap-*.jar,\ +cxf-rt-bindings-xml-*.jar,\ +cxf-rt-databinding-jaxb-*.jar,\ +cxf-rt-frontend-jaxws-*.jar,\ +cxf-rt-frontend-simple-*.jar,\ +cxf-rt-transports-http-*.jar,\ +cxf-rt-transports-udp-*.jar,\ +cxf-rt-ws-addr-*.jar,\ +cxf-rt-wsdl-*.jar,\ +cxf-rt-ws-policy-*.jar,\ +dom4j-*.jar,\ +druid-*.jar,\ +ehcache-*.jar,\ +ehcache-core-*.jar,\ +fr-*.jar,\ +gson-*.jar,\ +http-client-*.jar,\ +httpclient-*.jar,\ +httpcore-*.jar,\ +httpmime-*.jar,\ +jackson-annotations-*.jar,\ +jackson-core-*.jar,\ +jackson-core-asl-*.jar,\ +jackson-databind-*.jar,\ +jackson-mapper-asl-*.jar,\ +java-uuid-generator-*.jar,\ +javax.servlet-api-*.jar,\ +jaxb-core-*.jar,\ +jaxb-impl-*.jar,\ +jcl-over-slf4j-*.jar,\ +jedis-*.jar,\ +jsoup-*.jar,\ +jsqlparser-*.jar,\ +jstl-*.jar,\ +jta-*.jar,\ +libthrift-*.jar,\ +log4j-*.jar,\ +log4j-1.2-api-*.jar,\ +log4j-api-*.jar,\ +log4j-core-*.jar,\ +log4j-jcl-*.jar,\ +log4j-jul-*.jar,\ +log4j-slf4j-impl-*.jar,\ +log4j-web-*.jar,\ +mapper-*.jar,\ +mina-core-*.jar,\ +mybatis-*.jar,\ +mybatis-generator-core-*.jar,\ +mybatis-spring-*.jar,\ +mysql-connector-java-*.jar,\ +neethi-*.jar,\ +pagehelper-*.jar,\ +persistence-api-*.jar,\ +poi-*.jar,\ +poi-ooxml-*.jar,\ +poi-ooxml-schemas-*.jar,\ +quartz-*.jar,\ +shiro-core-*.jar,\ +shiro-ehcache-*.jar,\ +shiro-quartz-*.jar,\ +shiro-spring-*.jar,\ +shiro-web-*.jar,\ +slf4j-api-*.jar,\ +slf4j-log4j12-*.jar,\ +spring-amqp-*.jar,\ +spring-aop-*.jar,\ +spring-aspects-*.jar,\ +spring-beans-*.jar,\ +spring-context-*.jar,\ +spring-context-support-*.jar,\ +spring-core-*.jar,\ +spring-data-commons-*.jar,\ +spring-data-keyvalue-*.jar,\ +spring-data-redis-*.jar,\ +spring-expression-*.jar,\ +spring-instrument-*.jar,\ +spring-jdbc-*.jar,\ +spring-jms-*.jar,\ +spring-messaging-*.jar,\ +spring-orm-*.jar,\ +spring-oxm-*.jar,\ +spring-rabbit-*.jar,\ +spring-retry-*.jar,\ +spring-tx-*.jar,\ +spring-web-*.jar,\ +spring-webmvc-*.jar,\ +spring-websocket-*.jar,\ +stax2-api-*.jar,\ +stax-api-*.jar,\ +tika-*.jar,\ +woodstox-core-asl-*.jar,\ +wsdl4j-*.jar,\ +xml-apis-*.jar,\ +xmlbeans-*.jar,\ +xmlpull-*.jar,\ +xml-resolver-*.jar,\ +xmlschema-core-*.jar,\ +xpp3_min-*.jar,\ +xstream-*.jar,\ +zookeeper-*.jar + +# Default list of JAR files that should be scanned that overrides the default +# jarsToSkip list above. This is typically used to include a specific JAR that +# has been excluded by a broad file name pattern in the jarsToSkip list. +# The list of JARs to scan may be over-ridden at a Context level for individual +# scan types by configuring a JarScanner with a nested JarScanFilter. +tomcat.util.scan.StandardJarScanFilter.jarsToScan=\ +log4j-taglib*.jar,\ +log4j-web*.jar,\ +log4javascript*.jar,\ +slf4j-taglib*.jar + +# String cache configuration. +tomcat.util.buf.StringCache.byte.enabled=true +#tomcat.util.buf.StringCache.char.enabled=true +#tomcat.util.buf.StringCache.trainThreshold=500000 +#tomcat.util.buf.StringCache.cacheSize=5000 + +# This system property is deprecated. Use the relaxedPathChars relaxedQueryChars +# attributes of the Connector instead. These attributes permit a wider range of +# characters to be configured as valid. +# Allow for changes to HTTP request validation +# WARNING: Using this option may expose the server to CVE-2016-6816 +#tomcat.util.http.parser.HttpParser.requestTargetAllow=| diff --git a/conf/certs/.keep b/conf/certs/.keep new file mode 100644 index 0000000..e69de29 diff --git a/conf/context.xml b/conf/context.xml new file mode 100644 index 0000000..1ce718f --- /dev/null +++ b/conf/context.xml @@ -0,0 +1,33 @@ + + + + + + + + WEB-INF/web.xml + ${catalina.base}/conf/web.xml + + + + + + + diff --git a/conf/jaspic-providers.xml b/conf/jaspic-providers.xml new file mode 100644 index 0000000..cdebf87 --- /dev/null +++ b/conf/jaspic-providers.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/conf/jaspic-providers.xsd b/conf/jaspic-providers.xsd new file mode 100644 index 0000000..1004a11 --- /dev/null +++ b/conf/jaspic-providers.xsd @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/conf/server.tmpl b/conf/server.tmpl new file mode 100644 index 0000000..53b0375 --- /dev/null +++ b/conf/server.tmpl @@ -0,0 +1,41 @@ + + + + + + + + +{{- if eq .Jvm.JmxRemote.Enabled "true"}} + +{{- end}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/conf/server.xml b/conf/server.xml new file mode 100644 index 0000000..c62cf45 --- /dev/null +++ b/conf/server.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/conf/subconf/.keep b/conf/subconf/.keep new file mode 100644 index 0000000..e69de29 diff --git a/conf/tomcat-users.xml b/conf/tomcat-users.xml new file mode 100644 index 0000000..aef66d0 --- /dev/null +++ b/conf/tomcat-users.xml @@ -0,0 +1,44 @@ + + + + + + + diff --git a/conf/tomcat-users.xsd b/conf/tomcat-users.xsd new file mode 100644 index 0000000..6a3446c --- /dev/null +++ b/conf/tomcat-users.xsd @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/conf/web.tmpl b/conf/web.tmpl new file mode 100644 index 0000000..39f030c --- /dev/null +++ b/conf/web.tmpl @@ -0,0 +1,4771 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + org.apache.catalina.servlets.DefaultServlet + + debug + 0 + + + listings + false + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jsp + org.apache.jasper.servlet.JspServlet + + fork + false + + + xpoweredBy + false + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + / + + + + + jsp + *.jsp + *.jspx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{{- if eq .Tomcat.SetCharacterEncodingFilter.Enabled "true"}} + + setCharacterEncodingFilter + org.apache.catalina.filters.SetCharacterEncodingFilter + + encoding + {{.Tomcat.SetCharacterEncodingFilter.Encoding}} + + + ignore + false + + {{.Tomcat.SetCharacterEncodingFilter.AsyncSupported}} + +{{- end}} + + + + +{{- if eq .Tomcat.FailedRequestFilter.Enabled "true"}} + + failedRequestFilter + org.apache.catalina.filters.FailedRequestFilter + {{.Tomcat.FailedRequestFilter.AsyncSupported}} + +{{- end}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{{- if eq .Tomcat.CorsFilter.Enabled "true"}} + + CorsFilter + org.apache.catalina.filters.CorsFilter + + cors.allowed.origins + {{.Tomcat.CorsFilter.AllowedOrigins}} + + + cors.allowed.methods + {{.Tomcat.CorsFilter.AllowedMethods}} + + + cors.allowed.headers + {{.Tomcat.CorsFilter.AllowedHeaders}} + + + cors.exposed.headers + {{.Tomcat.CorsFilter.ExposedHeaders}} + + + cors.support.credentials + {{.Tomcat.CorsFilter.SupportCredentials}} + + + cors.preflight.maxage + {{.Tomcat.CorsFilter.PreflightMaxage}} + + {{.Tomcat.CorsFilter.AsyncSupported}} + +{{- end}} + + + + + + + +{{- if eq .Tomcat.SetCharacterEncodingFilter.Enabled "true"}} + + setCharacterEncodingFilter + /* + +{{- end}} + + +{{- if eq .Tomcat.FailedRequestFilter.Enabled "true"}} + + failedRequestFilter + /* + +{{- end}} + + + + + +{{- if eq .Tomcat.CorsFilter.Enabled "true"}} + + CorsFilter + /* + +{{- end}} + + + + + + + 30 + + + + + + + + + + + + + 123 + application/vnd.lotus-1-2-3 + + + 3dml + text/vnd.in3d.3dml + + + 3ds + image/x-3ds + + + 3g2 + video/3gpp2 + + + 3gp + video/3gpp + + + 7z + application/x-7z-compressed + + + aab + application/x-authorware-bin + + + aac + audio/x-aac + + + aam + application/x-authorware-map + + + aas + application/x-authorware-seg + + + abs + audio/x-mpeg + + + abw + application/x-abiword + + + ac + application/pkix-attr-cert + + + acc + application/vnd.americandynamics.acc + + + ace + application/x-ace-compressed + + + acu + application/vnd.acucobol + + + acutc + application/vnd.acucorp + + + adp + audio/adpcm + + + aep + application/vnd.audiograph + + + afm + application/x-font-type1 + + + afp + application/vnd.ibm.modcap + + + ahead + application/vnd.ahead.space + + + ai + application/postscript + + + aif + audio/x-aiff + + + aifc + audio/x-aiff + + + aiff + audio/x-aiff + + + aim + application/x-aim + + + air + application/vnd.adobe.air-application-installer-package+zip + + + ait + application/vnd.dvb.ait + + + ami + application/vnd.amiga.ami + + + anx + application/annodex + + + apk + application/vnd.android.package-archive + + + appcache + text/cache-manifest + + + application + application/x-ms-application + + + apr + application/vnd.lotus-approach + + + arc + application/x-freearc + + + art + image/x-jg + + + asc + application/pgp-signature + + + asf + video/x-ms-asf + + + asm + text/x-asm + + + aso + application/vnd.accpac.simply.aso + + + asx + video/x-ms-asf + + + atc + application/vnd.acucorp + + + atom + application/atom+xml + + + atomcat + application/atomcat+xml + + + atomsvc + application/atomsvc+xml + + + atx + application/vnd.antix.game-component + + + au + audio/basic + + + avi + video/x-msvideo + + + avx + video/x-rad-screenplay + + + aw + application/applixware + + + axa + audio/annodex + + + axv + video/annodex + + + azf + application/vnd.airzip.filesecure.azf + + + azs + application/vnd.airzip.filesecure.azs + + + azw + application/vnd.amazon.ebook + + + bat + application/x-msdownload + + + bcpio + application/x-bcpio + + + bdf + application/x-font-bdf + + + bdm + application/vnd.syncml.dm+wbxml + + + bed + application/vnd.realvnc.bed + + + bh2 + application/vnd.fujitsu.oasysprs + + + bin + application/octet-stream + + + blb + application/x-blorb + + + blorb + application/x-blorb + + + bmi + application/vnd.bmi + + + bmp + image/bmp + + + body + text/html + + + book + application/vnd.framemaker + + + box + application/vnd.previewsystems.box + + + boz + application/x-bzip2 + + + bpk + application/octet-stream + + + btif + image/prs.btif + + + bz + application/x-bzip + + + bz2 + application/x-bzip2 + + + c + text/x-c + + + c11amc + application/vnd.cluetrust.cartomobile-config + + + c11amz + application/vnd.cluetrust.cartomobile-config-pkg + + + c4d + application/vnd.clonk.c4group + + + c4f + application/vnd.clonk.c4group + + + c4g + application/vnd.clonk.c4group + + + c4p + application/vnd.clonk.c4group + + + c4u + application/vnd.clonk.c4group + + + cab + application/vnd.ms-cab-compressed + + + caf + audio/x-caf + + + cap + application/vnd.tcpdump.pcap + + + car + application/vnd.curl.car + + + cat + application/vnd.ms-pki.seccat + + + cb7 + application/x-cbr + + + cba + application/x-cbr + + + cbr + application/x-cbr + + + cbt + application/x-cbr + + + cbz + application/x-cbr + + + cc + text/x-c + + + cct + application/x-director + + + ccxml + application/ccxml+xml + + + cdbcmsg + application/vnd.contact.cmsg + + + cdf + application/x-cdf + + + cdkey + application/vnd.mediastation.cdkey + + + cdmia + application/cdmi-capability + + + cdmic + application/cdmi-container + + + cdmid + application/cdmi-domain + + + cdmio + application/cdmi-object + + + cdmiq + application/cdmi-queue + + + cdx + chemical/x-cdx + + + cdxml + application/vnd.chemdraw+xml + + + cdy + application/vnd.cinderella + + + cer + application/pkix-cert + + + cfs + application/x-cfs-compressed + + + cgm + image/cgm + + + chat + application/x-chat + + + chm + application/vnd.ms-htmlhelp + + + chrt + application/vnd.kde.kchart + + + cif + chemical/x-cif + + + cii + application/vnd.anser-web-certificate-issue-initiation + + + cil + application/vnd.ms-artgalry + + + cla + application/vnd.claymore + + + class + application/java + + + clkk + application/vnd.crick.clicker.keyboard + + + clkp + application/vnd.crick.clicker.palette + + + clkt + application/vnd.crick.clicker.template + + + clkw + application/vnd.crick.clicker.wordbank + + + clkx + application/vnd.crick.clicker + + + clp + application/x-msclip + + + cmc + application/vnd.cosmocaller + + + cmdf + chemical/x-cmdf + + + cml + chemical/x-cml + + + cmp + application/vnd.yellowriver-custom-menu + + + cmx + image/x-cmx + + + cod + application/vnd.rim.cod + + + com + application/x-msdownload + + + conf + text/plain + + + cpio + application/x-cpio + + + cpp + text/x-c + + + cpt + application/mac-compactpro + + + crd + application/x-mscardfile + + + crl + application/pkix-crl + + + crt + application/x-x509-ca-cert + + + cryptonote + application/vnd.rig.cryptonote + + + csh + application/x-csh + + + csml + chemical/x-csml + + + csp + application/vnd.commonspace + + + css + text/css + + + cst + application/x-director + + + csv + text/csv + + + cu + application/cu-seeme + + + curl + text/vnd.curl + + + cww + application/prs.cww + + + cxt + application/x-director + + + cxx + text/x-c + + + dae + model/vnd.collada+xml + + + daf + application/vnd.mobius.daf + + + dart + application/vnd.dart + + + dataless + application/vnd.fdsn.seed + + + davmount + application/davmount+xml + + + dbk + application/docbook+xml + + + dcr + application/x-director + + + dcurl + text/vnd.curl.dcurl + + + dd2 + application/vnd.oma.dd2+xml + + + ddd + application/vnd.fujixerox.ddd + + + deb + application/x-debian-package + + + def + text/plain + + + deploy + application/octet-stream + + + der + application/x-x509-ca-cert + + + dfac + application/vnd.dreamfactory + + + dgc + application/x-dgc-compressed + + + dib + image/bmp + + + dic + text/x-c + + + dir + application/x-director + + + dis + application/vnd.mobius.dis + + + dist + application/octet-stream + + + distz + application/octet-stream + + + djv + image/vnd.djvu + + + djvu + image/vnd.djvu + + + dll + application/x-msdownload + + + dmg + application/x-apple-diskimage + + + dmp + application/vnd.tcpdump.pcap + + + dms + application/octet-stream + + + dna + application/vnd.dna + + + doc + application/msword + + + docm + application/vnd.ms-word.document.macroenabled.12 + + + docx + application/vnd.openxmlformats-officedocument.wordprocessingml.document + + + dot + application/msword + + + dotm + application/vnd.ms-word.template.macroenabled.12 + + + dotx + application/vnd.openxmlformats-officedocument.wordprocessingml.template + + + dp + application/vnd.osgi.dp + + + dpg + application/vnd.dpgraph + + + dra + audio/vnd.dra + + + dsc + text/prs.lines.tag + + + dssc + application/dssc+der + + + dtb + application/x-dtbook+xml + + + dtd + application/xml-dtd + + + dts + audio/vnd.dts + + + dtshd + audio/vnd.dts.hd + + + dump + application/octet-stream + + + dv + video/x-dv + + + dvb + video/vnd.dvb.file + + + dvi + application/x-dvi + + + dwf + model/vnd.dwf + + + dwg + image/vnd.dwg + + + dxf + image/vnd.dxf + + + dxp + application/vnd.spotfire.dxp + + + dxr + application/x-director + + + ecelp4800 + audio/vnd.nuera.ecelp4800 + + + ecelp7470 + audio/vnd.nuera.ecelp7470 + + + ecelp9600 + audio/vnd.nuera.ecelp9600 + + + ecma + application/ecmascript + + + edm + application/vnd.novadigm.edm + + + edx + application/vnd.novadigm.edx + + + efif + application/vnd.picsel + + + ei6 + application/vnd.pg.osasli + + + elc + application/octet-stream + + + emf + application/x-msmetafile + + + eml + message/rfc822 + + + emma + application/emma+xml + + + emz + application/x-msmetafile + + + eol + audio/vnd.digital-winds + + + eot + application/vnd.ms-fontobject + + + eps + application/postscript + + + epub + application/epub+zip + + + es3 + application/vnd.eszigno3+xml + + + esa + application/vnd.osgi.subsystem + + + esf + application/vnd.epson.esf + + + et3 + application/vnd.eszigno3+xml + + + etx + text/x-setext + + + eva + application/x-eva + + + evy + application/x-envoy + + + exe + application/octet-stream + + + exi + application/exi + + + ext + application/vnd.novadigm.ext + + + ez + application/andrew-inset + + + ez2 + application/vnd.ezpix-album + + + ez3 + application/vnd.ezpix-package + + + f + text/x-fortran + + + f4v + video/x-f4v + + + f77 + text/x-fortran + + + f90 + text/x-fortran + + + fbs + image/vnd.fastbidsheet + + + fcdt + application/vnd.adobe.formscentral.fcdt + + + fcs + application/vnd.isac.fcs + + + fdf + application/vnd.fdf + + + fe_launch + application/vnd.denovo.fcselayout-link + + + fg5 + application/vnd.fujitsu.oasysgp + + + fgd + application/x-director + + + fh + image/x-freehand + + + fh4 + image/x-freehand + + + fh5 + image/x-freehand + + + fh7 + image/x-freehand + + + fhc + image/x-freehand + + + fig + application/x-xfig + + + flac + audio/flac + + + fli + video/x-fli + + + flo + application/vnd.micrografx.flo + + + flv + video/x-flv + + + flw + application/vnd.kde.kivio + + + flx + text/vnd.fmi.flexstor + + + fly + text/vnd.fly + + + fm + application/vnd.framemaker + + + fnc + application/vnd.frogans.fnc + + + for + text/x-fortran + + + fpx + image/vnd.fpx + + + frame + application/vnd.framemaker + + + fsc + application/vnd.fsc.weblaunch + + + fst + image/vnd.fst + + + ftc + application/vnd.fluxtime.clip + + + fti + application/vnd.anser-web-funds-transfer-initiation + + + fvt + video/vnd.fvt + + + fxp + application/vnd.adobe.fxp + + + fxpl + application/vnd.adobe.fxp + + + fzs + application/vnd.fuzzysheet + + + g2w + application/vnd.geoplan + + + g3 + image/g3fax + + + g3w + application/vnd.geospace + + + gac + application/vnd.groove-account + + + gam + application/x-tads + + + gbr + application/rpki-ghostbusters + + + gca + application/x-gca-compressed + + + gdl + model/vnd.gdl + + + geo + application/vnd.dynageo + + + gex + application/vnd.geometry-explorer + + + ggb + application/vnd.geogebra.file + + + ggt + application/vnd.geogebra.tool + + + ghf + application/vnd.groove-help + + + gif + image/gif + + + gim + application/vnd.groove-identity-message + + + gml + application/gml+xml + + + gmx + application/vnd.gmx + + + gnumeric + application/x-gnumeric + + + gph + application/vnd.flographit + + + gpx + application/gpx+xml + + + gqf + application/vnd.grafeq + + + gqs + application/vnd.grafeq + + + gram + application/srgs + + + gramps + application/x-gramps-xml + + + gre + application/vnd.geometry-explorer + + + grv + application/vnd.groove-injector + + + grxml + application/srgs+xml + + + gsf + application/x-font-ghostscript + + + gtar + application/x-gtar + + + gtm + application/vnd.groove-tool-message + + + gtw + model/vnd.gtw + + + gv + text/vnd.graphviz + + + gxf + application/gxf + + + gxt + application/vnd.geonext + + + gz + application/x-gzip + + + h + text/x-c + + + h261 + video/h261 + + + h263 + video/h263 + + + h264 + video/h264 + + + hal + application/vnd.hal+xml + + + hbci + application/vnd.hbci + + + hdf + application/x-hdf + + + hh + text/x-c + + + hlp + application/winhlp + + + hpgl + application/vnd.hp-hpgl + + + hpid + application/vnd.hp-hpid + + + hps + application/vnd.hp-hps + + + hqx + application/mac-binhex40 + + + htc + text/x-component + + + htke + application/vnd.kenameaapp + + + htm + text/html + + + html + text/html + + + hvd + application/vnd.yamaha.hv-dic + + + hvp + application/vnd.yamaha.hv-voice + + + hvs + application/vnd.yamaha.hv-script + + + i2g + application/vnd.intergeo + + + icc + application/vnd.iccprofile + + + ice + x-conference/x-cooltalk + + + icm + application/vnd.iccprofile + + + ico + image/x-icon + + + ics + text/calendar + + + ief + image/ief + + + ifb + text/calendar + + + ifm + application/vnd.shana.informed.formdata + + + iges + model/iges + + + igl + application/vnd.igloader + + + igm + application/vnd.insors.igm + + + igs + model/iges + + + igx + application/vnd.micrografx.igx + + + iif + application/vnd.shana.informed.interchange + + + imp + application/vnd.accpac.simply.imp + + + ims + application/vnd.ms-ims + + + in + text/plain + + + ink + application/inkml+xml + + + inkml + application/inkml+xml + + + install + application/x-install-instructions + + + iota + application/vnd.astraea-software.iota + + + ipfix + application/ipfix + + + ipk + application/vnd.shana.informed.package + + + irm + application/vnd.ibm.rights-management + + + irp + application/vnd.irepository.package+xml + + + iso + application/x-iso9660-image + + + itp + application/vnd.shana.informed.formtemplate + + + ivp + application/vnd.immervision-ivp + + + ivu + application/vnd.immervision-ivu + + + jad + text/vnd.sun.j2me.app-descriptor + + + jam + application/vnd.jam + + + jar + application/java-archive + + + java + text/x-java-source + + + jisp + application/vnd.jisp + + + jlt + application/vnd.hp-jlyt + + + jnlp + application/x-java-jnlp-file + + + joda + application/vnd.joost.joda-archive + + + jpe + image/jpeg + + + jpeg + image/jpeg + + + jpg + image/jpeg + + + jpgm + video/jpm + + + jpgv + video/jpeg + + + jpm + video/jpm + + + js + application/javascript + + + jsf + text/plain + + + json + application/json + + + jsonml + application/jsonml+json + + + jspf + text/plain + + + kar + audio/midi + + + karbon + application/vnd.kde.karbon + + + kfo + application/vnd.kde.kformula + + + kia + application/vnd.kidspiration + + + kml + application/vnd.google-earth.kml+xml + + + kmz + application/vnd.google-earth.kmz + + + kne + application/vnd.kinar + + + knp + application/vnd.kinar + + + kon + application/vnd.kde.kontour + + + kpr + application/vnd.kde.kpresenter + + + kpt + application/vnd.kde.kpresenter + + + kpxx + application/vnd.ds-keypoint + + + ksp + application/vnd.kde.kspread + + + ktr + application/vnd.kahootz + + + ktx + image/ktx + + + ktz + application/vnd.kahootz + + + kwd + application/vnd.kde.kword + + + kwt + application/vnd.kde.kword + + + lasxml + application/vnd.las.las+xml + + + latex + application/x-latex + + + lbd + application/vnd.llamagraphics.life-balance.desktop + + + lbe + application/vnd.llamagraphics.life-balance.exchange+xml + + + les + application/vnd.hhe.lesson-player + + + lha + application/x-lzh-compressed + + + link66 + application/vnd.route66.link66+xml + + + list + text/plain + + + list3820 + application/vnd.ibm.modcap + + + listafp + application/vnd.ibm.modcap + + + lnk + application/x-ms-shortcut + + + log + text/plain + + + lostxml + application/lost+xml + + + lrf + application/octet-stream + + + lrm + application/vnd.ms-lrm + + + ltf + application/vnd.frogans.ltf + + + lvp + audio/vnd.lucent.voice + + + lwp + application/vnd.lotus-wordpro + + + lzh + application/x-lzh-compressed + + + m13 + application/x-msmediaview + + + m14 + application/x-msmediaview + + + m1v + video/mpeg + + + m21 + application/mp21 + + + m2a + audio/mpeg + + + m2v + video/mpeg + + + m3a + audio/mpeg + + + m3u + audio/x-mpegurl + + + m3u8 + application/vnd.apple.mpegurl + + + m4a + audio/mp4 + + + m4b + audio/mp4 + + + m4r + audio/mp4 + + + m4u + video/vnd.mpegurl + + + m4v + video/mp4 + + + ma + application/mathematica + + + mac + image/x-macpaint + + + mads + application/mads+xml + + + mag + application/vnd.ecowin.chart + + + maker + application/vnd.framemaker + + + man + text/troff + + + mar + application/octet-stream + + + mathml + application/mathml+xml + + + mb + application/mathematica + + + mbk + application/vnd.mobius.mbk + + + mbox + application/mbox + + + mc1 + application/vnd.medcalcdata + + + mcd + application/vnd.mcd + + + mcurl + text/vnd.curl.mcurl + + + mdb + application/x-msaccess + + + mdi + image/vnd.ms-modi + + + me + text/troff + + + mesh + model/mesh + + + meta4 + application/metalink4+xml + + + metalink + application/metalink+xml + + + mets + application/mets+xml + + + mfm + application/vnd.mfmp + + + mft + application/rpki-manifest + + + mgp + application/vnd.osgeo.mapguide.package + + + mgz + application/vnd.proteus.magazine + + + mid + audio/midi + + + midi + audio/midi + + + mie + application/x-mie + + + mif + application/x-mif + + + mime + message/rfc822 + + + mj2 + video/mj2 + + + mjp2 + video/mj2 + + + mk3d + video/x-matroska + + + mka + audio/x-matroska + + + mks + video/x-matroska + + + mkv + video/x-matroska + + + mlp + application/vnd.dolby.mlp + + + mmd + application/vnd.chipnuts.karaoke-mmd + + + mmf + application/vnd.smaf + + + mmr + image/vnd.fujixerox.edmics-mmr + + + mng + video/x-mng + + + mny + application/x-msmoney + + + mobi + application/x-mobipocket-ebook + + + mods + application/mods+xml + + + mov + video/quicktime + + + movie + video/x-sgi-movie + + + mp1 + audio/mpeg + + + mp2 + audio/mpeg + + + mp21 + application/mp21 + + + mp2a + audio/mpeg + + + mp3 + audio/mpeg + + + mp4 + video/mp4 + + + mp4a + audio/mp4 + + + mp4s + application/mp4 + + + mp4v + video/mp4 + + + mpa + audio/mpeg + + + mpc + application/vnd.mophun.certificate + + + mpe + video/mpeg + + + mpeg + video/mpeg + + + mpega + audio/x-mpeg + + + mpg + video/mpeg + + + mpg4 + video/mp4 + + + mpga + audio/mpeg + + + mpkg + application/vnd.apple.installer+xml + + + mpm + application/vnd.blueice.multipass + + + mpn + application/vnd.mophun.application + + + mpp + application/vnd.ms-project + + + mpt + application/vnd.ms-project + + + mpv2 + video/mpeg2 + + + mpy + application/vnd.ibm.minipay + + + mqy + application/vnd.mobius.mqy + + + mrc + application/marc + + + mrcx + application/marcxml+xml + + + ms + text/troff + + + mscml + application/mediaservercontrol+xml + + + mseed + application/vnd.fdsn.mseed + + + mseq + application/vnd.mseq + + + msf + application/vnd.epson.msf + + + msh + model/mesh + + + msi + application/x-msdownload + + + msl + application/vnd.mobius.msl + + + msty + application/vnd.muvee.style + + + mts + model/vnd.mts + + + mus + application/vnd.musician + + + musicxml + application/vnd.recordare.musicxml+xml + + + mvb + application/x-msmediaview + + + mwf + application/vnd.mfer + + + mxf + application/mxf + + + mxl + application/vnd.recordare.musicxml + + + mxml + application/xv+xml + + + mxs + application/vnd.triscape.mxs + + + mxu + video/vnd.mpegurl + + + n-gage + application/vnd.nokia.n-gage.symbian.install + + + n3 + text/n3 + + + nb + application/mathematica + + + nbp + application/vnd.wolfram.player + + + nc + application/x-netcdf + + + ncx + application/x-dtbncx+xml + + + nfo + text/x-nfo + + + ngdat + application/vnd.nokia.n-gage.data + + + nitf + application/vnd.nitf + + + nlu + application/vnd.neurolanguage.nlu + + + nml + application/vnd.enliven + + + nnd + application/vnd.noblenet-directory + + + nns + application/vnd.noblenet-sealer + + + nnw + application/vnd.noblenet-web + + + npx + image/vnd.net-fpx + + + nsc + application/x-conference + + + nsf + application/vnd.lotus-notes + + + ntf + application/vnd.nitf + + + nzb + application/x-nzb + + + oa2 + application/vnd.fujitsu.oasys2 + + + oa3 + application/vnd.fujitsu.oasys3 + + + oas + application/vnd.fujitsu.oasys + + + obd + application/x-msbinder + + + obj + application/x-tgif + + + oda + application/oda + + + + odb + application/vnd.oasis.opendocument.database + + + + odc + application/vnd.oasis.opendocument.chart + + + + odf + application/vnd.oasis.opendocument.formula + + + odft + application/vnd.oasis.opendocument.formula-template + + + + odg + application/vnd.oasis.opendocument.graphics + + + + odi + application/vnd.oasis.opendocument.image + + + + odm + application/vnd.oasis.opendocument.text-master + + + + odp + application/vnd.oasis.opendocument.presentation + + + + ods + application/vnd.oasis.opendocument.spreadsheet + + + + odt + application/vnd.oasis.opendocument.text + + + oga + audio/ogg + + + ogg + audio/ogg + + + ogv + video/ogg + + + + ogx + application/ogg + + + omdoc + application/omdoc+xml + + + onepkg + application/onenote + + + onetmp + application/onenote + + + onetoc + application/onenote + + + onetoc2 + application/onenote + + + opf + application/oebps-package+xml + + + opml + text/x-opml + + + oprc + application/vnd.palm + + + org + application/vnd.lotus-organizer + + + osf + application/vnd.yamaha.openscoreformat + + + osfpvg + application/vnd.yamaha.openscoreformat.osfpvg+xml + + + otc + application/vnd.oasis.opendocument.chart-template + + + otf + font/otf + + + + otg + application/vnd.oasis.opendocument.graphics-template + + + + oth + application/vnd.oasis.opendocument.text-web + + + oti + application/vnd.oasis.opendocument.image-template + + + + otp + application/vnd.oasis.opendocument.presentation-template + + + + ots + application/vnd.oasis.opendocument.spreadsheet-template + + + + ott + application/vnd.oasis.opendocument.text-template + + + oxps + application/oxps + + + oxt + application/vnd.openofficeorg.extension + + + p + text/x-pascal + + + p10 + application/pkcs10 + + + p12 + application/x-pkcs12 + + + p7b + application/x-pkcs7-certificates + + + p7c + application/pkcs7-mime + + + p7m + application/pkcs7-mime + + + p7r + application/x-pkcs7-certreqresp + + + p7s + application/pkcs7-signature + + + p8 + application/pkcs8 + + + pas + text/x-pascal + + + paw + application/vnd.pawaafile + + + pbd + application/vnd.powerbuilder6 + + + pbm + image/x-portable-bitmap + + + pcap + application/vnd.tcpdump.pcap + + + pcf + application/x-font-pcf + + + pcl + application/vnd.hp-pcl + + + pclxl + application/vnd.hp-pclxl + + + pct + image/pict + + + pcurl + application/vnd.curl.pcurl + + + pcx + image/x-pcx + + + pdb + application/vnd.palm + + + pdf + application/pdf + + + pfa + application/x-font-type1 + + + pfb + application/x-font-type1 + + + pfm + application/x-font-type1 + + + pfr + application/font-tdpfr + + + pfx + application/x-pkcs12 + + + pgm + image/x-portable-graymap + + + pgn + application/x-chess-pgn + + + pgp + application/pgp-encrypted + + + pic + image/pict + + + pict + image/pict + + + pkg + application/octet-stream + + + pki + application/pkixcmp + + + pkipath + application/pkix-pkipath + + + plb + application/vnd.3gpp.pic-bw-large + + + plc + application/vnd.mobius.plc + + + plf + application/vnd.pocketlearn + + + pls + audio/x-scpls + + + pml + application/vnd.ctc-posml + + + png + image/png + + + pnm + image/x-portable-anymap + + + pnt + image/x-macpaint + + + portpkg + application/vnd.macports.portpkg + + + pot + application/vnd.ms-powerpoint + + + potm + application/vnd.ms-powerpoint.template.macroenabled.12 + + + potx + application/vnd.openxmlformats-officedocument.presentationml.template + + + ppam + application/vnd.ms-powerpoint.addin.macroenabled.12 + + + ppd + application/vnd.cups-ppd + + + ppm + image/x-portable-pixmap + + + pps + application/vnd.ms-powerpoint + + + ppsm + application/vnd.ms-powerpoint.slideshow.macroenabled.12 + + + ppsx + application/vnd.openxmlformats-officedocument.presentationml.slideshow + + + ppt + application/vnd.ms-powerpoint + + + pptm + application/vnd.ms-powerpoint.presentation.macroenabled.12 + + + pptx + application/vnd.openxmlformats-officedocument.presentationml.presentation + + + pqa + application/vnd.palm + + + prc + application/x-mobipocket-ebook + + + pre + application/vnd.lotus-freelance + + + prf + application/pics-rules + + + ps + application/postscript + + + psb + application/vnd.3gpp.pic-bw-small + + + psd + image/vnd.adobe.photoshop + + + psf + application/x-font-linux-psf + + + pskcxml + application/pskc+xml + + + ptid + application/vnd.pvi.ptid1 + + + pub + application/x-mspublisher + + + pvb + application/vnd.3gpp.pic-bw-var + + + pwn + application/vnd.3m.post-it-notes + + + pya + audio/vnd.ms-playready.media.pya + + + pyv + video/vnd.ms-playready.media.pyv + + + qam + application/vnd.epson.quickanime + + + qbo + application/vnd.intu.qbo + + + qfx + application/vnd.intu.qfx + + + qps + application/vnd.publishare-delta-tree + + + qt + video/quicktime + + + qti + image/x-quicktime + + + qtif + image/x-quicktime + + + qwd + application/vnd.quark.quarkxpress + + + qwt + application/vnd.quark.quarkxpress + + + qxb + application/vnd.quark.quarkxpress + + + qxd + application/vnd.quark.quarkxpress + + + qxl + application/vnd.quark.quarkxpress + + + qxt + application/vnd.quark.quarkxpress + + + ra + audio/x-pn-realaudio + + + ram + audio/x-pn-realaudio + + + rar + application/x-rar-compressed + + + ras + image/x-cmu-raster + + + rcprofile + application/vnd.ipunplugged.rcprofile + + + rdf + application/rdf+xml + + + rdz + application/vnd.data-vision.rdz + + + rep + application/vnd.businessobjects + + + res + application/x-dtbresource+xml + + + rgb + image/x-rgb + + + rif + application/reginfo+xml + + + rip + audio/vnd.rip + + + ris + application/x-research-info-systems + + + rl + application/resource-lists+xml + + + rlc + image/vnd.fujixerox.edmics-rlc + + + rld + application/resource-lists-diff+xml + + + rm + application/vnd.rn-realmedia + + + rmi + audio/midi + + + rmp + audio/x-pn-realaudio-plugin + + + rms + application/vnd.jcp.javame.midlet-rms + + + rmvb + application/vnd.rn-realmedia-vbr + + + rnc + application/relax-ng-compact-syntax + + + roa + application/rpki-roa + + + roff + text/troff + + + rp9 + application/vnd.cloanto.rp9 + + + rpss + application/vnd.nokia.radio-presets + + + rpst + application/vnd.nokia.radio-preset + + + rq + application/sparql-query + + + rs + application/rls-services+xml + + + rsd + application/rsd+xml + + + rss + application/rss+xml + + + rtf + application/rtf + + + rtx + text/richtext + + + s + text/x-asm + + + s3m + audio/s3m + + + saf + application/vnd.yamaha.smaf-audio + + + sbml + application/sbml+xml + + + sc + application/vnd.ibm.secure-container + + + scd + application/x-msschedule + + + scm + application/vnd.lotus-screencam + + + scq + application/scvp-cv-request + + + scs + application/scvp-cv-response + + + scurl + text/vnd.curl.scurl + + + sda + application/vnd.stardivision.draw + + + sdc + application/vnd.stardivision.calc + + + sdd + application/vnd.stardivision.impress + + + sdkd + application/vnd.solent.sdkm+xml + + + sdkm + application/vnd.solent.sdkm+xml + + + sdp + application/sdp + + + sdw + application/vnd.stardivision.writer + + + see + application/vnd.seemail + + + seed + application/vnd.fdsn.seed + + + sema + application/vnd.sema + + + semd + application/vnd.semd + + + semf + application/vnd.semf + + + ser + application/java-serialized-object + + + setpay + application/set-payment-initiation + + + setreg + application/set-registration-initiation + + + sfd-hdstx + application/vnd.hydrostatix.sof-data + + + sfs + application/vnd.spotfire.sfs + + + sfv + text/x-sfv + + + sgi + image/sgi + + + sgl + application/vnd.stardivision.writer-global + + + sgm + text/sgml + + + sgml + text/sgml + + + sh + application/x-sh + + + shar + application/x-shar + + + shf + application/shf+xml + + + + sid + image/x-mrsid-image + + + sig + application/pgp-signature + + + sil + audio/silk + + + silo + model/mesh + + + sis + application/vnd.symbian.install + + + sisx + application/vnd.symbian.install + + + sit + application/x-stuffit + + + sitx + application/x-stuffitx + + + skd + application/vnd.koan + + + skm + application/vnd.koan + + + skp + application/vnd.koan + + + skt + application/vnd.koan + + + sldm + application/vnd.ms-powerpoint.slide.macroenabled.12 + + + sldx + application/vnd.openxmlformats-officedocument.presentationml.slide + + + slt + application/vnd.epson.salt + + + sm + application/vnd.stepmania.stepchart + + + smf + application/vnd.stardivision.math + + + smi + application/smil+xml + + + smil + application/smil+xml + + + smv + video/x-smv + + + smzip + application/vnd.stepmania.package + + + snd + audio/basic + + + snf + application/x-font-snf + + + so + application/octet-stream + + + spc + application/x-pkcs7-certificates + + + spf + application/vnd.yamaha.smaf-phrase + + + spl + application/x-futuresplash + + + spot + text/vnd.in3d.spot + + + spp + application/scvp-vp-response + + + spq + application/scvp-vp-request + + + spx + audio/ogg + + + sql + application/x-sql + + + src + application/x-wais-source + + + srt + application/x-subrip + + + sru + application/sru+xml + + + srx + application/sparql-results+xml + + + ssdl + application/ssdl+xml + + + sse + application/vnd.kodak-descriptor + + + ssf + application/vnd.epson.ssf + + + ssml + application/ssml+xml + + + st + application/vnd.sailingtracker.track + + + stc + application/vnd.sun.xml.calc.template + + + std + application/vnd.sun.xml.draw.template + + + stf + application/vnd.wt.stf + + + sti + application/vnd.sun.xml.impress.template + + + stk + application/hyperstudio + + + stl + application/vnd.ms-pki.stl + + + str + application/vnd.pg.format + + + stw + application/vnd.sun.xml.writer.template + + + sub + text/vnd.dvb.subtitle + + + sus + application/vnd.sus-calendar + + + susp + application/vnd.sus-calendar + + + sv4cpio + application/x-sv4cpio + + + sv4crc + application/x-sv4crc + + + svc + application/vnd.dvb.service + + + svd + application/vnd.svd + + + svg + image/svg+xml + + + svgz + image/svg+xml + + + swa + application/x-director + + + swf + application/x-shockwave-flash + + + swi + application/vnd.aristanetworks.swi + + + sxc + application/vnd.sun.xml.calc + + + sxd + application/vnd.sun.xml.draw + + + sxg + application/vnd.sun.xml.writer.global + + + sxi + application/vnd.sun.xml.impress + + + sxm + application/vnd.sun.xml.math + + + sxw + application/vnd.sun.xml.writer + + + t + text/troff + + + t3 + application/x-t3vm-image + + + taglet + application/vnd.mynfc + + + tao + application/vnd.tao.intent-module-archive + + + tar + application/x-tar + + + tcap + application/vnd.3gpp2.tcap + + + tcl + application/x-tcl + + + teacher + application/vnd.smart.teacher + + + tei + application/tei+xml + + + teicorpus + application/tei+xml + + + tex + application/x-tex + + + texi + application/x-texinfo + + + texinfo + application/x-texinfo + + + text + text/plain + + + tfi + application/thraud+xml + + + tfm + application/x-tex-tfm + + + tga + image/x-tga + + + thmx + application/vnd.ms-officetheme + + + tif + image/tiff + + + tiff + image/tiff + + + tmo + application/vnd.tmobile-livetv + + + torrent + application/x-bittorrent + + + tpl + application/vnd.groove-tool-template + + + tpt + application/vnd.trid.tpt + + + tr + text/troff + + + tra + application/vnd.trueapp + + + trm + application/x-msterminal + + + tsd + application/timestamped-data + + + tsv + text/tab-separated-values + + + ttc + font/collection + + + ttf + font/ttf + + + ttl + text/turtle + + + twd + application/vnd.simtech-mindmapper + + + twds + application/vnd.simtech-mindmapper + + + txd + application/vnd.genomatix.tuxedo + + + txf + application/vnd.mobius.txf + + + txt + text/plain + + + u32 + application/x-authorware-bin + + + udeb + application/x-debian-package + + + ufd + application/vnd.ufdl + + + ufdl + application/vnd.ufdl + + + ulw + audio/basic + + + ulx + application/x-glulx + + + umj + application/vnd.umajin + + + unityweb + application/vnd.unity + + + uoml + application/vnd.uoml+xml + + + uri + text/uri-list + + + uris + text/uri-list + + + urls + text/uri-list + + + ustar + application/x-ustar + + + utz + application/vnd.uiq.theme + + + uu + text/x-uuencode + + + uva + audio/vnd.dece.audio + + + uvd + application/vnd.dece.data + + + uvf + application/vnd.dece.data + + + uvg + image/vnd.dece.graphic + + + uvh + video/vnd.dece.hd + + + uvi + image/vnd.dece.graphic + + + uvm + video/vnd.dece.mobile + + + uvp + video/vnd.dece.pd + + + uvs + video/vnd.dece.sd + + + uvt + application/vnd.dece.ttml+xml + + + uvu + video/vnd.uvvu.mp4 + + + uvv + video/vnd.dece.video + + + uvva + audio/vnd.dece.audio + + + uvvd + application/vnd.dece.data + + + uvvf + application/vnd.dece.data + + + uvvg + image/vnd.dece.graphic + + + uvvh + video/vnd.dece.hd + + + uvvi + image/vnd.dece.graphic + + + uvvm + video/vnd.dece.mobile + + + uvvp + video/vnd.dece.pd + + + uvvs + video/vnd.dece.sd + + + uvvt + application/vnd.dece.ttml+xml + + + uvvu + video/vnd.uvvu.mp4 + + + uvvv + video/vnd.dece.video + + + uvvx + application/vnd.dece.unspecified + + + uvvz + application/vnd.dece.zip + + + uvx + application/vnd.dece.unspecified + + + uvz + application/vnd.dece.zip + + + vcard + text/vcard + + + vcd + application/x-cdlink + + + vcf + text/x-vcard + + + vcg + application/vnd.groove-vcard + + + vcs + text/x-vcalendar + + + vcx + application/vnd.vcx + + + vis + application/vnd.visionary + + + viv + video/vnd.vivo + + + vob + video/x-ms-vob + + + vor + application/vnd.stardivision.writer + + + vox + application/x-authorware-bin + + + vrml + model/vrml + + + vsd + application/vnd.visio + + + vsf + application/vnd.vsf + + + vss + application/vnd.visio + + + vst + application/vnd.visio + + + vsw + application/vnd.visio + + + vtu + model/vnd.vtu + + + vxml + application/voicexml+xml + + + w3d + application/x-director + + + wad + application/x-doom + + + wasm + application/wasm + + + wav + audio/x-wav + + + wax + audio/x-ms-wax + + + + wbmp + image/vnd.wap.wbmp + + + wbs + application/vnd.criticaltools.wbs+xml + + + wbxml + application/vnd.wap.wbxml + + + wcm + application/vnd.ms-works + + + wdb + application/vnd.ms-works + + + wdp + image/vnd.ms-photo + + + weba + audio/webm + + + webm + video/webm + + + webp + image/webp + + + wg + application/vnd.pmi.widget + + + wgt + application/widget + + + wks + application/vnd.ms-works + + + wm + video/x-ms-wm + + + wma + audio/x-ms-wma + + + wmd + application/x-ms-wmd + + + wmf + application/x-msmetafile + + + + wml + text/vnd.wap.wml + + + + wmlc + application/vnd.wap.wmlc + + + + wmls + text/vnd.wap.wmlscript + + + + wmlsc + application/vnd.wap.wmlscriptc + + + wmv + video/x-ms-wmv + + + wmx + video/x-ms-wmx + + + wmz + application/x-msmetafile + + + woff + font/woff + + + woff2 + font/woff2 + + + wpd + application/vnd.wordperfect + + + wpl + application/vnd.ms-wpl + + + wps + application/vnd.ms-works + + + wqd + application/vnd.wqd + + + wri + application/x-mswrite + + + wrl + model/vrml + + + wsdl + application/wsdl+xml + + + wspolicy + application/wspolicy+xml + + + wtb + application/vnd.webturbo + + + wvx + video/x-ms-wvx + + + x32 + application/x-authorware-bin + + + x3d + model/x3d+xml + + + x3db + model/x3d+binary + + + x3dbz + model/x3d+binary + + + x3dv + model/x3d+vrml + + + x3dvz + model/x3d+vrml + + + x3dz + model/x3d+xml + + + xaml + application/xaml+xml + + + xap + application/x-silverlight-app + + + xar + application/vnd.xara + + + xbap + application/x-ms-xbap + + + xbd + application/vnd.fujixerox.docuworks.binder + + + xbm + image/x-xbitmap + + + xdf + application/xcap-diff+xml + + + xdm + application/vnd.syncml.dm+xml + + + xdp + application/vnd.adobe.xdp+xml + + + xdssc + application/dssc+xml + + + xdw + application/vnd.fujixerox.docuworks + + + xenc + application/xenc+xml + + + xer + application/patch-ops-error+xml + + + xfdf + application/vnd.adobe.xfdf + + + xfdl + application/vnd.xfdl + + + xht + application/xhtml+xml + + + xhtml + application/xhtml+xml + + + xhvml + application/xv+xml + + + xif + image/vnd.xiff + + + xla + application/vnd.ms-excel + + + xlam + application/vnd.ms-excel.addin.macroenabled.12 + + + xlc + application/vnd.ms-excel + + + xlf + application/x-xliff+xml + + + xlm + application/vnd.ms-excel + + + xls + application/vnd.ms-excel + + + xlsb + application/vnd.ms-excel.sheet.binary.macroenabled.12 + + + xlsm + application/vnd.ms-excel.sheet.macroenabled.12 + + + xlsx + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + xlt + application/vnd.ms-excel + + + xltm + application/vnd.ms-excel.template.macroenabled.12 + + + xltx + application/vnd.openxmlformats-officedocument.spreadsheetml.template + + + xlw + application/vnd.ms-excel + + + xm + audio/xm + + + xml + application/xml + + + xo + application/vnd.olpc-sugar + + + xop + application/xop+xml + + + xpi + application/x-xpinstall + + + xpl + application/xproc+xml + + + xpm + image/x-xpixmap + + + xpr + application/vnd.is-xpr + + + xps + application/vnd.ms-xpsdocument + + + xpw + application/vnd.intercon.formnet + + + xpx + application/vnd.intercon.formnet + + + xsl + application/xml + + + xslt + application/xslt+xml + + + xsm + application/vnd.syncml+xml + + + xspf + application/xspf+xml + + + xul + application/vnd.mozilla.xul+xml + + + xvm + application/xv+xml + + + xvml + application/xv+xml + + + xwd + image/x-xwindowdump + + + xyz + chemical/x-xyz + + + xz + application/x-xz + + + yang + application/yang + + + yin + application/yin+xml + + + z + application/x-compress + + + z1 + application/x-zmachine + + + z2 + application/x-zmachine + + + z3 + application/x-zmachine + + + z4 + application/x-zmachine + + + z5 + application/x-zmachine + + + z6 + application/x-zmachine + + + z7 + application/x-zmachine + + + z8 + application/x-zmachine + + + zaz + application/vnd.zzazz.deck+xml + + + zip + application/zip + + + zir + application/vnd.zul + + + zirz + application/vnd.zul + + + zmm + application/vnd.handheld-entertainment+xml + + + + + + + + + + + + + + + + + + index.html + index.htm + index.jsp + + + diff --git a/conf/web.xml b/conf/web.xml new file mode 100644 index 0000000..97316e2 --- /dev/null +++ b/conf/web.xml @@ -0,0 +1,4773 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + org.apache.catalina.servlets.DefaultServlet + + debug + 0 + + + listings + false + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jsp + org.apache.jasper.servlet.JspServlet + + fork + false + + + xpoweredBy + false + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + / + + + + + jsp + *.jsp + *.jspx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + setCharacterEncodingFilter + org.apache.catalina.filters.SetCharacterEncodingFilter + + encoding + UTF-8 + + + ignore + false + + true + + + + + + + + + failedRequestFilter + + org.apache.catalina.filters.FailedRequestFilter + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + setCharacterEncodingFilter + /* + + + + + + + failedRequestFilter + /* + + + + + + + + + + + + + + + 30 + + + + + + + + + + + + + 123 + application/vnd.lotus-1-2-3 + + + 3dml + text/vnd.in3d.3dml + + + 3ds + image/x-3ds + + + 3g2 + video/3gpp2 + + + 3gp + video/3gpp + + + 7z + application/x-7z-compressed + + + aab + application/x-authorware-bin + + + aac + audio/x-aac + + + aam + application/x-authorware-map + + + aas + application/x-authorware-seg + + + abs + audio/x-mpeg + + + abw + application/x-abiword + + + ac + application/pkix-attr-cert + + + acc + application/vnd.americandynamics.acc + + + ace + application/x-ace-compressed + + + acu + application/vnd.acucobol + + + acutc + application/vnd.acucorp + + + adp + audio/adpcm + + + aep + application/vnd.audiograph + + + afm + application/x-font-type1 + + + afp + application/vnd.ibm.modcap + + + ahead + application/vnd.ahead.space + + + ai + application/postscript + + + aif + audio/x-aiff + + + aifc + audio/x-aiff + + + aiff + audio/x-aiff + + + aim + application/x-aim + + + air + application/vnd.adobe.air-application-installer-package+zip + + + ait + application/vnd.dvb.ait + + + ami + application/vnd.amiga.ami + + + anx + application/annodex + + + apk + application/vnd.android.package-archive + + + appcache + text/cache-manifest + + + application + application/x-ms-application + + + apr + application/vnd.lotus-approach + + + arc + application/x-freearc + + + art + image/x-jg + + + asc + application/pgp-signature + + + asf + video/x-ms-asf + + + asm + text/x-asm + + + aso + application/vnd.accpac.simply.aso + + + asx + video/x-ms-asf + + + atc + application/vnd.acucorp + + + atom + application/atom+xml + + + atomcat + application/atomcat+xml + + + atomsvc + application/atomsvc+xml + + + atx + application/vnd.antix.game-component + + + au + audio/basic + + + avi + video/x-msvideo + + + avx + video/x-rad-screenplay + + + aw + application/applixware + + + axa + audio/annodex + + + axv + video/annodex + + + azf + application/vnd.airzip.filesecure.azf + + + azs + application/vnd.airzip.filesecure.azs + + + azw + application/vnd.amazon.ebook + + + bat + application/x-msdownload + + + bcpio + application/x-bcpio + + + bdf + application/x-font-bdf + + + bdm + application/vnd.syncml.dm+wbxml + + + bed + application/vnd.realvnc.bed + + + bh2 + application/vnd.fujitsu.oasysprs + + + bin + application/octet-stream + + + blb + application/x-blorb + + + blorb + application/x-blorb + + + bmi + application/vnd.bmi + + + bmp + image/bmp + + + body + text/html + + + book + application/vnd.framemaker + + + box + application/vnd.previewsystems.box + + + boz + application/x-bzip2 + + + bpk + application/octet-stream + + + btif + image/prs.btif + + + bz + application/x-bzip + + + bz2 + application/x-bzip2 + + + c + text/x-c + + + c11amc + application/vnd.cluetrust.cartomobile-config + + + c11amz + application/vnd.cluetrust.cartomobile-config-pkg + + + c4d + application/vnd.clonk.c4group + + + c4f + application/vnd.clonk.c4group + + + c4g + application/vnd.clonk.c4group + + + c4p + application/vnd.clonk.c4group + + + c4u + application/vnd.clonk.c4group + + + cab + application/vnd.ms-cab-compressed + + + caf + audio/x-caf + + + cap + application/vnd.tcpdump.pcap + + + car + application/vnd.curl.car + + + cat + application/vnd.ms-pki.seccat + + + cb7 + application/x-cbr + + + cba + application/x-cbr + + + cbr + application/x-cbr + + + cbt + application/x-cbr + + + cbz + application/x-cbr + + + cc + text/x-c + + + cct + application/x-director + + + ccxml + application/ccxml+xml + + + cdbcmsg + application/vnd.contact.cmsg + + + cdf + application/x-cdf + + + cdkey + application/vnd.mediastation.cdkey + + + cdmia + application/cdmi-capability + + + cdmic + application/cdmi-container + + + cdmid + application/cdmi-domain + + + cdmio + application/cdmi-object + + + cdmiq + application/cdmi-queue + + + cdx + chemical/x-cdx + + + cdxml + application/vnd.chemdraw+xml + + + cdy + application/vnd.cinderella + + + cer + application/pkix-cert + + + cfs + application/x-cfs-compressed + + + cgm + image/cgm + + + chat + application/x-chat + + + chm + application/vnd.ms-htmlhelp + + + chrt + application/vnd.kde.kchart + + + cif + chemical/x-cif + + + cii + application/vnd.anser-web-certificate-issue-initiation + + + cil + application/vnd.ms-artgalry + + + cla + application/vnd.claymore + + + class + application/java + + + clkk + application/vnd.crick.clicker.keyboard + + + clkp + application/vnd.crick.clicker.palette + + + clkt + application/vnd.crick.clicker.template + + + clkw + application/vnd.crick.clicker.wordbank + + + clkx + application/vnd.crick.clicker + + + clp + application/x-msclip + + + cmc + application/vnd.cosmocaller + + + cmdf + chemical/x-cmdf + + + cml + chemical/x-cml + + + cmp + application/vnd.yellowriver-custom-menu + + + cmx + image/x-cmx + + + cod + application/vnd.rim.cod + + + com + application/x-msdownload + + + conf + text/plain + + + cpio + application/x-cpio + + + cpp + text/x-c + + + cpt + application/mac-compactpro + + + crd + application/x-mscardfile + + + crl + application/pkix-crl + + + crt + application/x-x509-ca-cert + + + cryptonote + application/vnd.rig.cryptonote + + + csh + application/x-csh + + + csml + chemical/x-csml + + + csp + application/vnd.commonspace + + + css + text/css + + + cst + application/x-director + + + csv + text/csv + + + cu + application/cu-seeme + + + curl + text/vnd.curl + + + cww + application/prs.cww + + + cxt + application/x-director + + + cxx + text/x-c + + + dae + model/vnd.collada+xml + + + daf + application/vnd.mobius.daf + + + dart + application/vnd.dart + + + dataless + application/vnd.fdsn.seed + + + davmount + application/davmount+xml + + + dbk + application/docbook+xml + + + dcr + application/x-director + + + dcurl + text/vnd.curl.dcurl + + + dd2 + application/vnd.oma.dd2+xml + + + ddd + application/vnd.fujixerox.ddd + + + deb + application/x-debian-package + + + def + text/plain + + + deploy + application/octet-stream + + + der + application/x-x509-ca-cert + + + dfac + application/vnd.dreamfactory + + + dgc + application/x-dgc-compressed + + + dib + image/bmp + + + dic + text/x-c + + + dir + application/x-director + + + dis + application/vnd.mobius.dis + + + dist + application/octet-stream + + + distz + application/octet-stream + + + djv + image/vnd.djvu + + + djvu + image/vnd.djvu + + + dll + application/x-msdownload + + + dmg + application/x-apple-diskimage + + + dmp + application/vnd.tcpdump.pcap + + + dms + application/octet-stream + + + dna + application/vnd.dna + + + doc + application/msword + + + docm + application/vnd.ms-word.document.macroenabled.12 + + + docx + application/vnd.openxmlformats-officedocument.wordprocessingml.document + + + dot + application/msword + + + dotm + application/vnd.ms-word.template.macroenabled.12 + + + dotx + application/vnd.openxmlformats-officedocument.wordprocessingml.template + + + dp + application/vnd.osgi.dp + + + dpg + application/vnd.dpgraph + + + dra + audio/vnd.dra + + + dsc + text/prs.lines.tag + + + dssc + application/dssc+der + + + dtb + application/x-dtbook+xml + + + dtd + application/xml-dtd + + + dts + audio/vnd.dts + + + dtshd + audio/vnd.dts.hd + + + dump + application/octet-stream + + + dv + video/x-dv + + + dvb + video/vnd.dvb.file + + + dvi + application/x-dvi + + + dwf + model/vnd.dwf + + + dwg + image/vnd.dwg + + + dxf + image/vnd.dxf + + + dxp + application/vnd.spotfire.dxp + + + dxr + application/x-director + + + ecelp4800 + audio/vnd.nuera.ecelp4800 + + + ecelp7470 + audio/vnd.nuera.ecelp7470 + + + ecelp9600 + audio/vnd.nuera.ecelp9600 + + + ecma + application/ecmascript + + + edm + application/vnd.novadigm.edm + + + edx + application/vnd.novadigm.edx + + + efif + application/vnd.picsel + + + ei6 + application/vnd.pg.osasli + + + elc + application/octet-stream + + + emf + application/x-msmetafile + + + eml + message/rfc822 + + + emma + application/emma+xml + + + emz + application/x-msmetafile + + + eol + audio/vnd.digital-winds + + + eot + application/vnd.ms-fontobject + + + eps + application/postscript + + + epub + application/epub+zip + + + es3 + application/vnd.eszigno3+xml + + + esa + application/vnd.osgi.subsystem + + + esf + application/vnd.epson.esf + + + et3 + application/vnd.eszigno3+xml + + + etx + text/x-setext + + + eva + application/x-eva + + + evy + application/x-envoy + + + exe + application/octet-stream + + + exi + application/exi + + + ext + application/vnd.novadigm.ext + + + ez + application/andrew-inset + + + ez2 + application/vnd.ezpix-album + + + ez3 + application/vnd.ezpix-package + + + f + text/x-fortran + + + f4v + video/x-f4v + + + f77 + text/x-fortran + + + f90 + text/x-fortran + + + fbs + image/vnd.fastbidsheet + + + fcdt + application/vnd.adobe.formscentral.fcdt + + + fcs + application/vnd.isac.fcs + + + fdf + application/vnd.fdf + + + fe_launch + application/vnd.denovo.fcselayout-link + + + fg5 + application/vnd.fujitsu.oasysgp + + + fgd + application/x-director + + + fh + image/x-freehand + + + fh4 + image/x-freehand + + + fh5 + image/x-freehand + + + fh7 + image/x-freehand + + + fhc + image/x-freehand + + + fig + application/x-xfig + + + flac + audio/flac + + + fli + video/x-fli + + + flo + application/vnd.micrografx.flo + + + flv + video/x-flv + + + flw + application/vnd.kde.kivio + + + flx + text/vnd.fmi.flexstor + + + fly + text/vnd.fly + + + fm + application/vnd.framemaker + + + fnc + application/vnd.frogans.fnc + + + for + text/x-fortran + + + fpx + image/vnd.fpx + + + frame + application/vnd.framemaker + + + fsc + application/vnd.fsc.weblaunch + + + fst + image/vnd.fst + + + ftc + application/vnd.fluxtime.clip + + + fti + application/vnd.anser-web-funds-transfer-initiation + + + fvt + video/vnd.fvt + + + fxp + application/vnd.adobe.fxp + + + fxpl + application/vnd.adobe.fxp + + + fzs + application/vnd.fuzzysheet + + + g2w + application/vnd.geoplan + + + g3 + image/g3fax + + + g3w + application/vnd.geospace + + + gac + application/vnd.groove-account + + + gam + application/x-tads + + + gbr + application/rpki-ghostbusters + + + gca + application/x-gca-compressed + + + gdl + model/vnd.gdl + + + geo + application/vnd.dynageo + + + gex + application/vnd.geometry-explorer + + + ggb + application/vnd.geogebra.file + + + ggt + application/vnd.geogebra.tool + + + ghf + application/vnd.groove-help + + + gif + image/gif + + + gim + application/vnd.groove-identity-message + + + gml + application/gml+xml + + + gmx + application/vnd.gmx + + + gnumeric + application/x-gnumeric + + + gph + application/vnd.flographit + + + gpx + application/gpx+xml + + + gqf + application/vnd.grafeq + + + gqs + application/vnd.grafeq + + + gram + application/srgs + + + gramps + application/x-gramps-xml + + + gre + application/vnd.geometry-explorer + + + grv + application/vnd.groove-injector + + + grxml + application/srgs+xml + + + gsf + application/x-font-ghostscript + + + gtar + application/x-gtar + + + gtm + application/vnd.groove-tool-message + + + gtw + model/vnd.gtw + + + gv + text/vnd.graphviz + + + gxf + application/gxf + + + gxt + application/vnd.geonext + + + gz + application/x-gzip + + + h + text/x-c + + + h261 + video/h261 + + + h263 + video/h263 + + + h264 + video/h264 + + + hal + application/vnd.hal+xml + + + hbci + application/vnd.hbci + + + hdf + application/x-hdf + + + hh + text/x-c + + + hlp + application/winhlp + + + hpgl + application/vnd.hp-hpgl + + + hpid + application/vnd.hp-hpid + + + hps + application/vnd.hp-hps + + + hqx + application/mac-binhex40 + + + htc + text/x-component + + + htke + application/vnd.kenameaapp + + + htm + text/html + + + html + text/html + + + hvd + application/vnd.yamaha.hv-dic + + + hvp + application/vnd.yamaha.hv-voice + + + hvs + application/vnd.yamaha.hv-script + + + i2g + application/vnd.intergeo + + + icc + application/vnd.iccprofile + + + ice + x-conference/x-cooltalk + + + icm + application/vnd.iccprofile + + + ico + image/x-icon + + + ics + text/calendar + + + ief + image/ief + + + ifb + text/calendar + + + ifm + application/vnd.shana.informed.formdata + + + iges + model/iges + + + igl + application/vnd.igloader + + + igm + application/vnd.insors.igm + + + igs + model/iges + + + igx + application/vnd.micrografx.igx + + + iif + application/vnd.shana.informed.interchange + + + imp + application/vnd.accpac.simply.imp + + + ims + application/vnd.ms-ims + + + in + text/plain + + + ink + application/inkml+xml + + + inkml + application/inkml+xml + + + install + application/x-install-instructions + + + iota + application/vnd.astraea-software.iota + + + ipfix + application/ipfix + + + ipk + application/vnd.shana.informed.package + + + irm + application/vnd.ibm.rights-management + + + irp + application/vnd.irepository.package+xml + + + iso + application/x-iso9660-image + + + itp + application/vnd.shana.informed.formtemplate + + + ivp + application/vnd.immervision-ivp + + + ivu + application/vnd.immervision-ivu + + + jad + text/vnd.sun.j2me.app-descriptor + + + jam + application/vnd.jam + + + jar + application/java-archive + + + java + text/x-java-source + + + jisp + application/vnd.jisp + + + jlt + application/vnd.hp-jlyt + + + jnlp + application/x-java-jnlp-file + + + joda + application/vnd.joost.joda-archive + + + jpe + image/jpeg + + + jpeg + image/jpeg + + + jpg + image/jpeg + + + jpgm + video/jpm + + + jpgv + video/jpeg + + + jpm + video/jpm + + + js + application/javascript + + + jsf + text/plain + + + json + application/json + + + jsonml + application/jsonml+json + + + jspf + text/plain + + + kar + audio/midi + + + karbon + application/vnd.kde.karbon + + + kfo + application/vnd.kde.kformula + + + kia + application/vnd.kidspiration + + + kml + application/vnd.google-earth.kml+xml + + + kmz + application/vnd.google-earth.kmz + + + kne + application/vnd.kinar + + + knp + application/vnd.kinar + + + kon + application/vnd.kde.kontour + + + kpr + application/vnd.kde.kpresenter + + + kpt + application/vnd.kde.kpresenter + + + kpxx + application/vnd.ds-keypoint + + + ksp + application/vnd.kde.kspread + + + ktr + application/vnd.kahootz + + + ktx + image/ktx + + + ktz + application/vnd.kahootz + + + kwd + application/vnd.kde.kword + + + kwt + application/vnd.kde.kword + + + lasxml + application/vnd.las.las+xml + + + latex + application/x-latex + + + lbd + application/vnd.llamagraphics.life-balance.desktop + + + lbe + application/vnd.llamagraphics.life-balance.exchange+xml + + + les + application/vnd.hhe.lesson-player + + + lha + application/x-lzh-compressed + + + link66 + application/vnd.route66.link66+xml + + + list + text/plain + + + list3820 + application/vnd.ibm.modcap + + + listafp + application/vnd.ibm.modcap + + + lnk + application/x-ms-shortcut + + + log + text/plain + + + lostxml + application/lost+xml + + + lrf + application/octet-stream + + + lrm + application/vnd.ms-lrm + + + ltf + application/vnd.frogans.ltf + + + lvp + audio/vnd.lucent.voice + + + lwp + application/vnd.lotus-wordpro + + + lzh + application/x-lzh-compressed + + + m13 + application/x-msmediaview + + + m14 + application/x-msmediaview + + + m1v + video/mpeg + + + m21 + application/mp21 + + + m2a + audio/mpeg + + + m2v + video/mpeg + + + m3a + audio/mpeg + + + m3u + audio/x-mpegurl + + + m3u8 + application/vnd.apple.mpegurl + + + m4a + audio/mp4 + + + m4b + audio/mp4 + + + m4r + audio/mp4 + + + m4u + video/vnd.mpegurl + + + m4v + video/mp4 + + + ma + application/mathematica + + + mac + image/x-macpaint + + + mads + application/mads+xml + + + mag + application/vnd.ecowin.chart + + + maker + application/vnd.framemaker + + + man + text/troff + + + mar + application/octet-stream + + + mathml + application/mathml+xml + + + mb + application/mathematica + + + mbk + application/vnd.mobius.mbk + + + mbox + application/mbox + + + mc1 + application/vnd.medcalcdata + + + mcd + application/vnd.mcd + + + mcurl + text/vnd.curl.mcurl + + + mdb + application/x-msaccess + + + mdi + image/vnd.ms-modi + + + me + text/troff + + + mesh + model/mesh + + + meta4 + application/metalink4+xml + + + metalink + application/metalink+xml + + + mets + application/mets+xml + + + mfm + application/vnd.mfmp + + + mft + application/rpki-manifest + + + mgp + application/vnd.osgeo.mapguide.package + + + mgz + application/vnd.proteus.magazine + + + mid + audio/midi + + + midi + audio/midi + + + mie + application/x-mie + + + mif + application/x-mif + + + mime + message/rfc822 + + + mj2 + video/mj2 + + + mjp2 + video/mj2 + + + mk3d + video/x-matroska + + + mka + audio/x-matroska + + + mks + video/x-matroska + + + mkv + video/x-matroska + + + mlp + application/vnd.dolby.mlp + + + mmd + application/vnd.chipnuts.karaoke-mmd + + + mmf + application/vnd.smaf + + + mmr + image/vnd.fujixerox.edmics-mmr + + + mng + video/x-mng + + + mny + application/x-msmoney + + + mobi + application/x-mobipocket-ebook + + + mods + application/mods+xml + + + mov + video/quicktime + + + movie + video/x-sgi-movie + + + mp1 + audio/mpeg + + + mp2 + audio/mpeg + + + mp21 + application/mp21 + + + mp2a + audio/mpeg + + + mp3 + audio/mpeg + + + mp4 + video/mp4 + + + mp4a + audio/mp4 + + + mp4s + application/mp4 + + + mp4v + video/mp4 + + + mpa + audio/mpeg + + + mpc + application/vnd.mophun.certificate + + + mpe + video/mpeg + + + mpeg + video/mpeg + + + mpega + audio/x-mpeg + + + mpg + video/mpeg + + + mpg4 + video/mp4 + + + mpga + audio/mpeg + + + mpkg + application/vnd.apple.installer+xml + + + mpm + application/vnd.blueice.multipass + + + mpn + application/vnd.mophun.application + + + mpp + application/vnd.ms-project + + + mpt + application/vnd.ms-project + + + mpv2 + video/mpeg2 + + + mpy + application/vnd.ibm.minipay + + + mqy + application/vnd.mobius.mqy + + + mrc + application/marc + + + mrcx + application/marcxml+xml + + + ms + text/troff + + + mscml + application/mediaservercontrol+xml + + + mseed + application/vnd.fdsn.mseed + + + mseq + application/vnd.mseq + + + msf + application/vnd.epson.msf + + + msh + model/mesh + + + msi + application/x-msdownload + + + msl + application/vnd.mobius.msl + + + msty + application/vnd.muvee.style + + + mts + model/vnd.mts + + + mus + application/vnd.musician + + + musicxml + application/vnd.recordare.musicxml+xml + + + mvb + application/x-msmediaview + + + mwf + application/vnd.mfer + + + mxf + application/mxf + + + mxl + application/vnd.recordare.musicxml + + + mxml + application/xv+xml + + + mxs + application/vnd.triscape.mxs + + + mxu + video/vnd.mpegurl + + + n-gage + application/vnd.nokia.n-gage.symbian.install + + + n3 + text/n3 + + + nb + application/mathematica + + + nbp + application/vnd.wolfram.player + + + nc + application/x-netcdf + + + ncx + application/x-dtbncx+xml + + + nfo + text/x-nfo + + + ngdat + application/vnd.nokia.n-gage.data + + + nitf + application/vnd.nitf + + + nlu + application/vnd.neurolanguage.nlu + + + nml + application/vnd.enliven + + + nnd + application/vnd.noblenet-directory + + + nns + application/vnd.noblenet-sealer + + + nnw + application/vnd.noblenet-web + + + npx + image/vnd.net-fpx + + + nsc + application/x-conference + + + nsf + application/vnd.lotus-notes + + + ntf + application/vnd.nitf + + + nzb + application/x-nzb + + + oa2 + application/vnd.fujitsu.oasys2 + + + oa3 + application/vnd.fujitsu.oasys3 + + + oas + application/vnd.fujitsu.oasys + + + obd + application/x-msbinder + + + obj + application/x-tgif + + + oda + application/oda + + + + odb + application/vnd.oasis.opendocument.database + + + + odc + application/vnd.oasis.opendocument.chart + + + + odf + application/vnd.oasis.opendocument.formula + + + odft + application/vnd.oasis.opendocument.formula-template + + + + odg + application/vnd.oasis.opendocument.graphics + + + + odi + application/vnd.oasis.opendocument.image + + + + odm + application/vnd.oasis.opendocument.text-master + + + + odp + application/vnd.oasis.opendocument.presentation + + + + ods + application/vnd.oasis.opendocument.spreadsheet + + + + odt + application/vnd.oasis.opendocument.text + + + oga + audio/ogg + + + ogg + audio/ogg + + + ogv + video/ogg + + + + ogx + application/ogg + + + omdoc + application/omdoc+xml + + + onepkg + application/onenote + + + onetmp + application/onenote + + + onetoc + application/onenote + + + onetoc2 + application/onenote + + + opf + application/oebps-package+xml + + + opml + text/x-opml + + + oprc + application/vnd.palm + + + org + application/vnd.lotus-organizer + + + osf + application/vnd.yamaha.openscoreformat + + + osfpvg + application/vnd.yamaha.openscoreformat.osfpvg+xml + + + otc + application/vnd.oasis.opendocument.chart-template + + + otf + font/otf + + + + otg + application/vnd.oasis.opendocument.graphics-template + + + + oth + application/vnd.oasis.opendocument.text-web + + + oti + application/vnd.oasis.opendocument.image-template + + + + otp + application/vnd.oasis.opendocument.presentation-template + + + + ots + application/vnd.oasis.opendocument.spreadsheet-template + + + + ott + application/vnd.oasis.opendocument.text-template + + + oxps + application/oxps + + + oxt + application/vnd.openofficeorg.extension + + + p + text/x-pascal + + + p10 + application/pkcs10 + + + p12 + application/x-pkcs12 + + + p7b + application/x-pkcs7-certificates + + + p7c + application/pkcs7-mime + + + p7m + application/pkcs7-mime + + + p7r + application/x-pkcs7-certreqresp + + + p7s + application/pkcs7-signature + + + p8 + application/pkcs8 + + + pas + text/x-pascal + + + paw + application/vnd.pawaafile + + + pbd + application/vnd.powerbuilder6 + + + pbm + image/x-portable-bitmap + + + pcap + application/vnd.tcpdump.pcap + + + pcf + application/x-font-pcf + + + pcl + application/vnd.hp-pcl + + + pclxl + application/vnd.hp-pclxl + + + pct + image/pict + + + pcurl + application/vnd.curl.pcurl + + + pcx + image/x-pcx + + + pdb + application/vnd.palm + + + pdf + application/pdf + + + pfa + application/x-font-type1 + + + pfb + application/x-font-type1 + + + pfm + application/x-font-type1 + + + pfr + application/font-tdpfr + + + pfx + application/x-pkcs12 + + + pgm + image/x-portable-graymap + + + pgn + application/x-chess-pgn + + + pgp + application/pgp-encrypted + + + pic + image/pict + + + pict + image/pict + + + pkg + application/octet-stream + + + pki + application/pkixcmp + + + pkipath + application/pkix-pkipath + + + plb + application/vnd.3gpp.pic-bw-large + + + plc + application/vnd.mobius.plc + + + plf + application/vnd.pocketlearn + + + pls + audio/x-scpls + + + pml + application/vnd.ctc-posml + + + png + image/png + + + pnm + image/x-portable-anymap + + + pnt + image/x-macpaint + + + portpkg + application/vnd.macports.portpkg + + + pot + application/vnd.ms-powerpoint + + + potm + application/vnd.ms-powerpoint.template.macroenabled.12 + + + potx + application/vnd.openxmlformats-officedocument.presentationml.template + + + ppam + application/vnd.ms-powerpoint.addin.macroenabled.12 + + + ppd + application/vnd.cups-ppd + + + ppm + image/x-portable-pixmap + + + pps + application/vnd.ms-powerpoint + + + ppsm + application/vnd.ms-powerpoint.slideshow.macroenabled.12 + + + ppsx + application/vnd.openxmlformats-officedocument.presentationml.slideshow + + + ppt + application/vnd.ms-powerpoint + + + pptm + application/vnd.ms-powerpoint.presentation.macroenabled.12 + + + pptx + application/vnd.openxmlformats-officedocument.presentationml.presentation + + + pqa + application/vnd.palm + + + prc + application/x-mobipocket-ebook + + + pre + application/vnd.lotus-freelance + + + prf + application/pics-rules + + + ps + application/postscript + + + psb + application/vnd.3gpp.pic-bw-small + + + psd + image/vnd.adobe.photoshop + + + psf + application/x-font-linux-psf + + + pskcxml + application/pskc+xml + + + ptid + application/vnd.pvi.ptid1 + + + pub + application/x-mspublisher + + + pvb + application/vnd.3gpp.pic-bw-var + + + pwn + application/vnd.3m.post-it-notes + + + pya + audio/vnd.ms-playready.media.pya + + + pyv + video/vnd.ms-playready.media.pyv + + + qam + application/vnd.epson.quickanime + + + qbo + application/vnd.intu.qbo + + + qfx + application/vnd.intu.qfx + + + qps + application/vnd.publishare-delta-tree + + + qt + video/quicktime + + + qti + image/x-quicktime + + + qtif + image/x-quicktime + + + qwd + application/vnd.quark.quarkxpress + + + qwt + application/vnd.quark.quarkxpress + + + qxb + application/vnd.quark.quarkxpress + + + qxd + application/vnd.quark.quarkxpress + + + qxl + application/vnd.quark.quarkxpress + + + qxt + application/vnd.quark.quarkxpress + + + ra + audio/x-pn-realaudio + + + ram + audio/x-pn-realaudio + + + rar + application/x-rar-compressed + + + ras + image/x-cmu-raster + + + rcprofile + application/vnd.ipunplugged.rcprofile + + + rdf + application/rdf+xml + + + rdz + application/vnd.data-vision.rdz + + + rep + application/vnd.businessobjects + + + res + application/x-dtbresource+xml + + + rgb + image/x-rgb + + + rif + application/reginfo+xml + + + rip + audio/vnd.rip + + + ris + application/x-research-info-systems + + + rl + application/resource-lists+xml + + + rlc + image/vnd.fujixerox.edmics-rlc + + + rld + application/resource-lists-diff+xml + + + rm + application/vnd.rn-realmedia + + + rmi + audio/midi + + + rmp + audio/x-pn-realaudio-plugin + + + rms + application/vnd.jcp.javame.midlet-rms + + + rmvb + application/vnd.rn-realmedia-vbr + + + rnc + application/relax-ng-compact-syntax + + + roa + application/rpki-roa + + + roff + text/troff + + + rp9 + application/vnd.cloanto.rp9 + + + rpss + application/vnd.nokia.radio-presets + + + rpst + application/vnd.nokia.radio-preset + + + rq + application/sparql-query + + + rs + application/rls-services+xml + + + rsd + application/rsd+xml + + + rss + application/rss+xml + + + rtf + application/rtf + + + rtx + text/richtext + + + s + text/x-asm + + + s3m + audio/s3m + + + saf + application/vnd.yamaha.smaf-audio + + + sbml + application/sbml+xml + + + sc + application/vnd.ibm.secure-container + + + scd + application/x-msschedule + + + scm + application/vnd.lotus-screencam + + + scq + application/scvp-cv-request + + + scs + application/scvp-cv-response + + + scurl + text/vnd.curl.scurl + + + sda + application/vnd.stardivision.draw + + + sdc + application/vnd.stardivision.calc + + + sdd + application/vnd.stardivision.impress + + + sdkd + application/vnd.solent.sdkm+xml + + + sdkm + application/vnd.solent.sdkm+xml + + + sdp + application/sdp + + + sdw + application/vnd.stardivision.writer + + + see + application/vnd.seemail + + + seed + application/vnd.fdsn.seed + + + sema + application/vnd.sema + + + semd + application/vnd.semd + + + semf + application/vnd.semf + + + ser + application/java-serialized-object + + + setpay + application/set-payment-initiation + + + setreg + application/set-registration-initiation + + + sfd-hdstx + application/vnd.hydrostatix.sof-data + + + sfs + application/vnd.spotfire.sfs + + + sfv + text/x-sfv + + + sgi + image/sgi + + + sgl + application/vnd.stardivision.writer-global + + + sgm + text/sgml + + + sgml + text/sgml + + + sh + application/x-sh + + + shar + application/x-shar + + + shf + application/shf+xml + + + + sid + image/x-mrsid-image + + + sig + application/pgp-signature + + + sil + audio/silk + + + silo + model/mesh + + + sis + application/vnd.symbian.install + + + sisx + application/vnd.symbian.install + + + sit + application/x-stuffit + + + sitx + application/x-stuffitx + + + skd + application/vnd.koan + + + skm + application/vnd.koan + + + skp + application/vnd.koan + + + skt + application/vnd.koan + + + sldm + application/vnd.ms-powerpoint.slide.macroenabled.12 + + + sldx + application/vnd.openxmlformats-officedocument.presentationml.slide + + + slt + application/vnd.epson.salt + + + sm + application/vnd.stepmania.stepchart + + + smf + application/vnd.stardivision.math + + + smi + application/smil+xml + + + smil + application/smil+xml + + + smv + video/x-smv + + + smzip + application/vnd.stepmania.package + + + snd + audio/basic + + + snf + application/x-font-snf + + + so + application/octet-stream + + + spc + application/x-pkcs7-certificates + + + spf + application/vnd.yamaha.smaf-phrase + + + spl + application/x-futuresplash + + + spot + text/vnd.in3d.spot + + + spp + application/scvp-vp-response + + + spq + application/scvp-vp-request + + + spx + audio/ogg + + + sql + application/x-sql + + + src + application/x-wais-source + + + srt + application/x-subrip + + + sru + application/sru+xml + + + srx + application/sparql-results+xml + + + ssdl + application/ssdl+xml + + + sse + application/vnd.kodak-descriptor + + + ssf + application/vnd.epson.ssf + + + ssml + application/ssml+xml + + + st + application/vnd.sailingtracker.track + + + stc + application/vnd.sun.xml.calc.template + + + std + application/vnd.sun.xml.draw.template + + + stf + application/vnd.wt.stf + + + sti + application/vnd.sun.xml.impress.template + + + stk + application/hyperstudio + + + stl + application/vnd.ms-pki.stl + + + str + application/vnd.pg.format + + + stw + application/vnd.sun.xml.writer.template + + + sub + text/vnd.dvb.subtitle + + + sus + application/vnd.sus-calendar + + + susp + application/vnd.sus-calendar + + + sv4cpio + application/x-sv4cpio + + + sv4crc + application/x-sv4crc + + + svc + application/vnd.dvb.service + + + svd + application/vnd.svd + + + svg + image/svg+xml + + + svgz + image/svg+xml + + + swa + application/x-director + + + swf + application/x-shockwave-flash + + + swi + application/vnd.aristanetworks.swi + + + sxc + application/vnd.sun.xml.calc + + + sxd + application/vnd.sun.xml.draw + + + sxg + application/vnd.sun.xml.writer.global + + + sxi + application/vnd.sun.xml.impress + + + sxm + application/vnd.sun.xml.math + + + sxw + application/vnd.sun.xml.writer + + + t + text/troff + + + t3 + application/x-t3vm-image + + + taglet + application/vnd.mynfc + + + tao + application/vnd.tao.intent-module-archive + + + tar + application/x-tar + + + tcap + application/vnd.3gpp2.tcap + + + tcl + application/x-tcl + + + teacher + application/vnd.smart.teacher + + + tei + application/tei+xml + + + teicorpus + application/tei+xml + + + tex + application/x-tex + + + texi + application/x-texinfo + + + texinfo + application/x-texinfo + + + text + text/plain + + + tfi + application/thraud+xml + + + tfm + application/x-tex-tfm + + + tga + image/x-tga + + + thmx + application/vnd.ms-officetheme + + + tif + image/tiff + + + tiff + image/tiff + + + tmo + application/vnd.tmobile-livetv + + + torrent + application/x-bittorrent + + + tpl + application/vnd.groove-tool-template + + + tpt + application/vnd.trid.tpt + + + tr + text/troff + + + tra + application/vnd.trueapp + + + trm + application/x-msterminal + + + tsd + application/timestamped-data + + + tsv + text/tab-separated-values + + + ttc + font/collection + + + ttf + font/ttf + + + ttl + text/turtle + + + twd + application/vnd.simtech-mindmapper + + + twds + application/vnd.simtech-mindmapper + + + txd + application/vnd.genomatix.tuxedo + + + txf + application/vnd.mobius.txf + + + txt + text/plain + + + u32 + application/x-authorware-bin + + + udeb + application/x-debian-package + + + ufd + application/vnd.ufdl + + + ufdl + application/vnd.ufdl + + + ulw + audio/basic + + + ulx + application/x-glulx + + + umj + application/vnd.umajin + + + unityweb + application/vnd.unity + + + uoml + application/vnd.uoml+xml + + + uri + text/uri-list + + + uris + text/uri-list + + + urls + text/uri-list + + + ustar + application/x-ustar + + + utz + application/vnd.uiq.theme + + + uu + text/x-uuencode + + + uva + audio/vnd.dece.audio + + + uvd + application/vnd.dece.data + + + uvf + application/vnd.dece.data + + + uvg + image/vnd.dece.graphic + + + uvh + video/vnd.dece.hd + + + uvi + image/vnd.dece.graphic + + + uvm + video/vnd.dece.mobile + + + uvp + video/vnd.dece.pd + + + uvs + video/vnd.dece.sd + + + uvt + application/vnd.dece.ttml+xml + + + uvu + video/vnd.uvvu.mp4 + + + uvv + video/vnd.dece.video + + + uvva + audio/vnd.dece.audio + + + uvvd + application/vnd.dece.data + + + uvvf + application/vnd.dece.data + + + uvvg + image/vnd.dece.graphic + + + uvvh + video/vnd.dece.hd + + + uvvi + image/vnd.dece.graphic + + + uvvm + video/vnd.dece.mobile + + + uvvp + video/vnd.dece.pd + + + uvvs + video/vnd.dece.sd + + + uvvt + application/vnd.dece.ttml+xml + + + uvvu + video/vnd.uvvu.mp4 + + + uvvv + video/vnd.dece.video + + + uvvx + application/vnd.dece.unspecified + + + uvvz + application/vnd.dece.zip + + + uvx + application/vnd.dece.unspecified + + + uvz + application/vnd.dece.zip + + + vcard + text/vcard + + + vcd + application/x-cdlink + + + vcf + text/x-vcard + + + vcg + application/vnd.groove-vcard + + + vcs + text/x-vcalendar + + + vcx + application/vnd.vcx + + + vis + application/vnd.visionary + + + viv + video/vnd.vivo + + + vob + video/x-ms-vob + + + vor + application/vnd.stardivision.writer + + + vox + application/x-authorware-bin + + + vrml + model/vrml + + + vsd + application/vnd.visio + + + vsf + application/vnd.vsf + + + vss + application/vnd.visio + + + vst + application/vnd.visio + + + vsw + application/vnd.visio + + + vtu + model/vnd.vtu + + + vxml + application/voicexml+xml + + + w3d + application/x-director + + + wad + application/x-doom + + + wasm + application/wasm + + + wav + audio/x-wav + + + wax + audio/x-ms-wax + + + + wbmp + image/vnd.wap.wbmp + + + wbs + application/vnd.criticaltools.wbs+xml + + + wbxml + application/vnd.wap.wbxml + + + wcm + application/vnd.ms-works + + + wdb + application/vnd.ms-works + + + wdp + image/vnd.ms-photo + + + weba + audio/webm + + + webm + video/webm + + + webp + image/webp + + + wg + application/vnd.pmi.widget + + + wgt + application/widget + + + wks + application/vnd.ms-works + + + wm + video/x-ms-wm + + + wma + audio/x-ms-wma + + + wmd + application/x-ms-wmd + + + wmf + application/x-msmetafile + + + + wml + text/vnd.wap.wml + + + + wmlc + application/vnd.wap.wmlc + + + + wmls + text/vnd.wap.wmlscript + + + + wmlsc + application/vnd.wap.wmlscriptc + + + wmv + video/x-ms-wmv + + + wmx + video/x-ms-wmx + + + wmz + application/x-msmetafile + + + woff + font/woff + + + woff2 + font/woff2 + + + wpd + application/vnd.wordperfect + + + wpl + application/vnd.ms-wpl + + + wps + application/vnd.ms-works + + + wqd + application/vnd.wqd + + + wri + application/x-mswrite + + + wrl + model/vrml + + + wsdl + application/wsdl+xml + + + wspolicy + application/wspolicy+xml + + + wtb + application/vnd.webturbo + + + wvx + video/x-ms-wvx + + + x32 + application/x-authorware-bin + + + x3d + model/x3d+xml + + + x3db + model/x3d+binary + + + x3dbz + model/x3d+binary + + + x3dv + model/x3d+vrml + + + x3dvz + model/x3d+vrml + + + x3dz + model/x3d+xml + + + xaml + application/xaml+xml + + + xap + application/x-silverlight-app + + + xar + application/vnd.xara + + + xbap + application/x-ms-xbap + + + xbd + application/vnd.fujixerox.docuworks.binder + + + xbm + image/x-xbitmap + + + xdf + application/xcap-diff+xml + + + xdm + application/vnd.syncml.dm+xml + + + xdp + application/vnd.adobe.xdp+xml + + + xdssc + application/dssc+xml + + + xdw + application/vnd.fujixerox.docuworks + + + xenc + application/xenc+xml + + + xer + application/patch-ops-error+xml + + + xfdf + application/vnd.adobe.xfdf + + + xfdl + application/vnd.xfdl + + + xht + application/xhtml+xml + + + xhtml + application/xhtml+xml + + + xhvml + application/xv+xml + + + xif + image/vnd.xiff + + + xla + application/vnd.ms-excel + + + xlam + application/vnd.ms-excel.addin.macroenabled.12 + + + xlc + application/vnd.ms-excel + + + xlf + application/x-xliff+xml + + + xlm + application/vnd.ms-excel + + + xls + application/vnd.ms-excel + + + xlsb + application/vnd.ms-excel.sheet.binary.macroenabled.12 + + + xlsm + application/vnd.ms-excel.sheet.macroenabled.12 + + + xlsx + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + xlt + application/vnd.ms-excel + + + xltm + application/vnd.ms-excel.template.macroenabled.12 + + + xltx + application/vnd.openxmlformats-officedocument.spreadsheetml.template + + + xlw + application/vnd.ms-excel + + + xm + audio/xm + + + xml + application/xml + + + xo + application/vnd.olpc-sugar + + + xop + application/xop+xml + + + xpi + application/x-xpinstall + + + xpl + application/xproc+xml + + + xpm + image/x-xpixmap + + + xpr + application/vnd.is-xpr + + + xps + application/vnd.ms-xpsdocument + + + xpw + application/vnd.intercon.formnet + + + xpx + application/vnd.intercon.formnet + + + xsl + application/xml + + + xslt + application/xslt+xml + + + xsm + application/vnd.syncml+xml + + + xspf + application/xspf+xml + + + xul + application/vnd.mozilla.xul+xml + + + xvm + application/xv+xml + + + xvml + application/xv+xml + + + xwd + image/x-xwindowdump + + + xyz + chemical/x-xyz + + + xz + application/x-xz + + + yang + application/yang + + + yin + application/yin+xml + + + z + application/x-compress + + + z1 + application/x-zmachine + + + z2 + application/x-zmachine + + + z3 + application/x-zmachine + + + z4 + application/x-zmachine + + + z5 + application/x-zmachine + + + z6 + application/x-zmachine + + + z7 + application/x-zmachine + + + z8 + application/x-zmachine + + + zaz + application/vnd.zzazz.deck+xml + + + zip + application/zip + + + zir + application/vnd.zul + + + zirz + application/vnd.zul + + + zmm + application/vnd.handheld-entertainment+xml + + + + + + + + + + + + + + + + + + index.html + index.htm + index.jsp + + + diff --git a/conf/wrapper-additional.default b/conf/wrapper-additional.conf similarity index 83% rename from conf/wrapper-additional.default rename to conf/wrapper-additional.conf index de9ad3f..4f9b0d6 100644 --- a/conf/wrapper-additional.default +++ b/conf/wrapper-additional.conf @@ -3,7 +3,6 @@ #******************************************************************** # Java Additional Parameters #******************************************************************** --javaagent:"%WRAPPER_BASE_DIR%/exporter/jmx_prometheus_javaagent-0.12.0.jar=9404:%WRAPPER_BASE_DIR%/exporter/jmx_exporter.yml" -server -showversion -XX:+PrintGCDetails @@ -15,9 +14,12 @@ -Xmx4096M -Xss1M -XX:MetaspaceSize=128M --XX:MaxMetaspaceSize=1024M +-XX:MaxMetaspaceSize=256M +-XX:MaxDirectMemorySize=4096M -Djava.security.egd=file:/dev/urandom -Djava.awt.headless=true +-Djava.net.preferIPv4Stack=true +-Djava.net.preferIPv6Addresses=false -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 diff --git a/conf/wrapper-additional.tmpl b/conf/wrapper-additional.tmpl index b298067..acca822 100644 --- a/conf/wrapper-additional.tmpl +++ b/conf/wrapper-additional.tmpl @@ -3,58 +3,63 @@ #******************************************************************** # Java Additional Parameters #******************************************************************** -{{- if eq .JmxExporter.Enabled "true"}} --javaagent:"%WRAPPER_BASE_DIR%/exporter/jmx_prometheus_javaagent-0.12.0.jar={{.JmxExporter.Port}}:%WRAPPER_BASE_DIR%/exporter/jmx_exporter.yml" +{{- if eq .Jvm.JmxExporter.Enabled "true"}} +-javaagent:"%WRAPPER_BASE_DIR%/exporter/jmx_prometheus_javaagent-0.12.0.jar={{.Jvm.JmxExporter.Port}}:%WRAPPER_BASE_DIR%/exporter/jmx_exporter.yml" {{- end}} -server -showversion -{{- if eq .HeapDumpEnabled "true"}} +{{- if eq .Jvm.HeapDumpEnabled "true"}} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../temp/ {{- end}} -{{- if eq .PrintGcEnabled "true"}} +{{- if eq .Jvm.PrintGcEnabled "true"}} -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC {{- end}} -Xloggc:../logs/jvmgc.log --Xms{{.Xms}} --Xmx{{.Xmx}} --Xss{{.Xss}} --XX:MetaspaceSize={{.MetaspaceSize}} --XX:MaxMetaspaceSize={{.MaxMetaspaceSize}} -{{- if eq .RemoteDebug.Enabled "true"}} +-Xms{{.Jvm.Xms}} +-Xmx{{.Jvm.Xmx}} +-Xss{{.Jvm.Xss}} +-XX:MetaspaceSize={{.Jvm.MetaspaceSize}} +-XX:MaxMetaspaceSize={{.Jvm.MaxMetaspaceSize}} +-XX:MaxDirectMemorySize={{.Jvm.MaxDirectMemorySize}} +{{- if eq .Jvm.RemoteDebug.Enabled "true"}} -Xint -Xdebug -Xnoagent -Djava.compiler=NONE --Xrunjdwp:transport=dt_socket,server=y,suspend={{.RemoteDebug.Suspend}},address={{.RemoteDebug.Port}} +-Xrunjdwp:transport=dt_socket,server=y,suspend={{.Jvm.RemoteDebug.Suspend}},address={{.Jvm.RemoteDebug.Port}} {{- end}} -Djava.security.egd=file:/dev/urandom -Djava.awt.headless=true +-Djava.net.preferIPv4Stack=true +-Djava.net.preferIPv6Addresses=false -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -Duser.timezone=GMT+8 -{{- if eq .JmxRemote.Enabled "true"}} +{{- if eq .Jvm.JmxRemote.Enabled "true"}} -Dcom.sun.management.jmxremote --Dcom.sun.management.jmxremote.ssl={{.JmxRemote.Ssl}} +-Dcom.sun.management.jmxremote.ssl={{.Jvm.JmxRemote.Ssl}} -Dcom.sun.management.jmxremote.local.only=false --Dcom.sun.management.jmxremote.authenticate={{.JmxRemote.Auth}} +-Dcom.sun.management.jmxremote.authenticate={{.Jvm.JmxRemote.Auth}} -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password --Djava.rmi.server.hostname={{.JmxRemote.RmiServerHostname}} --Drmi.registry.port.platform={{.JmxRemote.RmiRegistryPort}} --Drmi.server.port.platform={{.JmxRemote.RmiServerPort}} +-Djava.rmi.server.hostname={{.Jvm.JmxRemote.RmiServerHostname}} +-Drmi.registry.port.platform={{.Jvm.JmxRemote.RmiRegistryPort}} +-Drmi.server.port.platform={{.Jvm.JmxRemote.RmiServerPort}} {{- end}} --Dhttp.listen.port={{.HttpListenPort}} --Dshutdown.port={{.ShutdownPort}} +-Dhttp.listen.port={{.Jvm.HttpListenPort}} +-Dshutdown.port={{.Jvm.ShutdownPort}} #******************************************************************** # Other Parameters #******************************************************************** -{{- range .OtherParameters}} +{{- range .Jvm.OtherParameters}} +{{- if .}} -D{{.}} {{- end}} +{{- end}} diff --git a/conf/wrapper-environment.tmpl b/conf/wrapper-environment.tmpl deleted file mode 100644 index 2a8e176..0000000 --- a/conf/wrapper-environment.tmpl +++ /dev/null @@ -1,31 +0,0 @@ -{ - "JmxExporter": { - "Enabled": "${WRAPPER_JMX_EXPORTER_ENABLED}", - "Port": "${WRAPPER_JMX_EXPORTER_PORT}" - }, - "HeapDumpEnabled": "${WRAPPER_HEAP_DUMP_ENABLED}", - "PrintGcEnabled": "${WRAPPER_PRINT_GC_ENABLED}", - "Xms": "${WRAPPER_XMS}", - "Xmx": "${WRAPPER_XMX}", - "Xss": "${WRAPPER_XSS}", - "MetaspaceSize": "${WRAPPER_METASPACE_SIZE}", - "MaxMetaspaceSize": "${WRAPPER_MAX_METASPACE_SIZE}", - "RemoteDebug": { - "Enabled": "${WRAPPER_REMOTE_DEBUG_ENABLED}", - "Suspend": "${WRAPPER_REMOTE_DEBUG_SUSPEND}", - "Port": "${WRAPPER_REMOTE_DEBUG_PORT}" - }, - "JmxRemote": { - "Enabled": "${WRAPPER_JMX_REMOTE_ENABLED}", - "Ssl": "${WRAPPER_JMX_REMOTE_SSL}", - "Auth": "${WRAPPER_JMX_REMOTE_AUTH}", - "RmiServerHostname": "${WRAPPER_JMX_REMOTE_RMI_SERVER_HOSTNAME}", - "RmiRegistryPort": "${WRAPPER_JMX_REMOTE_RMI_REGISTRY_PORT}", - "RmiServerPort": "${WRAPPER_JMX_REMOTE_RMI_SERVER_PORT}" - }, - "HttpListenPort": "${WRAPPER_HTTP_LISTEN_PORT}", - "ShutdownPort": "${WRAPPER_SHUTDOWN_PORT}", - "OtherParameters": [ - ${WRAPPER_OTHER_PARAMETERS} - ] -} \ No newline at end of file diff --git a/conf/wrapper-property.tomcat b/conf/wrapper-property.conf similarity index 93% rename from conf/wrapper-property.tomcat rename to conf/wrapper-property.conf index 187c7ae..bac5eaa 100644 --- a/conf/wrapper-property.tomcat +++ b/conf/wrapper-property.conf @@ -6,4 +6,4 @@ set.APP_NAME=myapp set.APP_LONG_NAME=myapp set.APP_DESC=myapp -set.RUN_AS_USER= \ No newline at end of file +set.RUN_AS_USER= diff --git a/conf/wrapper-property.single b/conf/wrapper-property.tmpl similarity index 56% rename from conf/wrapper-property.single rename to conf/wrapper-property.tmpl index c0e723c..b45df09 100644 --- a/conf/wrapper-property.single +++ b/conf/wrapper-property.tmpl @@ -3,8 +3,7 @@ #******************************************************************** # Wrapper App Properties #******************************************************************** -set.APP_NAME=myapp -set.APP_LONG_NAME=myapp -set.APP_DESC=myapp -set.APP_LAUNCHER=org.springframework.boot.loader.JarLauncher -set.RUN_AS_USER= \ No newline at end of file +set.APP_NAME={{.Prop.AppName}} +set.APP_LONG_NAME={{.Prop.AppLongName}} +set.APP_DESC={{.Prop.AppDesc}} +set.RUN_AS_USER={{.Prop.RunAsUser}} diff --git a/conf/wrapper.tomcat b/conf/wrapper.conf similarity index 97% rename from conf/wrapper.tomcat rename to conf/wrapper.conf index 6ca2c46..59dfe3a 100644 --- a/conf/wrapper.tomcat +++ b/conf/wrapper.conf @@ -155,7 +155,7 @@ wrapper.syslog.loglevel=NONE wrapper.ignore_sequence_gaps=TRUE # Do not start if the pid file already exists. -wrapper.pidfile.strict=TRUE +wrapper.pidfile.strict=FALSE # Title to use when running as a console wrapper.console.title=%APP_NAME% @@ -274,3 +274,12 @@ wrapper.java.detect_debug_jvm=FALSE # print java version wrapper.java.version.output=TRUE wrapper.java.version.timeout=60 + +# wrapper's pid and status +wrapper.pidfile=./%APP_NAME%.pid +wrapper.statusfile=./%APP_NAME%.status + +# java's pid, id, status +wrapper.java.pidfile=./%APP_NAME%.java.pid +wrapper.java.idfile=./%APP_NAME%.java.id +wrapper.java.statusfile=./%APP_NAME%.java.status diff --git a/conf/wrapper.single b/conf/wrapper.single deleted file mode 100644 index 1d78838..0000000 --- a/conf/wrapper.single +++ /dev/null @@ -1,272 +0,0 @@ -#encoding=UTF-8 -# Configuration files must begin with a line specifying the encoding -# of the the file. - -#******************************************************************** -# Wrapper License Properties (Ignored by Community Edition) -#******************************************************************** -# Professional and Standard Editions of the Wrapper require a valid -# License Key to start. Licenses can be purchased or a trial license -# requested on the following pages: -# http://wrapper.tanukisoftware.com/purchase -# http://wrapper.tanukisoftware.com/trial - -# Include file problems can be debugged by leaving only one '#' -# at the beginning of the following line: -##include.debug - -# The Wrapper will look for either of the following optional files for a -# valid License Key. License Key properties can optionally be included -# directly in this configuration file. -#include ../conf/wrapper-license.conf -#include ../conf/wrapper-license-%WRAPPER_HOST_NAME%.conf -#include ../conf/wrapper-property.conf - -# The following property will output information about which License Key(s) -# are being found, and can aid in resolving any licensing problems. -#wrapper.license.debug=TRUE - -#******************************************************************** -# Wrapper Localization -#******************************************************************** -# Specify the language and locale which the Wrapper should use. -#wrapper.lang=en_US # en_US or ja_JP - -# Specify the location of the language resource files (*.mo). -wrapper.lang.folder=../lang - -#******************************************************************** -# Wrapper App Properties -#******************************************************************** -set.MALLOC_ARENA_MAX=1 -set.WRAPPER_BASE_DIR=%WRAPPER_BIN_DIR%/.. -set.LD_LIBRARY_PATH=.:%WRAPPER_BASE_DIR%/libcore:%WRAPPER_BASE_DIR%/libextend:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64 -set.JAVA_HOME=%WRAPPER_BASE_DIR%/jre -set.CLASSPATH=.:%JAVA_HOME%/lib - -#******************************************************************** -# Wrapper Java Properties -#******************************************************************** -# Java Application -# Locate the java binary on the system PATH: -#wrapper.java.command=java -# Specify a specific java binary: -wrapper.java.command=%JAVA_HOME%/bin/java - -# Tell the Wrapper to log the full generated Java command line. -wrapper.java.command.loglevel=INFO - -# Java Main class. This class must implement the WrapperListener interface -# or guarantee that the WrapperManager class is initialized. Helper -# classes are provided to do this for you. -# See the following page for details: -# http://wrapper.tanukisoftware.com/doc/english/integrate.html -wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp - -# Java Classpath (include wrapper.jar) Add class path elements as -# needed starting from 1 -wrapper.java.classpath.1=%WRAPPER_BASE_DIR%/bin/wrapper-*.jar -wrapper.java.classpath.2=%WRAPPER_BASE_DIR%/lib/*.jar - -# Java Library Path (location of Wrapper.DLL or libwrapper.so) -wrapper.java.library.path.1=%WRAPPER_BASE_DIR%/libcore -wrapper.java.library.path.2=%WRAPPER_BASE_DIR%/libextend -wrapper.java.library.path.3=/usr/lib -wrapper.java.library.path.4=/usr/lib64 -wrapper.java.library.path.5=/usr/local/lib -wrapper.java.library.path.6=/usr/local/lib64 - -# Java Bits. On applicable platforms, tells the JVM to run in 32 or 64-bit mode. -wrapper.java.additional.auto_bits=TRUE - -# Java Additional Parameters -wrapper.java.additional.default.stripquotes=TRUE -wrapper.java.additional.1=-Dapp.home="%WRAPPER_BASE_DIR%" -wrapper.java.additional.2=-Dapp.base="%WRAPPER_BASE_DIR%" -wrapper.java.additional.3=-Dapp.temp="%WRAPPER_BASE_DIR%/temp" -wrapper.java.additional.4=-Dapp.work="%WRAPPER_BASE_DIR%/work" -wrapper.java.additional.5=-Dapp.logs="%WRAPPER_BASE_DIR%/logs" -wrapper.java.additional.6=-Djava.io.tmpdir="%WRAPPER_BASE_DIR%/temp" -wrapper.java.additional.7=-Djdk.tls.ephemeralDHKeySize=2048 - -# wrapper.java.additional_file -wrapper.java.additional_file.stripquotes=TRUE -wrapper.java.additional_file=%WRAPPER_BASE_DIR%/conf/wrapper-additional.conf - -# Initial Java Heap Size (in MB) -#wrapper.java.initmemory=3 - -# Maximum Java Heap Size (in MB) -#wrapper.java.maxmemory=64 - -# Application parameters. Add parameters as needed starting from 1 -wrapper.app.parameter.default.stripquotes=TRUE -wrapper.app.parameter.1=%APP_LAUNCHER% - -# wrapper.app.parameter_file -wrapper.app.parameter_file.stripquotes=TRUE - -#******************************************************************** -# Wrapper Logging Properties -#******************************************************************** -# Enables Debug output from the Wrapper. -# wrapper.debug=TRUE - -# Format of output for the console. (See docs for formats) -wrapper.console.format=LPTM - -# Log Level for console output. (See docs for log levels) -wrapper.console.loglevel=INFO - -# Log file to use for wrapper output logging. -wrapper.logfile=%WRAPPER_BASE_DIR%/logs/console_ROLLNUM.log - -wrapper.logfile.purge.pattern=%WRAPPER_BASE_DIR%/logs/console_*.log -wrapper.logfile.purge.sort=TIMES -wrapper.logfile.rollmode=SIZE - -# Format of output for the log file. (See docs for formats) -wrapper.logfile.format=LPTM - -# Log Level for log file output. (See docs for log levels) -wrapper.logfile.loglevel=INFO - -# Maximum size that the log file will be allowed to grow to before -# the log is rolled. Size is specified in bytes. The default value -# of 0, disables log rolling. May abbreviate with the 'k' (kb) or -# 'm' (mb) suffix. For example: 10m = 10 megabytes. -wrapper.logfile.maxsize=10m - -# Maximum number of rolled log files which will be allowed before old -# files are deleted. The default value of 0 implies no limit. -wrapper.logfile.maxfiles=50 - -# Log Level for sys/event log output. (See docs for log levels) -wrapper.syslog.loglevel=NONE - -#******************************************************************** -# Wrapper General Properties -#******************************************************************** -# Allow for the use of non-contiguous numbered properties -wrapper.ignore_sequence_gaps=TRUE - -# Do not start if the pid file already exists. -wrapper.pidfile.strict=TRUE - -# Title to use when running as a console -wrapper.console.title=%APP_NAME% - -#******************************************************************** -# Wrapper JVM Checks -#******************************************************************** -# Detect DeadLocked Threads in the JVM. (Requires Standard Edition) -wrapper.check.deadlock=TRUE -wrapper.check.deadlock.interval=60 -wrapper.check.deadlock.action=RESTART -wrapper.check.deadlock.output=FULL - -# Out Of Memory detection. -# (Ignore output from dumping the configuration to the console. This is only needed by the TestWrapper sample application.) -wrapper.filter.trigger.999=wrapper.filter.trigger.*java.lang.OutOfMemoryError -wrapper.filter.allow_wildcards.999=TRUE -wrapper.filter.action.999=NONE -# Ignore -verbose:class output to avoid false positives. -wrapper.filter.trigger.1000=[Loaded java.lang.OutOfMemoryError -wrapper.filter.action.1000=NONE - -# Ignore java.lang.OutOfMemoryError without wildcards enabled -wrapper.filter.trigger.1001=Exception in thread "*" java.lang.OutOfMemoryError -wrapper.filter.action.1001=NONE -# Only match Exception in thread "*" java.lang.OutOfMemoryError with wildcards enabled -wrapper.filter.trigger.1002=Exception in thread "*" java.lang.OutOfMemoryError -wrapper.filter.allow_wildcards.1002=TRUE -wrapper.filter.action.1002=DUMP,RESTART -wrapper.filter.message.1002=The JVM has run out of memory. - -# Ignore java.lang.StackOverflowError without wildcards enabled -wrapper.filter.trigger.1003=Exception in thread "*" java.lang.StackOverflowError -wrapper.filter.action.1003=NONE -# Only match Exception in thread "*" java.lang.StackOverflowError with wildcards enabled -wrapper.filter.trigger.1004=Exception in thread "*" java.lang.StackOverflowError -wrapper.filter.allow_wildcards.1004=TRUE -wrapper.filter.action.1004=DUMP,RESTART -wrapper.filter.message.1004=The JVM has run stack over flow. - -#******************************************************************** -# Wrapper Email Notifications. (Requires Professional Edition) -#******************************************************************** -# Common Event Email settings. -#wrapper.event.default.email.debug=TRUE -#wrapper.event.default.email.smtp.host= -#wrapper.event.default.email.smtp.port=25 -#wrapper.event.default.email.subject=[%WRAPPER_HOSTNAME%:%WRAPPER_NAME%:%WRAPPER_EVENT_NAME%] Event Notification -#wrapper.event.default.email.sender= -#wrapper.event.default.email.recipient= - -# Configure the log attached to event emails. -#wrapper.event.default.email.maillog=ATTACHMENT -#wrapper.event.default.email.maillog.lines=50 -#wrapper.event.default.email.maillog.format=LPTM -#wrapper.event.default.email.maillog.loglevel=INFO - -# Enable specific event emails. -#wrapper.event.wrapper_start.email=TRUE -#wrapper.event.jvm_prelaunch.email=TRUE -#wrapper.event.jvm_start.email=TRUE -#wrapper.event.jvm_started.email=TRUE -#wrapper.event.jvm_deadlock.email=TRUE -#wrapper.event.jvm_stop.email=TRUE -#wrapper.event.jvm_stopped.email=TRUE -#wrapper.event.jvm_restart.email=TRUE -#wrapper.event.jvm_failed_invocation.email=TRUE -#wrapper.event.jvm_max_failed_invocations.email=TRUE -#wrapper.event.jvm_kill.email=TRUE -#wrapper.event.jvm_killed.email=TRUE -#wrapper.event.jvm_unexpected_exit.email=TRUE -#wrapper.event.wrapper_stop.email=TRUE - -# Specify custom mail content -wrapper.event.jvm_restart.email.body=The JVM was restarted.\n\nPlease check on its status.\n - -#******************************************************************** -# Wrapper Windows Service Properties -#******************************************************************** -# WARNING - Do not modify any of these properties when an application -# using this configuration file has been installed as a service. -# Please uninstall the service before modifying this section. The -# service can then be reinstalled. - -# Name of the service -wrapper.name=%APP_NAME% - -# Display name of the service -wrapper.displayname=%APP_LONG_NAME% - -# Description of the service -wrapper.description=%APP_DESC% - -# Service dependencies. Add dependencies as needed starting from 1 -wrapper.ntservice.dependency.1= - -# Mode in which the service is installed. AUTO_START, DELAY_START or DEMAND_START -wrapper.ntservice.starttype=AUTO_START - -# Allow the service to interact with the desktop (Windows NT/2000/XP only). -wrapper.ntservice.interactive=FALSE - -# dump environment -wrapper.environment.dump=TRUE - -# startup timeout 10m(impl WrapperListener) -wrapper.startup.timeout=600 - -# ping -wrapper.ping.timeout=60 -wrapper.ping.interval=10 - -# enable or disable this debugging check -wrapper.java.detect_debug_jvm=FALSE - -# print java version -wrapper.java.version.output=TRUE -wrapper.java.version.timeout=60 diff --git a/lib/annotations-api.jar b/lib/annotations-api.jar new file mode 100644 index 0000000..7d8cd8f Binary files /dev/null and b/lib/annotations-api.jar differ diff --git a/lib/catalina-ant.jar b/lib/catalina-ant.jar new file mode 100644 index 0000000..996db21 Binary files /dev/null and b/lib/catalina-ant.jar differ diff --git a/lib/catalina-ha.jar b/lib/catalina-ha.jar new file mode 100644 index 0000000..ec54ee1 Binary files /dev/null and b/lib/catalina-ha.jar differ diff --git a/lib/catalina-jmx-remote.jar b/lib/catalina-jmx-remote.jar new file mode 100644 index 0000000..f1ab4b7 Binary files /dev/null and b/lib/catalina-jmx-remote.jar differ diff --git a/lib/catalina-storeconfig.jar b/lib/catalina-storeconfig.jar new file mode 100644 index 0000000..a9bbfa0 Binary files /dev/null and b/lib/catalina-storeconfig.jar differ diff --git a/lib/catalina-tribes.jar b/lib/catalina-tribes.jar new file mode 100644 index 0000000..eea77a8 Binary files /dev/null and b/lib/catalina-tribes.jar differ diff --git a/lib/catalina-ws.jar b/lib/catalina-ws.jar new file mode 100644 index 0000000..06d3264 Binary files /dev/null and b/lib/catalina-ws.jar differ diff --git a/lib/catalina.jar b/lib/catalina.jar new file mode 100644 index 0000000..fea28e4 Binary files /dev/null and b/lib/catalina.jar differ diff --git a/lib/ecj-4.6.3.jar b/lib/ecj-4.6.3.jar new file mode 100644 index 0000000..04652f3 Binary files /dev/null and b/lib/ecj-4.6.3.jar differ diff --git a/lib/el-api.jar b/lib/el-api.jar new file mode 100644 index 0000000..5038fbf Binary files /dev/null and b/lib/el-api.jar differ diff --git a/lib/jasper-el.jar b/lib/jasper-el.jar new file mode 100644 index 0000000..bcceb9a Binary files /dev/null and b/lib/jasper-el.jar differ diff --git a/lib/jasper.jar b/lib/jasper.jar new file mode 100644 index 0000000..0bf51dc Binary files /dev/null and b/lib/jasper.jar differ diff --git a/lib/jaspic-api.jar b/lib/jaspic-api.jar new file mode 100644 index 0000000..8323aa8 Binary files /dev/null and b/lib/jaspic-api.jar differ diff --git a/lib/jsp-api.jar b/lib/jsp-api.jar new file mode 100644 index 0000000..cb54fb2 Binary files /dev/null and b/lib/jsp-api.jar differ diff --git a/lib/log4j-1.2-api-2.11.1.jar b/lib/log4j-1.2-api-2.11.1.jar new file mode 100644 index 0000000..fc728a4 Binary files /dev/null and b/lib/log4j-1.2-api-2.11.1.jar differ diff --git a/lib/log4j-api-2.11.1.jar b/lib/log4j-api-2.11.1.jar new file mode 100644 index 0000000..e6955f9 Binary files /dev/null and b/lib/log4j-api-2.11.1.jar differ diff --git a/lib/log4j-core-2.11.1.jar b/lib/log4j-core-2.11.1.jar new file mode 100644 index 0000000..9fd06dd Binary files /dev/null and b/lib/log4j-core-2.11.1.jar differ diff --git a/lib/log4j-web-2.11.1.jar b/lib/log4j-web-2.11.1.jar new file mode 100644 index 0000000..e506908 Binary files /dev/null and b/lib/log4j-web-2.11.1.jar differ diff --git a/lib/log4j2.xml b/lib/log4j2.xml new file mode 100644 index 0000000..dfc770b --- /dev/null +++ b/lib/log4j2.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + ${log_charset} + ${console_pattern} + + + + + + + + + + + + diff --git a/lib/servlet-api.jar b/lib/servlet-api.jar new file mode 100644 index 0000000..b0667bf Binary files /dev/null and b/lib/servlet-api.jar differ diff --git a/lib/tomcat-api.jar b/lib/tomcat-api.jar new file mode 100644 index 0000000..072c293 Binary files /dev/null and b/lib/tomcat-api.jar differ diff --git a/lib/tomcat-coyote.jar b/lib/tomcat-coyote.jar new file mode 100644 index 0000000..b9a2f76 Binary files /dev/null and b/lib/tomcat-coyote.jar differ diff --git a/lib/tomcat-dbcp.jar b/lib/tomcat-dbcp.jar new file mode 100644 index 0000000..0fe9ae1 Binary files /dev/null and b/lib/tomcat-dbcp.jar differ diff --git a/lib/tomcat-extend.jar b/lib/tomcat-extend.jar new file mode 100644 index 0000000..bed2770 Binary files /dev/null and b/lib/tomcat-extend.jar differ diff --git a/lib/tomcat-jdbc.jar b/lib/tomcat-jdbc.jar new file mode 100644 index 0000000..2170bfb Binary files /dev/null and b/lib/tomcat-jdbc.jar differ diff --git a/lib/tomcat-jni.jar b/lib/tomcat-jni.jar new file mode 100644 index 0000000..d4f0b74 Binary files /dev/null and b/lib/tomcat-jni.jar differ diff --git a/lib/tomcat-juli-adapters.jar b/lib/tomcat-juli-adapters.jar new file mode 100644 index 0000000..c2753d5 Binary files /dev/null and b/lib/tomcat-juli-adapters.jar differ diff --git a/lib/tomcat-util-scan.jar b/lib/tomcat-util-scan.jar new file mode 100644 index 0000000..281cf84 Binary files /dev/null and b/lib/tomcat-util-scan.jar differ diff --git a/lib/tomcat-util.jar b/lib/tomcat-util.jar new file mode 100644 index 0000000..67874b9 Binary files /dev/null and b/lib/tomcat-util.jar differ diff --git a/lib/tomcat-websocket.jar b/lib/tomcat-websocket.jar new file mode 100644 index 0000000..fc5fdf1 Binary files /dev/null and b/lib/tomcat-websocket.jar differ diff --git a/lib/websocket-api.jar b/lib/websocket-api.jar new file mode 100644 index 0000000..a6e046d Binary files /dev/null and b/lib/websocket-api.jar differ diff --git a/libcore/libwrapper-linux-x86-32.so b/libcore/libwrapper-linux-x86-32.so index f691921..a7f01de 100644 Binary files a/libcore/libwrapper-linux-x86-32.so and b/libcore/libwrapper-linux-x86-32.so differ diff --git a/libcore/libwrapper-linux-x86-64.so b/libcore/libwrapper-linux-x86-64.so index 0fe5cb5..e90a3a8 100644 Binary files a/libcore/libwrapper-linux-x86-64.so and b/libcore/libwrapper-linux-x86-64.so differ diff --git a/libcore/wrapper-windows-x86-32.dll b/libcore/wrapper-windows-x86-32.dll index 9ef1176..729441a 100644 Binary files a/libcore/wrapper-windows-x86-32.dll and b/libcore/wrapper-windows-x86-32.dll differ diff --git a/libcore/wrapper-windows-x86-64.dll b/libcore/wrapper-windows-x86-64.dll index 6417ab2..9c1d489 100644 Binary files a/libcore/wrapper-windows-x86-64.dll and b/libcore/wrapper-windows-x86-64.dll differ diff --git a/webapps/ROOT/.keep b/webapps/ROOT/.keep new file mode 100644 index 0000000..e69de29