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