Skip to content

Plugin for encrypting and decrypting values using Jasypt.

License

Notifications You must be signed in to change notification settings

cthing/gradle-jasypt

Repository files navigation

C Thing Software gradle-jasypt

CI Portal

A Gradle plugin for encrypting and decrypting values using Jasypt.

Usage

The plugin is available from the Gradle Plugin Portal and can be applied to a Gradle project using the plugins block:

plugins {
  id("org.cthing.jasypt") version "1.1.0"
}

Encrypting a String

Applying the plugin creates the encryptString task. To encrypt a string run the following command:

./gradlew encryptString --string=hello [--password=abcd] [--format=plain|spring]

The encrypted string is written to the standard output:

Encrypted string: 5cWMaUf/siW1z1IQPU5sbm++lUbnV0ddQbCdjkLtRDFyiw7dSsik3mqRycfOkbVv

Decrypting a String

Applying the plugin creates the decryptString task. To decrypt a string run the following command:

./gradlew decryptString --string=5cWMaUf/siW1z1IQPU5sbm++lUbnV0ddQbCdjkLtRDFyiw7dSsik3mqRycfOkbVv [--password=abcd]

The decrypted string is written to the standard output:

Decrypted string: hello

Specifying the Password

The encryption/decryption password may be specified in a number of different ways. In order of highest to lowest precedence:

  • Using the --password command-line option
  • From the file specified by the --password-file command-line option
  • Using the CTHING_JASYPT_PASSWORD environment variables
  • Using the org.cthing.jasypt.password system property

If none of these mechanisms are used, a prompt is displayed to securely enter the password.

Compatibility

The following Gradle and Java versions are supported:

Plugin Version Gradle Version Minimum Java Version
1.0.0+ 8.0+ 17

Building

The plugin is compiled for Java 17. If a Java 17 toolchain is not available, one will be downloaded.

Gradle is used to build the plugin:

./gradlew build

The Javadoc for the plugin can be generated by running:

./gradlew javadoc

Releasing

This project is released on the Gradle Plugin Portal. Perform the following steps to create a release.

  • Commit all changes for the release
  • In the build.gradle.kts file, edit the ProjectVersion object
    • Set the version for the release. The project follows semantic versioning.
    • Set the build type to BuildType.release
  • Commit the changes
  • Wait until CI successfully builds the release candidate
  • Verify GitHub Actions build is successful
  • In a browser go to the C Thing Software Jenkins CI page
  • Run the gradle-jasypt-validate job
  • Wait until that job successfully completes
  • Run the gradle-jasypt-release job to release the plugin to the Gradle Plugin Portal
  • Wait for the plugin to be reviewed and made available by the Gradle team
  • In a browser, go to the project on GitHub
  • Generate a release with the tag <version>
  • In the build.gradle.kts file, edit the ProjectVersion object
    • Increment the version patch number
    • Set the build type to BuildType.snapshot
  • Update the CHANGELOG.md with the changes in the release and prepare for next release changes
  • Update the Usage and Compatibility sections in the README.md with the latest artifact release version
  • Commit these changes

About

Plugin for encrypting and decrypting values using Jasypt.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages