From cea9a85d719a0ac886ae797128e30220f3bf3e4e Mon Sep 17 00:00:00 2001
From: Maxim Thomas <maxim.thomas@gmail.com>
Date: Fri, 21 Nov 2025 18:16:59 +0000
Subject: [PATCH] [#575] Set OpenDJ tmp dir to an installation directory (#576)
---
opendj-server-legacy/resource/bin/start-ds.bat | 10 ++++++++++
opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java | 3 ++-
.github/workflows/build.yml | 8 ++++----
opendj-server-legacy/resource/bin/_script-util.bat | 10 ++++++++++
opendj-server-legacy/resource/bin/_script-util.sh | 9 +++++++++
opendj-server-legacy/resource/bin/start-ds | 6 ++++++
6 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8e0f3df..cbd8ea2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -69,7 +69,7 @@
opendj-server-legacy/target/package/opendj/bin/rebuild-index --bindDN "cn=Directory Manager" --bindPassword password --baseDN "dc=example2,dc=com" --rebuildAll --trustAll
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "ou=people,dc=example2,dc=com" --searchScope sub "(uid=user.*)" dn | grep ^dn: | wc -l | grep -q 10000
opendj-server-legacy/target/package/opendj/bin/stop-ds
- rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs}
+ rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs,tmp}
- name: Test on Unix FIPS
if: runner.os != 'Windows'
@@ -125,7 +125,7 @@
opendj-server-legacy/target/package/opendj/bin/rebuild-index --bindDN "cn=Directory Manager" --bindPassword password --baseDN "dc=example2,dc=com" --rebuildAll --trustAll
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "ou=people,dc=example2,dc=com" --searchScope sub "(uid=user.*)" dn | grep ^dn: | wc -l | grep -q 10000
opendj-server-legacy/target/package/opendj/bin/stop-ds
- rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs}
+ rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs,tmp}
- name: Test LDAP in Cassandra
if: runner.os == 'Linux'
run: |
@@ -140,7 +140,7 @@
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "dc=example,dc=com" --searchScope base "(objectClass=*)" 1.1
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "ou=people,dc=example,dc=com" --searchScope sub "(uid=user.*)" dn | grep ^dn: | wc -l | grep -q 10000
opendj-server-legacy/target/package/opendj/bin/stop-ds
- rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs}
+ rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs,tmp}
- name: Test LDAP in Postgres
if: runner.os == 'Linux'
run: |
@@ -155,7 +155,7 @@
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "dc=example,dc=com" --searchScope base "(objectClass=*)" 1.1
opendj-server-legacy/target/package/opendj/bin/ldapsearch --hostname localhost --port 1636 --bindDN "cn=Directory Manager" --bindPassword password --useSsl --trustAll --baseDN "ou=people,dc=example,dc=com" --searchScope sub "(uid=user.*)" dn | grep ^dn: | wc -l | grep -q 10000
opendj-server-legacy/target/package/opendj/bin/stop-ds
- rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs}
+ rm -rf opendj-server-legacy/target/package/opendj/{config,db,changelogDb,logs,tmp}
- name: Test on Windows
if: runner.os == 'Windows'
run: |
diff --git a/opendj-server-legacy/resource/bin/_script-util.bat b/opendj-server-legacy/resource/bin/_script-util.bat
index 785a4bd..e665966 100644
--- a/opendj-server-legacy/resource/bin/_script-util.bat
+++ b/opendj-server-legacy/resource/bin/_script-util.bat
@@ -18,6 +18,7 @@
set SET_JAVA_HOME_AND_ARGS_DONE=false
set SET_ENVIRONMENT_VARS_DONE=false
set SET_CLASSPATH_DONE=false
+set SET_TEMP_DIR_DONE=false
if "%INSTALL_ROOT%" == "" goto setInstanceRoot
@@ -85,6 +86,7 @@
if "%SET_JAVA_HOME_AND_ARGS_DONE%" == "false" goto setJavaHomeAndArgs
if "%SET_CLASSPATH_DONE%" == "false" goto setClassPath
if "%SET_ENVIRONMENT_VARS_DONE%" == "false" goto setEnvironmentVars
+if "%SET_TEMP_DIR_DONE%" == "false" goto setTempDir
goto testJava
:setFullServerEnvironmentAndTestJava
@@ -173,6 +175,14 @@
if %RESULT_CODE% == 0 set OPENDJ_JAVA_ARGS=%OPENDJ_JAVA_ARGS% --add-opens java.base/jdk.internal.loader=ALL-UNNAMED
goto scriptBegin
+:setTempDir
+if %SET_TEMP_DIR_DONE% == "true" goto end
+set OPENDJ_TMP_DIR=%INSTANCE_ROOT%\tmp
+if not exist "%OPENDJ_TMP_DIR%" mkdir "%OPENDJ_TMP_DIR%"
+set OPENDJ_JAVA_ARGS=%OPENDJ_JAVA_ARGS% -Djava.io.tmpdir=%OPENDJ_TMP_DIR%
+set SET_TEMP_DIR_DONE=true
+goto scriptBegin
+
:testJava
if "%OPENDJ_JAVA_ARGS%" == "" goto checkLegacyArgs
:continueTestJava
diff --git a/opendj-server-legacy/resource/bin/_script-util.sh b/opendj-server-legacy/resource/bin/_script-util.sh
index 43b67cc..0fb0d21 100644
--- a/opendj-server-legacy/resource/bin/_script-util.sh
+++ b/opendj-server-legacy/resource/bin/_script-util.sh
@@ -83,6 +83,14 @@
export OPENDJ_JAVA_BIN
}
+set_temp_dir() {
+ OPENDJ_TMP_DIR="${INSTANCE_ROOT}/tmp"
+ if [ ! -d "${OPENDJ_TMP_DIR}" ]; then
+ mkdir ${OPENDJ_TMP_DIR}
+ fi
+ OPENDJ_JAVA_ARGS="${OPENDJ_JAVA_ARGS} -Djava.io.tmpdir=${OPENDJ_TMP_DIR}"
+}
+
#
# function that sets the java home
#
@@ -101,6 +109,7 @@
OPENDJ_JAVA_ARGS="${PROPERTY_VALUE}"
fi
fi
+ set_temp_dir
set_opendj_java_bin
}
diff --git a/opendj-server-legacy/resource/bin/start-ds b/opendj-server-legacy/resource/bin/start-ds
index 5519340..0c965b6 100644
--- a/opendj-server-legacy/resource/bin/start-ds
+++ b/opendj-server-legacy/resource/bin/start-ds
@@ -14,6 +14,7 @@
#
# Copyright 2006-2009 Sun Microsystems, Inc.
# Portions Copyright 2011-2014 ForgeRock AS.
+# Portions Copyright 2025 3A Systems LLC.
# Capture the current working directory so that we can change to it later.
@@ -72,6 +73,11 @@
LOG_FILE=${INSTANCE_ROOT}/logs/server.out
STARTING_FILE=${INSTANCE_ROOT}/logs/server.starting
+# Cleanup the tmp directory
+OPENDJ_TMP_DIR="${INSTANCE_ROOT}/tmp"
+if [ -d "${OPENDJ_TMP_DIR}" ]; then
+ rm -rf ${OPENDJ_TMP_DIR}/*
+fi
# See if the provided set of arguments were sufficient for us to be able to
# start the server or perform the requested operation. An exit code of 99
diff --git a/opendj-server-legacy/resource/bin/start-ds.bat b/opendj-server-legacy/resource/bin/start-ds.bat
index d0b10a5..7f7be60 100644
--- a/opendj-server-legacy/resource/bin/start-ds.bat
+++ b/opendj-server-legacy/resource/bin/start-ds.bat
@@ -14,6 +14,7 @@
rem
rem Copyright 2006-2010 Sun Microsystems, Inc.
rem Portions Copyright 2011-2014 ForgeRock AS.
+rem Portions Copyright 2025 3A Systems LLC.
setlocal
set DIR_HOME=%~dp0..
@@ -57,6 +58,15 @@
echo %SCRIPT%: PATH=%PATH% >> %LOG%
+rem cleanup the tmp directory
+set CUR_DIR=%CD%
+set OPENDJ_TMP_DIR=%INSTANCE_ROOT%\tmp
+dir /b /s /a %OPENDJ_TMP_DIR% | findstr .>nul && (
+ cd /d %OPENDJ_TMP_DIR%
+ for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q>NUL 2>&1 || del "%%i" /s/q>NUL 2>&1)
+ cd /d %CUR_DIR%
+)
+
"%OPENDJ_JAVA_BIN%" -client %SCRIPT_NAME_ARG% org.opends.server.core.DirectoryServer --configFile "%INSTANCE_ROOT%\config\config.ldif" --checkStartability %*
if %errorlevel% == 98 goto serverAlreadyStarted
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java b/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java
index 9289f99..4fe9fba 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/Platform.java
@@ -37,6 +37,7 @@
import java.time.temporal.ChronoUnit;
import java.util.Date;
+import com.forgerock.opendj.util.FipsStaticUtils;
import com.forgerock.opendj.util.StaticUtils;
import org.bouncycastle.asn1.x500.X500Name;
import org.bouncycastle.cert.X509CertificateHolder;
@@ -198,7 +199,7 @@
{
if(!isFips)
{
- Security.addProvider(new BouncyCastleFipsProvider());
+ FipsStaticUtils.registerBcProvider(true);
}
if (ks == null)
{
--
Gitblit v1.10.0