Giriş
Bir örnek burada. application.properties dosyasında şifreli veri kullanıbilmeyi sağlar.
1. Maven
Şu satırı dahil ederiz
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version></dependency><plugin><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-maven-plugin</artifactId><version>3.0.4</version></plugin>
2. @EnableEncryptableProperties Anotasyonu
Şöyle yaparız
3. application.yml@SpringBootApplication@EnableEncryptablePropertiespublic class MyApplication {...}
Şöyle yaparız. Burada şifrelenmesi istenilen şeylere DEC(..) yazılıyor
Dosyayı şifrelemek için şöyle yaparızjasypt:encryptor: algorithm: PBEWithMD5AndTripleDES iv-generator-classname: org.jasypt.iv.NoIvGenerator password: ${JASYPT_ENCRYPTOR_PASSWORD} spring: datasource: url: jdbc:mysql://localhost:3306/cdr?useSSL=false username: DEC(root) password: DEC(root123)
mvn jasypt:encrypt -Djasypt.plugin.path=”file:src/main/resources/application.yml”
-Djasypt.encryptor.password=”secretkey”
Eğer application.properties kullanıyorsak dosya ismini vermeye gerek yok. Şöyle yaparız
mvn jasypt:encrypt -Djasypt.encryptor.password=”secretkey”Uygulamayı JASYPT_ENCRYPTOR_PASSWORD ortam değişkenine, pluginde kullanılan secret key değerini atayarak çalıştırmak gerekir. Sanırım dosya daha sonra şu hale geliyor. Şifrelenen şeyler ENC(...) haline geliyor
spring:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: none
datasource:
name: standalone-client
url: jdbc:h2:mem:standalone-client
username: client-user
# password is client-password
# provide sample-password as jasypt.encryptor.password to decrypt
password: ENC(byF912frlZUCifdrOFlGJ8LTjWpVIutKtzU0St2X/hZ9sqRp9kOsg5Se8FVxshFu)
driverClassName: org.h2.Driver
h2:
console:
enabled: true
application:
name: standalone-client
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
logging:
level:
root: info
Hiç yorum yok:
Yorum Gönder