kms.sh 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. #!/bin/bash
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. #
  15. # resolve links - $0 may be a softlink
  16. PRG="${0}"
  17. while [ -h "${PRG}" ]; do
  18. ls=`ls -ld "${PRG}"`
  19. link=`expr "$ls" : '.*-> \(.*\)$'`
  20. if expr "$link" : '/.*' > /dev/null; then
  21. PRG="$link"
  22. else
  23. PRG=`dirname "${PRG}"`/"$link"
  24. fi
  25. done
  26. BASEDIR=`dirname ${PRG}`
  27. BASEDIR=`cd ${BASEDIR}/..;pwd`
  28. KMS_SILENT=${KMS_SILENT:-true}
  29. HADOOP_LIBEXEC_DIR="${HADOOP_LIBEXEC_DIR:-${BASEDIR}/libexec}"
  30. source ${HADOOP_LIBEXEC_DIR}/kms-config.sh
  31. if [ "x$JAVA_LIBRARY_PATH" = "x" ]; then
  32. JAVA_LIBRARY_PATH="${HADOOP_LIBEXEC_DIR}/../lib/native/"
  33. else
  34. JAVA_LIBRARY_PATH="${HADOOP_LIBEXEC_DIR}/../lib/native/:${JAVA_LIBRARY_PATH}"
  35. fi
  36. # The Java System property 'kms.http.port' it is not used by Kms,
  37. # it is used in Tomcat's server.xml configuration file
  38. #
  39. print "Using CATALINA_OPTS: ${CATALINA_OPTS_DISP}"
  40. catalina_opts="-Dproc_kms"
  41. catalina_opts="${catalina_opts} -Dkms.log.dir=${KMS_LOG}"
  42. catalina_opts="${catalina_opts} -Djava.library.path=${JAVA_LIBRARY_PATH}"
  43. print "Adding to CATALINA_OPTS: ${catalina_opts}"
  44. print "Found KMS_SSL_KEYSTORE_PASS: `echo ${KMS_SSL_KEYSTORE_PASS} | sed 's/./*/g'`"
  45. export CATALINA_OPTS="${CATALINA_OPTS} ${catalina_opts}"
  46. catalina_init_properties() {
  47. cp "${CATALINA_BASE}/conf/catalina-default.properties" \
  48. "${CATALINA_BASE}/conf/catalina.properties"
  49. }
  50. catalina_set_property() {
  51. local key=$1
  52. local value=$2
  53. [[ -z "${value}" ]] && return
  54. local disp_value="${3:-${value}}"
  55. print "Setting catalina property ${key} to ${disp_value}"
  56. echo "${key}=${value}" >> "${CATALINA_BASE}/conf/catalina.properties"
  57. }
  58. if [[ "${1}" = "start" || "${1}" = "run" ]]; then
  59. catalina_init_properties
  60. catalina_set_property "kms.home.dir" "${KMS_HOME}"
  61. catalina_set_property "kms.config.dir" "${KMS_CONFIG}"
  62. catalina_set_property "kms.temp.dir" "${KMS_TEMP}"
  63. catalina_set_property "kms.admin.port" "${KMS_ADMIN_PORT}"
  64. catalina_set_property "kms.http.port" "${KMS_HTTP_PORT}"
  65. catalina_set_property "kms.protocol" "${KMS_PROTOCOL}"
  66. catalina_set_property "kms.max.threads" "${KMS_MAX_THREADS}"
  67. catalina_set_property "kms.accept.count" "${KMS_ACCEPT_COUNT}"
  68. catalina_set_property "kms.acceptor.thread.count" \
  69. "${KMS_ACCEPTOR_THREAD_COUNT}"
  70. catalina_set_property "kms.max.http.header.size" \
  71. "${KMS_MAX_HTTP_HEADER_SIZE}"
  72. catalina_set_property "kms.ssl.client.auth" "${KMS_SSL_CLIENT_AUTH}"
  73. catalina_set_property "kms.ssl.enabled.protocols" \
  74. "${KMS_SSL_ENABLED_PROTOCOLS}"
  75. catalina_set_property "kms.ssl.ciphers" "${KMS_SSL_CIPHERS}"
  76. catalina_set_property "kms.ssl.keystore.file" "${KMS_SSL_KEYSTORE_FILE}"
  77. # Set a KEYSTORE_PASS if not already set
  78. KMS_SSL_KEYSTORE_PASS=${KMS_SSL_KEYSTORE_PASS:-password}
  79. catalina_set_property "kms.ssl.keystore.pass" \
  80. "${KMS_SSL_KEYSTORE_PASS}" "<redacted>"
  81. fi
  82. # A bug in catalina.sh script does not use CATALINA_OPTS for stopping the server
  83. #
  84. if [ "${1}" = "stop" ]; then
  85. export JAVA_OPTS=${CATALINA_OPTS}
  86. fi
  87. if [ "${KMS_SILENT}" != "true" ]; then
  88. exec "${KMS_CATALINA_HOME}/bin/catalina.sh" "$@"
  89. else
  90. exec "${KMS_CATALINA_HOME}/bin/catalina.sh" "$@" > /dev/null
  91. fi