168장. Jasypt 구성 요소
Camel 2.5부터 사용 가능
Jasypt 는 암호화 및 암호 해독을 쉽게 수행할 수 있는 단순화된 암호화 라이브러리입니다. Camel은 Jasypt와 통합되어 속성 파일에서 민감한 정보를 암호화할 수 있습니다. 클래스 경로에 camel-jasypt
를 삭제하여 암호화된 값은 Camel에 의해 자동으로 암호 해독됩니다. 이렇게 하면 사람의 시선이 사용자 이름 및 암호와 같은 민감한 정보를 쉽게 찾을 수 없습니다.
Maven을 사용하는 경우 이 구성 요소에 대해 pom.xml
에 다음 종속성을 추가해야 합니다.
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-jasypt</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
Apache Karaf 컨테이너를 사용하는 경우 이 구성 요소의 pom.xml
에 다음 종속성을 추가해야 합니다.
<dependency> <groupId>org.apache.karaf.jaas</groupId> <artifactId>org.apache.karaf.jaas.jasypt</artifactId> <version>x.x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
168.1. 툴링
Jasypt 구성 요소는 값을 암호화하거나 해독하기 위해 약간의 명령줄 툴링을 제공합니다.
콘솔은 구문 및 제공하는 옵션을 출력합니다.
Apache Camel Jasypt takes the following options -h or -help = Displays the help screen -c or -command <command> = Command either encrypt or decrypt -p or -password <password> = Password to use -i or -input <input> = Text to encrypt or decrypt -a or -algorithm <algorithm> = Optional algorithm to use
예를 들어 다음 매개변수를 사용하여 실행하는 값을 암호화합니다. apache camel 키트에서 lib 폴더에 cd를 수행하고 다음 java cmd를 실행합니다. 여기서 < CAMEL_HOME >은 Camel 배포를 다운로드하여 추출합니다.
$ cd <CAMEL_HOME>/lib $ java -jar camel-jasypt-2.5.0.jar -c encrypt -p secret -i tiger
다음 결과를 출력하는 것은 무엇입니까?
Encrypted text: qaEEacuW7BUti8LcMgyjKw==
즉, LUKS EEacuW7BUti8LcMgyjKw===
는 시크릿
인 마스터 암호를 알고 있으면 다시 암호 해독할 수 있습니다.
도구를 다시 실행하면 암호화된 값은 다른 결과를 반환합니다. 그러나 값을 해독하면 항상 올바른 원래 값이 반환됩니다.
따라서 다음 매개변수를 사용하여 툴링을 실행하여 테스트할 수 있습니다.
$ cd <CAMEL_HOME>/lib $ java -jar camel-jasypt-2.5.0.jar -c decrypt -p secret -i qaEEacuW7BUti8LcMgyjKw==
다음 결과를 출력하는 것은 다음과 같습니다.
Decrypted text: tiger
다음은 속성 파일에서 암호화된 값을 사용하는 것입니다. 암호 값이 암호화되는 방법 및 값에 ENC(value here)
를 중심으로 하는 토큰을 확인합니다.
jasypt 툴링을 실행할 때 java.lang.NoClassDefFoundError: org/jasypt/encryption/pbe/StandardPBEStringEncryptor
를 사용하면 classpath에 jasypt7.13.jar를 포함해야 합니다. classpath에 Cryostat를 추가하는 예는 Java -jar …
로 실행하려는 경우 jasypt7.13.jar를 $JAVA_HOME\jre\lib\ext에 복사할 수 있습니다. 후자는 -cp를 사용하여 classpath에 jasypt7.13.jar를 추가할 수 있습니다. 이 경우 java
-cp
jasypt-1.9.jar:camel-jasypt-2.18.2.jar org.apache.camel.component.jasypt.Main -c - encrypt -c - Secret - slow -p endpoint로 실행할 기본 클래스를 제공해야 합니다.