From 4218bd76e934e5cf9e3fd3997c67b8a6b0d0c111 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 28 Apr 2026 10:16:13 +0200 Subject: [PATCH] Fix predictable temp directory in Artemis embedded configuration Update ArtemisEmbeddedConfigurationFactory to use ApplicationTemp for generating the Artemis data directory. This ensures the path is securely generated rather than using a predictable, hardcoded string. Fixes gh-50743 --- .../jms/artemis/ArtemisEmbeddedConfigurationFactory.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java index c815445d0ab..d32bb6aaa29 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/artemis/ArtemisEmbeddedConfigurationFactory.java @@ -16,8 +16,6 @@ package org.springframework.boot.autoconfigure.jms.artemis; -import java.io.File; - import org.apache.activemq.artemis.api.core.QueueConfiguration; import org.apache.activemq.artemis.api.core.RoutingType; import org.apache.activemq.artemis.api.core.SimpleString; @@ -31,6 +29,8 @@ import org.apache.activemq.artemis.core.settings.impl.AddressSettings; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.boot.system.ApplicationTemp; + /** * Configuration used to create the embedded Artemis server. * @@ -84,8 +84,7 @@ class ArtemisEmbeddedConfigurationFactory { if (this.properties.getDataDirectory() != null) { return this.properties.getDataDirectory(); } - String tempDirectory = System.getProperty("java.io.tmpdir"); - return new File(tempDirectory, "artemis-data").getAbsolutePath(); + return new ApplicationTemp().getDir("artemis-data").getAbsolutePath(); } }