diff --git a/pass-deposit-services/deposit-core/pom.xml b/pass-deposit-services/deposit-core/pom.xml
index d46ca1b5..41cbe2ec 100644
--- a/pass-deposit-services/deposit-core/pom.xml
+++ b/pass-deposit-services/deposit-core/pom.xml
@@ -92,6 +92,11 @@
spring-cloud-aws-starter-s3
+
+ io.awspring.cloud
+ spring-cloud-aws-starter-parameter-store
+
+
org.jsoup
jsoup
diff --git a/pass-deposit-services/deposit-core/src/main/resources/application.properties b/pass-deposit-services/deposit-core/src/main/resources/application.properties
index d88ed61e..9cd3b7f9 100644
--- a/pass-deposit-services/deposit-core/src/main/resources/application.properties
+++ b/pass-deposit-services/deposit-core/src/main/resources/application.properties
@@ -16,9 +16,9 @@
spring.jms.listener.auto-startup=true
aws.sqs.endpoint.override=
-pass.client.url=${PASS_CLIENT_URL:localhost:8080}
-pass.client.user=${PASS_CLIENT_USER:fakeuser}
-pass.client.password=${PASS_CLIENT_PASSWORD:fakepassword}
+pass.client.url=${PASS_CORE_URL:localhost:8080}
+pass.client.user=${PASS_CORE_USER:fakeuser}
+pass.client.password=${PASS_CORE_PASSWORD:fakepassword}
pmc.ftp.host=${PMC_FTP_HOST:localhost}
pmc.ftp.port=${PMC_FTP_PORT:21}
diff --git a/pass-deposit-services/deposit-core/src/test/java/org/eclipse/pass/deposit/AbstractDepositSubmissionIT.java b/pass-deposit-services/deposit-core/src/test/java/org/eclipse/pass/deposit/AbstractDepositSubmissionIT.java
index b2671e06..37326fe7 100644
--- a/pass-deposit-services/deposit-core/src/test/java/org/eclipse/pass/deposit/AbstractDepositSubmissionIT.java
+++ b/pass-deposit-services/deposit-core/src/test/java/org/eclipse/pass/deposit/AbstractDepositSubmissionIT.java
@@ -93,8 +93,8 @@ public abstract class AbstractDepositSubmissionIT {
@Container
protected static final GenericContainer> PASS_CORE_CONTAINER = new GenericContainer<>(PASS_CORE_IMG)
.withEnv("PASS_CORE_BASE_URL", "http://localhost:8080")
- .withEnv("PASS_CORE_BACKEND_USER", "backend")
- .withEnv("PASS_CORE_BACKEND_PASSWORD", "backend")
+ .withEnv("PASS_CORE_USER", "backend")
+ .withEnv("PASS_CORE_PASSWORD", "backend")
.waitingFor(Wait.forHttp("/data/grant").forStatusCode(200).withBasicCredentials("backend", "backend"))
.withExposedPorts(8080);
diff --git a/pass-deposit-services/deposit-core/src/test/java/org/eclipse/pass/deposit/config/spring/AwsParamStoreConfigTest.java b/pass-deposit-services/deposit-core/src/test/java/org/eclipse/pass/deposit/config/spring/AwsParamStoreConfigTest.java
new file mode 100644
index 00000000..a631e493
--- /dev/null
+++ b/pass-deposit-services/deposit-core/src/test/java/org/eclipse/pass/deposit/config/spring/AwsParamStoreConfigTest.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2024 Johns Hopkins University
+ *
+ * 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.
+ */
+package org.eclipse.pass.deposit.config.spring;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.testcontainers.containers.localstack.LocalStackContainer.Service.SSM;
+
+import java.io.IOException;
+
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.ConfigDataApplicationContextInitializer;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.core.env.Environment;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.testcontainers.containers.localstack.LocalStackContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+import org.testcontainers.utility.DockerImageName;
+
+@SpringBootTest(
+ properties = {
+ "spring.cloud.aws.credentials.access-key=noop",
+ "spring.cloud.aws.credentials.secret-key=noop",
+ "spring.cloud.aws.region.static=us-east-1",
+ "spring.jms.listener.auto-startup=false"
+ })
+@ContextConfiguration(initializers = ConfigDataApplicationContextInitializer.class)
+@Testcontainers
+class AwsParamStoreConfigTest {
+ private static final DockerImageName LOCALSTACK_IMG =
+ DockerImageName.parse("localstack/localstack:3.1.0");
+
+ @Container
+ private static final LocalStackContainer localStack = new LocalStackContainer(LOCALSTACK_IMG).withServices(SSM);
+
+ @Autowired private Environment environment;
+
+ @DynamicPropertySource
+ static void properties(DynamicPropertyRegistry registry) {
+ registry.add("spring.cloud.aws.parameterstore.endpoint", () -> localStack.getEndpoint().toString());
+ registry.add("spring.cloud.aws.parameterstore.region", localStack::getRegion);
+ registry.add("spring.cloud.aws.endpoint", () -> localStack.getEndpoint().toString());
+ registry.add("spring.cloud.aws.region.static", localStack::getRegion);
+ registry.add("spring.config.import[0]", () -> "aws-parameterstore:/config/pass-core-client/");
+ registry.add("spring.config.import[1]", () -> "aws-parameterstore:/config/pass-deposit/");
+ }
+
+ @BeforeAll
+ static void beforeAll() throws IOException, InterruptedException {
+ localStack.execInContainer("awslocal", "ssm", "put-parameter",
+ "--name", "/config/pass-core-client/PASS_CORE_PASSWORD",
+ "--value", "aws-param-store-core-pw",
+ "--type", "SecureString");
+ localStack.execInContainer("awslocal", "ssm", "put-parameter",
+ "--name", "/config/pass-deposit/DSPACE_PASSWORD",
+ "--value", "aws-param-store-dspace-pw",
+ "--type", "SecureString");
+ }
+
+ @Test
+ public void testLoadPropFromParamStore() {
+ String userNameProp = environment.getProperty("dspace.user");
+ assertEquals("test@test.edu", userNameProp);
+ String dspacePwProp = environment.getProperty("dspace.password");
+ assertEquals("aws-param-store-dspace-pw", dspacePwProp);
+ String passClientPwProp = environment.getProperty("pass.client.password");
+ assertEquals("aws-param-store-core-pw", passClientPwProp);
+ }
+
+}
diff --git a/pass-deposit-services/deposit-core/src/test/resources/logback-test.xml b/pass-deposit-services/deposit-core/src/test/resources/logback-test.xml
index 30735b03..c1c9d7b2 100644
--- a/pass-deposit-services/deposit-core/src/test/resources/logback-test.xml
+++ b/pass-deposit-services/deposit-core/src/test/resources/logback-test.xml
@@ -31,16 +31,8 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pass-deposit-services/pom.xml b/pass-deposit-services/pom.xml
index 444940fd..ba6144cd 100644
--- a/pass-deposit-services/pom.xml
+++ b/pass-deposit-services/pom.xml
@@ -459,6 +459,7 @@
org.springframework*::
software.amazon.awssdk::
+ io.awspring.cloud::
org.apache.abdera::
junit:junit: