From 35018c377a7a41cac721760ef95b9c77c5135d69 Mon Sep 17 00:00:00 2001 From: kiboomhan Date: Thu, 22 Aug 2024 10:51:12 +0900 Subject: [PATCH 1/2] =?UTF-8?q?url=20=EC=82=AC=EC=9A=A9=EC=9D=84=20?= =?UTF-8?q?=EA=B3=A0=EB=A0=A4=ED=95=9C=20=EC=95=94=EB=B3=B5=ED=98=B8?= =?UTF-8?q?=ED=99=94=EC=97=90=20=EB=8C=80=ED=95=9C=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0=20-=20url=20safe=20=ED=95=9C=20=EC=95=94?= =?UTF-8?q?=ED=98=B8=ED=99=94=20=EB=B0=A9=EC=8B=9D=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cryptography/impl/EgovEnvCryptoServiceImpl.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/cryptography/impl/EgovEnvCryptoServiceImpl.java b/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/cryptography/impl/EgovEnvCryptoServiceImpl.java index 00f4975e..34590e0c 100644 --- a/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/cryptography/impl/EgovEnvCryptoServiceImpl.java +++ b/Foundation/org.egovframe.rte.fdl.crypto/src/main/java/org/egovframe/rte/fdl/cryptography/impl/EgovEnvCryptoServiceImpl.java @@ -23,9 +23,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.net.URLEncoder; import java.nio.charset.StandardCharsets; /** @@ -148,8 +145,8 @@ public void setCryptoConfigurer(EgovPropertyService cryptoConfigurer) { */ public String encrypt(String encrypt){ try { - return URLEncoder.encode(new String(new Base64().encode(cryptoService.encrypt( encrypt.getBytes(StandardCharsets.UTF_8), this.getCyptoAlgorithmKey()))), "UTF-8"); - } catch(IllegalArgumentException | UnsupportedEncodingException e) { + return new String(Base64.encodeBase64(cryptoService.encrypt(encrypt.getBytes(StandardCharsets.UTF_8), this.getCyptoAlgorithmKey()), false, true)); + } catch(IllegalArgumentException e) { LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); } return encrypt; @@ -162,8 +159,8 @@ public String encrypt(String encrypt){ */ public String decrypt(String decrypt){ try { - return new String(cryptoService.decrypt(new Base64().decode(URLDecoder.decode(decrypt,"UTF-8").getBytes(StandardCharsets.UTF_8)), this.cyptoAlgorithmKey)); - } catch(IllegalArgumentException | UnsupportedEncodingException e) { + return new String(cryptoService.decrypt(Base64.decodeBase64(decrypt.getBytes(StandardCharsets.UTF_8)), this.cyptoAlgorithmKey)); + } catch(IllegalArgumentException e) { LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage()); } return decrypt; From 2aceedf51b49adf5590a80a2614002710bb97641 Mon Sep 17 00:00:00 2001 From: kiboomhan Date: Thu, 22 Aug 2024 11:00:34 +0900 Subject: [PATCH 2/2] =?UTF-8?q?url=20=EC=82=AC=EC=9A=A9=EC=9D=84=20?= =?UTF-8?q?=EA=B3=A0=EB=A0=A4=ED=95=9C=20=EC=95=94=EB=B3=B5=ED=98=B8?= =?UTF-8?q?=ED=99=94=EC=97=90=20=EB=8C=80=ED=95=9C=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fdl/cryptography/EgovARIAErrorTest.java | 51 +++++++++++++------ 1 file changed, 36 insertions(+), 15 deletions(-) diff --git a/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/cryptography/EgovARIAErrorTest.java b/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/cryptography/EgovARIAErrorTest.java index c63541cd..8f8ec418 100644 --- a/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/cryptography/EgovARIAErrorTest.java +++ b/Foundation/org.egovframe.rte.fdl.crypto/src/test/java/org/egovframe/rte/fdl/cryptography/EgovARIAErrorTest.java @@ -6,16 +6,28 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; +import java.net.URLEncoder; + public class EgovARIAErrorTest { private static final Logger LOGGER = LoggerFactory.getLogger(EgovARIAErrorTest.class); public static void main(String[] args) { - - - String[] arrCryptoString = { - "ckimage/2018/12" - }; + + + String[] givenStrs = { + "ckimage/2018/12", + "FILE_000000000000001", + "FILE_000000000000002", + "FILE_000000000000003", + "FILE_000000000000004", + "FILE_000000000000005", + "FILE_000000000000006", + "FILE_000000000000007", + "FILE_000000000000008", + "FILE_000000000000009", + "FILE_000000000000010", + }; LOGGER.info("------------------------------------------------------"); @@ -26,16 +38,25 @@ public static void main(String[] args) { String label = ""; try { - for(int i=0; i < arrCryptoString.length; i++) { - - LOGGER.info(label+" 원본(orignal):" + arrCryptoString[i]); - LOGGER.info(label+" 인코딩(encrypted):" + cryptoService.encrypt(arrCryptoString[i]) ); - LOGGER.info(label+" 디코딩(decrypted):" + cryptoService.decrypt(cryptoService.encrypt(arrCryptoString[i])) ); - if( cryptoService.decrypt(cryptoService.encrypt(arrCryptoString[i])).equals(arrCryptoString[i]) ) { - LOGGER.info(label+" 통과 !!!"); - } - LOGGER.info("------------------------------------------------------"); - } + for (String str : givenStrs) { + + String encrypt = cryptoService.encrypt(str); + LOGGER.info(label + " 원본(orignal):" + str); + LOGGER.info(label + " 인코딩(encrypted):" + encrypt); + LOGGER.info(label + " 디코딩(decrypted):" + cryptoService.decrypt(encrypt)); + LOGGER.info(label + " URL인코딩(encrypted+url):" + URLEncoder.encode(encrypt, "UTF-8")); + + if (!encrypt.equals(URLEncoder.encode(encrypt, "UTF-8"))) { + LOGGER.error(label + " 실패 !!!(URL SAFE 실패)"); + return; + } else if (cryptoService.decrypt(encrypt).equals(str)) { + LOGGER.info(label + " 통과 !!!"); + } else { + LOGGER.error(label + " 실패 !!!"); + return; + } + LOGGER.info("------------------------------------------------------"); + } } catch (IllegalArgumentException e) { LOGGER.error("["+e.getClass()+"] IllegalArgumentException : " + e.getMessage()); //e.printStackTrace();