Spring¿¡¼ ¼³Á¤ÆÄÀÏ(properties) ¾ÏÈ£È Çϱâ (with jasypt)
Spring¿¡¼ ¼³Á¤ÆÄÀÏÀ» °¨Ãß°í ½Í´Ù¡¦
Spring Framework¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÒ ¶§ µ¥ÀÌÅͺ£À̽º Á¤º¸³ª ±âŸ ¹Î°£ÇÔ Á¤º¸¸¦ ¼³Á¤ÆÄÀÏ¿¡ ÀÛ¼ºÇÏ°Ô µË´Ï´Ù.
¹°·Ð Java Config¸¦ »ç¿ëÇÏ°Ô µÈ´Ù¸é »ó°ü ¾øÁö¸¸, Àú´Â ÁÖ·Î application.yml(¶Ç´Â application.properties)À»(¸¦) »ç¿ëÇÕ´Ï´Ù.
¹®Á¦´Â ÀÌ ¼³Á¤ÆÄÀÏÀÇ °æ¿ì ¹èÆ÷ ½Ã ³ëÃâÀÌ µÇ¾î º¸¾È¿¡ ¹®Á¦°¡ »ý±æ ¼ö ÀÖ½À´Ï´Ù. (¹°·Ð Java Configµµ 100% ¾ÈÀüÇÑ °ÍÀº ¾Æ´ÏÁö¸¸¡¦)
±×·¡¼ ÀÌ·± °í¹ÎÀ» ÇØ°áÇØ ÁÙ ¶óÀ̺귯¸®¸¦ Çϳª ¼Ò°³ÇÏ·Á ÇÕ´Ï´Ù.
Jsaypt(Java Simplified Encryption) ¸¦ ½áº¸ÀÚ
Jasypt´Â À§¿¡¼ ¾ð±ÞÇß´ø ¹®Á¦¸¦ ÇØ°áÇØÁÖ´Â ÀÚ¹Ù ¶óÀ̺귯¸®ÀÔ´Ï´Ù.
Á» ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº Jasypt °ø½Ä ¹®¼¸¦ È®ÀÎÇØÁÖ¼¼¿ä.
±×·³ ÀÌÁ¦ Jsaypt¸¦ »ç¿ëÇÏ´Â ¹ý¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
À̹ø ¿¹Á¦¿¡ »ç¿ëÇÏ´Â SpringÀº Spring Boot 1.5.8.RELEASE ÀÌ°í, gradleÀ» »ç¿ëÇÕ´Ï´Ù.
1. Jsaypt¸¦ gradle¿¡ Ãß°¡Çϱâ
Spring boot¿¡¼ jasypt¸¦ »ç¿ëÇϱâ À§Çؼ´Â ¾Æ·¡ÀÇ ÀÇÁ¸¼ºÀ» gradleÀ» Ãß°¡ÇØÁÝ´Ï´Ù.
1.1 spring-boot-starter ¿ë
1 | compile "com.github.ulisesbocchio:jasypt-spring-boot-starter:1.17" |
1.2 @SpringBootApplication ¶Ç´Â @EnableAutoConfiguration ¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì
1 | compile "com.github.ulisesbocchio:jasypt-spring-boot:1.17" |
1.2 Ç׸ñ¿¡¼´Â À§ gradleÀ» Ãß°¡ÇÑ ÀÌÈÄ ConfigurationŬ·¡½º¿¡ @EnableEncryptableProperties¸¦ Ãß°¡ÇØÁÝ´Ï´Ù.
Á» ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº ulisesbocchio Github¸¦ Âü°íÇϼ¼¿ä.
2. Config Ŭ·¡½º ÀÛ¼º
1 |
|
¼³Á¤ Ŭ·¡½º¸¦ Çϳª ¸¸µé°í À§¿Í °°ÀÌ ÀÛ¼ºÀ» ÇÏ¿© jasyptStringEncryptor ºóÀ» ¸¸µé¾îÁÝ´Ï´Ù.
3. ¼³Á¤ÆÄÀÏ¿¡ Ãß°¡ [application.yml(¶Ç´Â application.properties)]
1 | jasypt: |
¼³Á¤ÆÄÀÏ¿¡ À§ Ç׸ñÀ» Ãß°¡ÇØÁÝ´Ï´Ù.
bean¿¡´Â 2¹ø¿¡¼ ÀÛ¼ºÇÑ beanÀÇ À̸§À» ÀÛ¼ºÇÕ´Ï´Ù.
4. ¾ÏÈ£È ÇÒ ³»¿ëÀ» ÀÛ¼º
ÀÌÁ¦ ¾ÏÈ£È ÇÒ µ¥ÀÌÅ͸¦ ¾ÏÈ£È ÇØ¾ß ÇÕ´Ï´Ù.
´Ù¾çÇÑ ¹æ¹ýÀÌ ÀÖÁö¸¸ ÀÏ´Ü °£ÆíÇÏ°Ô ºü¸£°Ô ¾²±â À§Çؼ Application¿¡ CommandLineRunner¸¦ È°¿ëÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÏ°Ú½À´Ï´Ù.
jasypt¿¡¼ ´Ù¿î·Îµå ÈÄ java·Î Á÷Á¢ ½ÇÇàÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù.
1 | ....(´Ù¸¥ ¼³Á¤ ¾î³ëÅ×À̼Ç) |
À§¿Í °°ÀÌ ÁøÇàÇÒ °æ¿ì ¾ÏÈ£È ÇÑ´Ù¸é ENC(fncHYmDe1oSFNFV8FcAEDa==) ¿Í °°Àº °ªÀÌ ³ª¿À°í º¹È£È ½Ã 1234°¡ Á¤»óÀûÀ¸·Î Ãâ·ÂµË´Ï´Ù.
ÀÌ·¸°Ô ¾ÏÈ£È ÇÒ ³»¿ëÀ» ¸¸µç ÈÄ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÆÄÀÏ¿¡ ÀÛ¼ºÀ» ÇØÁÝ´Ï´Ù.
1 | spring: |
±×¸®°í ´Ù½Ã ¼¹ö¸¦ ½ÇÇàÇغ¸¸é Á¤»óÀûÀ¸·Î ½ÇÇàµË´Ï´Ù.