Migrate Jasypt to AWS Secrets Manager

Proprietary

Removes Jasypt. Jasypt-encrypted Spring Boot configuration moves to secrets stored in AWS Secrets Manager, loaded with Spring Cloud AWS: through spring.config.import=aws-secretsmanager:... from Spring Boot 2.4, through bootstrap.properties on Spring Boot 2.0 to 2.3, and otherwise by a generated EnvironmentPostProcessor on the AWS SDK v2. Every encrypted value that jasypt-spring-boot's own decryption reads becomes a reference to a key of a secret and is reported, with what is needed to decrypt it, in a data table, so someone can load the secrets; values a custom resolver or detector decrypts stay as they are, on a shim. Spring Boot tests get configuration of their own that loads no secret. Uses of Jasypt with no AWS Secrets Manager replacement (encryption of application data, password hashing, encrypted properties outside Spring Boot) move to compatibility shims added to the repository that read and write what Jasypt wrote, and every Jasypt dependency is removed. A Jasypt password encryptor used only to hash and check passwords becomes a Spring Security DelegatingPasswordEncoder instead, which hashes new passwords with bcrypt and verifies the hashes Jasypt made. A report says what each use of Jasypt was for.

io.moderne.cryptography.jasypt.MigrateJasyptToAwsSecretsManager
mod run . --recipe=io.moderne.cryptography.jasypt.MigrateJasyptToAwsSecretsManager

Install it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.