diff --git a/Dockerfile b/Dockerfile index 00d7bb98..e0a77c38 100644 --- a/Dockerfile +++ b/Dockerfile @@ -110,7 +110,7 @@ RUN touch /opt/grouper/grouperEnv.sh \ # keep backup of files RUN mkdir -p /opt/tier-support/originalFiles ; \ - cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties /opt/tier-support/originalFiles 2>/dev/null ; \ + cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml /opt/tier-support/originalFiles 2>/dev/null ; \ cp /etc/httpd/conf/httpd.conf /opt/tier-support/originalFiles 2>/dev/null ; \ cp /etc/httpd/conf.d/ssl-enabled.conf /opt/tier-support/originalFiles 2>/dev/null ; \ cp /etc/httpd/conf.d/httpd-shib.conf /opt/tier-support/originalFiles 2>/dev/null ; \ diff --git a/container_files/api/log4j.properties b/container_files/api/log4j.properties deleted file mode 100644 index e66f0e33..00000000 --- a/container_files/api/log4j.properties +++ /dev/null @@ -1,95 +0,0 @@ - -# -# Copyright 2014 Internet2 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -#${grouper.home} will be substituted with the System property "grouper.home", which must have a trailing \ or / -# depending on your OS. Of course you can use absolute paths if you prefer - - -# -# log4j Configuration -# $Id: log4j.example.properties,v 1.13 2009-12-18 13:56:51 tzeller Exp $ -# - -# Appenders - -## Grouper API error logging -log4j.appender.grouper_error = org.apache.log4j.FileAppender -log4j.appender.grouper_error.file = /tmp/logpipe -log4j.appender.grouper_error.append = true -log4j.appender.grouper_error.layout = org.apache.log4j.PatternLayout -log4j.appender.grouper_error.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;grouper_error.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n -#log4j.appender.grouper_error.layout.ConversionPattern = %d{ISO8601}: %m%n - -log4j.appender.grouper_daemon = org.apache.log4j.DailyRollingFileAppender -log4j.appender.grouper_daemon.File = /tmp/logpipe -log4j.appender.grouper_daemon.append = true -log4j.appender.grouper_daemon.layout = org.apache.log4j.PatternLayout -log4j.appender.grouper_daemon.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;grouperDaemon.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n - -log4j.appender.grouper_pspng = org.apache.log4j.FileAppender -log4j.appender.grouper_pspng.File = /tmp/logpipe -log4j.appender.grouper_pspng.append = true -log4j.appender.grouper_pspng.layout = org.apache.log4j.PatternLayout -log4j.appender.grouper_pspng.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;pspng.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n - -log4j.appender.grouper_provisioning = org.apache.log4j.FileAppender -log4j.appender.grouper_provisioning.file = /tmp/logpipe -log4j.appender.grouper_provisioning.append = true -log4j.appender.grouper_provisioning.layout = org.apache.log4j.PatternLayout -log4j.appender.grouper_provisioning.layout.ConversionPattern = __GROUPER_LOG_PREFIX__;provisioning.log;${ENV};${USERTOKEN};%d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n - - -# Loggers - -## Default logger; will log *everything* -log4j.rootLogger = ERROR, grouper_error - -## All Internet2 (warn to grouper_error per default logger) -log4j.logger.edu.internet2.middleware = WARN - -log4j.logger.edu.internet2.middleware.grouper.app.loader.GrouperLoaderLog = DEBUG, grouper_daemon -log4j.additivity.edu.internet2.middleware.grouper.app.loader.GrouperLoaderLog = false - -log4j.logger.edu.internet2.middleware.grouper.pspng = INFO, grouper_pspng -log4j.additivity.edu.internet2.middleware.grouper.pspng = false - -log4j.logger.edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningObjectLog = DEBUG, grouper_provisioning -log4j.additivity.edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningObjectLog = false - -log4j.logger.edu.internet2.middleware.grouper.app.syncToGrouper.SyncToGrouperFromSqlDaemon = DEBUG - -log4j.logger.edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningLogCommands = DEBUG - -log4j.logger.edu.internet2.middleware.grouper.stem.StemViewPrivilegeEsbListener = DEBUG - -log4j.logger.edu.internet2.middleware.grouper.stem.StemViewPrivilegeFullDaemonLogic = DEBUG - -####################################################### -##Optional settings for debug logs -####################################################### - -## Hooks debug info -#log4j.logger.edu.internet2.middleware.grouper.hooks.examples.GroupTypeTupleIncludeExcludeHook = DEBUG -#log4j.logger.edu.internet2.middleware.grouper.Group = DEBUG - -#log4j.logger.edu.internet2.middleware.grouper.hooks.examples.GroupTypeSecurityHook = DEBUG - - -# added by grouper-installer -log4j.logger.org.apache.tools.ant = WARN - -log4j.logger.edu.internet2.middleware.grouper.util.PerformanceLogger = INFO \ No newline at end of file diff --git a/container_files/api/log4j2.additionalLoggers.xml.txt b/container_files/api/log4j2.additionalLoggers.xml.txt new file mode 100644 index 00000000..e69de29b diff --git a/container_files/api/log4j2.container.xml b/container_files/api/log4j2.container.xml new file mode 100644 index 00000000..e360ddcb --- /dev/null +++ b/container_files/api/log4j2.container.xml @@ -0,0 +1,94 @@ + + + + %d{ISO8601}: [%t] %-5p %C{1}.%M(%L) - %x - %m%n + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/container_files/tier-support/test/grouperContainerUnitTest.sh b/container_files/tier-support/test/grouperContainerUnitTest.sh index 8305ad4f..343a479c 100644 --- a/container_files/tier-support/test/grouperContainerUnitTest.sh +++ b/container_files/tier-support/test/grouperContainerUnitTest.sh @@ -5,7 +5,7 @@ if [ "$#" -ne 4 ]; then exit 1 fi -expectedSuccesses=716 +expectedSuccesses=715 export containerName=$1 export imageName=$2 diff --git a/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh b/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh index 57325591..27c74f77 100644 --- a/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh +++ b/container_files/tier-support/test/grouperContainerUnitTestQuickstart.sh @@ -42,7 +42,7 @@ testContainerQuickstart() { assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties GROUPERSYSTEM_QUICKSTART_PASS - assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper;" + assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper;" assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600" assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__" diff --git a/container_files/tier-support/test/grouperContainerUnitTestScim.sh b/container_files/tier-support/test/grouperContainerUnitTestScim.sh index 20467d63..26637757 100644 --- a/container_files/tier-support/test/grouperContainerUnitTestScim.sh +++ b/container_files/tier-support/test/grouperContainerUnitTestScim.sh @@ -37,7 +37,7 @@ testContainerScim() { assertFileNotContains /etc/httpd/conf.d/ssl-enabled.conf cachain.pem assertFileContains /etc/httpd/conf.d/ssl-enabled.conf /etc/pki/tls/certs/localhost.crt - assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-scim;" + assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-scim;" assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600" assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__" diff --git a/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh b/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh index 2caa2476..148b61d3 100644 --- a/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh +++ b/container_files/tier-support/test/grouperContainerUnitTestSelfSigned.sh @@ -42,8 +42,6 @@ testContainerSelfSigned() { assertFileContains /etc/httpd/conf.d/grouper-www.conf "RemoteIPTrustedProxy 10.0.2.16/28" - assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "/tmp/logpipe" - assertEnvVar GROUPERSCIM_PROXY_PASS "#" assertEnvVar GROUPERSCIM_URL_CONTEXT "grouper-ws-scim" assertEnvVar GROUPERWS_PROXY_PASS "#" diff --git a/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh b/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh index 8b32ab56..e1d1a463 100644 --- a/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh +++ b/container_files/tier-support/test/grouperContainerUnitTestSlashRoot.sh @@ -21,14 +21,14 @@ testContainerSlashRoot() { mkdir -p someDir/tmp echo 'whatever' > someDir/tmp/temp.txt mkdir -p someDir/opt/grouper/grouperWebapp/WEB-INF/classes - echo 'someSettings' > someDir/opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties + echo 'someSettings' > someDir/opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.additionalLoggers.xml.txt docker run --detach --name $containerName --mount type=bind,src=$someDir,dst=/opt/grouper/slashRoot --publish 443:443 $imageName ui sleep $globalSleepSecondsAfterRun assertFileExists /tmp/temp.txt - assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "someSettings" + assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "someSettings" #rm -rf someDir diff --git a/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh b/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh index a0af5750..9bbf34e1 100644 --- a/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh +++ b/container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh @@ -41,8 +41,8 @@ testContainerUiSubimageNonroot() { assertFileExists "/opt/grouper/grouperWebapp/WEB-INF/lib/grouper-messaging-activemq-$grouperVersion.jar" assertFileExists "/opt/grouper/grouperWebapp/WEB-INF/libUiAndDaemon/grouper-messaging-activemq-$grouperVersion.jar" - assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "/tmp/logpipe" - assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ui;" + assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "/tmp/logpipe" + assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-ui;" assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties grouperPasswordConfigOverride_UI_GrouperSystem_pass.elConfig assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties thisPassIsCopyrightedDontUse diff --git a/container_files/tier-support/test/grouperContainerUnitTestWs.sh b/container_files/tier-support/test/grouperContainerUnitTestWs.sh index 710f9530..433ea3dc 100644 --- a/container_files/tier-support/test/grouperContainerUnitTestWs.sh +++ b/container_files/tier-support/test/grouperContainerUnitTestWs.sh @@ -44,7 +44,7 @@ testContainerWs() { assertFileContains /opt/tomee/conf/Catalina/localhost/grouper-ws.xml 'cookies="false"' assertFileContains /opt/tomee/conf/web.xml "1" - assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ws;" + assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-ws;" assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600" assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__" diff --git a/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh b/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh index dfdf4f89..a89fab85 100644 --- a/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh +++ b/container_files/tier-support/test/grouperContainerUnitTestWsAuthn.sh @@ -44,7 +44,7 @@ testContainerWsAuthn() { assertFileContains /opt/tomee/conf/Catalina/localhost/grouper-ws.xml 'cookies="false"' assertFileContains /opt/tomee/conf/web.xml "1" - assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ws;" + assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml "grouper-ws;" assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600" assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__" diff --git a/container_files/tomee/bin/setenv.sh b/container_files/tomee/bin/setenv.sh index 369d5441..603fc570 100755 --- a/container_files/tomee/bin/setenv.sh +++ b/container_files/tomee/bin/setenv.sh @@ -1,4 +1,4 @@ CLASSPATH=/opt/tomee/bin/* #JAVA_OPTS="-Dlog4j.configurationFile=/opt/tomee/conf/log4j2.xml -DENV=$ENV -DUSERTOKEN=$USERTOKEN" -CATALINA_OPTS="-Xmx$GROUPER_MAX_MEMORY -XX:+UseG1GC -XX:+UseStringDeduplication -Dlog4j.configurationFile=/opt/tomee/conf/log4j2.xml -DENV=$ENV -DUSERTOKEN=$USERTOKEN -Dfile.encoding=UTF-8 -Dlog4j1.compatibility=true $GROUPER_EXTRA_CATALINA_OPTS" +CATALINA_OPTS="-Xmx$GROUPER_MAX_MEMORY -XX:+UseG1GC -XX:+UseStringDeduplication -Dlog4j.configurationFile=/opt/tomee/conf/log4j2.xml -DENV=$ENV -DUSERTOKEN=$USERTOKEN -Dfile.encoding=UTF-8 $GROUPER_EXTRA_CATALINA_OPTS" LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager diff --git a/container_files/tomee/conf/log4j2.xml b/container_files/tomee/conf/log4j2.xml deleted file mode 100644 index a4bbc1b5..00000000 --- a/container_files/tomee/conf/log4j2.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - %d [%t] %-5p %c- %m%n - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/container_files/usr-local-bin/librarySetupFiles.sh b/container_files/usr-local-bin/librarySetupFiles.sh index 33381cf4..76618484 100644 --- a/container_files/usr-local-bin/librarySetupFiles.sh +++ b/container_files/usr-local-bin/librarySetupFiles.sh @@ -40,29 +40,32 @@ setupFiles_rsyncSlashRoot() { } setupFiles_localLogging() { - if [ "$GROUPER_LOG_TO_HOST" = "true" ] - then - if [ "$GROUPER_ORIGFILE_LOG4J_PROPERTIES" = "true" ]; then - cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.grouperContainerHost.properties /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties - echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.grouperContainerHost.properties /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties, result: $?" - else - echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties is not the original file so will not be edited" - fi + if [ "$GROUPER_LOG_TO_HOST" = "true" ]; then + sed -i "s|__FILE__||g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml + echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) sed -i \"s|__FILE__||g\" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml, result: $?" + else + sed -i "s|__LOGPIPE__||g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml + echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) sed -i \"s|__LOGPIPE__||g\" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml, result: $?" fi - if [ -f /opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties ]; then - echo >> /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties - cat /opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties >> /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties + + if [ -f /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.additionalLoggers.xml.txt ]; then + additionalLoggersFile=`cat /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.additionalLoggers.xml.txt` + # replace quote, but then double escape the result for some reason. this replaces quote with slash quote + additionalLoggersFile="$(sed s/\"/\\\\\\\"/g <<<$additionalLoggersFile)" + sed -i "s||$additionalLoggersFile|g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml returnCode=$? - echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) cat /opt/grouper/grouperWebapp/WEB-INF/classes/log4j_additional.properties >> /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties, result: $returnCode" + echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_localLogging) sed -i \"s||$additionalLoggersFile|g\" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml, result: $returnCode" if [ $returnCode != 0 ]; then exit $returnCode; fi - fi } setupFiles_loggingPrefix() { - sed -i "s|__GROUPER_LOG_PREFIX__|$GROUPER_LOG_PREFIX|g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties - echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_loggingPrefix) Changing log prefix to $GROUPER_LOG_PREFIX in log4j.properties, result: $?" + sed -i "s|__GROUPER_LOG_PREFIX__|$GROUPER_LOG_PREFIX|g" /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml + echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_loggingPrefix) Changing log prefix to $GROUPER_LOG_PREFIX in log4j2.xml, result: $?" + + cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml /opt/tomee/conf/log4j2.xml + echo "grouperContainer; INFO: (librarySetupFiles.sh-setupFiles_loggingPrefix) cp /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml /opt/tomee/conf/log4j2.xml, result: $?" } setupFiles_chownDirs() { @@ -194,7 +197,7 @@ setupFiles_analyzeOriginalFiles() { export GROUPER_ORIGFILE_SERVER_XML=false fi - setupFiles_originalFile /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties + setupFiles_originalFile /opt/grouper/grouperWebapp/WEB-INF/classes/log4j2.xml original_file=$? if [ -z "$GROUPER_ORIGFILE_LOG4J_PROPERTIES" ] && [[ $original_file -eq 0 ]] then