You can encrypt properties when packaging the jar by using jasypt library.
- src/main/resources/application.properties
test.encrypt.value=encrypted test.not.encrypt.value=notEncrypted
- sub/var.gradle
ext { encryptTargetList = ['test.encrypt.value'] }
- sub/encrypt.gradle
import org.jasypt.util.text.BasicTextEncryptor ext.encryptProperty = { string -> BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); textEncryptor.setPassword("jasypt"); return textEncryptor.encrypt(string); } buildscript { repositories { mavenCentral() } dependencies { classpath("org.jasypt:jasypt:1.9.2") } }
- build.gradle
fileTree('sub').each { apply from: "${it}" } apply plugin: 'java' apply plugin: 'spring-boot' repositories { mavenCentral() } dependencies { compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator' compile group: 'org.springframework.boot', name: 'spring-boot-starter-web' } buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.RELEASE") } } processResources { filter { String line -> encryptTargetList.contains(line.split('=')[0]) ? line.split('=')[0] + "=" + "ENC(" + project.encryptProperty(line.split('=')[1]) + ")" : line } }
(*) result
you can find the encrypted value at properties file in the jar.
- build/resources/main/application.properties
test.encrypt.value=ENC(blnPoVkyiAzejbT1mdA48fmDyxRS86Gl) test.not.encrypt.value=notEncrypted
댓글 없음 :
댓글 쓰기