From a23c414c94bd776d3f2761cb2c6da0266a9ce83a Mon Sep 17 00:00:00 2001 From: Gyuwon Yi Date: Thu, 15 May 2025 03:29:43 +0900 Subject: [PATCH] =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20PasswordEncoder=20=EB=B9=88=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/commerce/CommerceApiApp_specs.java | 12 ++++++++++ .../test/commerce/api/CommerceApiTest.java | 6 ++++- .../api/PasswordEncoderConfiguration.java | 24 +++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/test/java/test/commerce/api/PasswordEncoderConfiguration.java diff --git a/src/test/java/test/commerce/CommerceApiApp_specs.java b/src/test/java/test/commerce/CommerceApiApp_specs.java index c205f41..fbcfed5 100644 --- a/src/test/java/test/commerce/CommerceApiApp_specs.java +++ b/src/test/java/test/commerce/CommerceApiApp_specs.java @@ -2,7 +2,12 @@ import commerce.CommerceApiApp; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; + +import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = CommerceApiApp.class) public class CommerceApiApp_specs { @@ -10,4 +15,11 @@ public class CommerceApiApp_specs { @Test void 컨텍스트가_초기화된다() { } + + @Test + void PasswordEncoder_빈이_올바르게_설정된다( + @Autowired PasswordEncoder actual + ) { + assertThat(actual).isInstanceOf(Pbkdf2PasswordEncoder.class); + } } diff --git a/src/test/java/test/commerce/api/CommerceApiTest.java b/src/test/java/test/commerce/api/CommerceApiTest.java index 44bcd96..be67746 100644 --- a/src/test/java/test/commerce/api/CommerceApiTest.java +++ b/src/test/java/test/commerce/api/CommerceApiTest.java @@ -11,7 +11,11 @@ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @SpringBootTest( - classes = { CommerceApiApp.class, TestFixtureConfiguration.class }, + classes = { + CommerceApiApp.class, + TestFixtureConfiguration.class, + PasswordEncoderConfiguration.class, + }, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT ) public @interface CommerceApiTest { diff --git a/src/test/java/test/commerce/api/PasswordEncoderConfiguration.java b/src/test/java/test/commerce/api/PasswordEncoderConfiguration.java new file mode 100644 index 0000000..7a9cbff --- /dev/null +++ b/src/test/java/test/commerce/api/PasswordEncoderConfiguration.java @@ -0,0 +1,24 @@ +package test.commerce.api; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; +import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; + +import static org.springframework.security.crypto.password.Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA256; + +public class PasswordEncoderConfiguration { + + public static final int SALT_LENGTH = 16; + public static final int ITERATIONS = 10; + + @Bean + @Primary + Pbkdf2PasswordEncoder testPasswordEncoder() { + return new Pbkdf2PasswordEncoder( + "", + SALT_LENGTH, + ITERATIONS, + PBKDF2WithHmacSHA256 + ); + } +}