What is new in Jasypt 1.9?

Modularization

Since version 1.9.0, jasypt will offer a core and several separate integration modules instead of a single artifact containing them all. This will allow a better integration between jasypt and the different versions of the supported technologies (Hibernate, Spring, etc.)

The new modules are:

  • jasypt (core)
  • Spring integration
    • jasypt-spring2 for Spring Framework 2.0 and 2.5
    • jasypt-spring3 for Spring Framework 3.0
    • jasypt-spring31 for Spring Framework 3.1 and newer
    • jasypt-acegisecurity for Acegi Security 1.0
    • jasypt-springsecurity2 for Spring Security 2.x
    • jasypt-springsecurity3 for Spring Security 3.x and newer
  • Hibernate integration
    • jasypt-hibernate3 for Hibernate 3.0, 3.1, 3.2, 3.3, 3.5 and 3.6
    • jasypt-hibernate4 for Hibernate 4.x and newer
  • Apache Wicket integration
    • jasypt-wicket13 for Apache Wicket 1.3 and 1.4
    • jasypt-wicket15 for Apache Wicket 1.5

Hibernate 4 support

Jasypt 1.9 adds support for Hibernate 4 by creating a new, specific jasypt-hibernate4 module.

Features offered are the same as for Hibernate 3, but adapted to the new specific APIs of this new Hibernate major version.

Learn more at the Jasypt + Hibernate Guide.

Enhanced Spring 3.0 support

Jasypt 1.9 adds to its existing Spring 3.0 support an XML namespace called encryption, which allows creating many jasypt artifacts as easily as:

  <encryption:basic-text-encryptor password="jasypt"/>

...even when using complex environment-based configurations:

  <encryption:encryptor-config id="conf" password-env-name="APP_PWD" string-output-type="hexa" algorithm="PBEWithMD5AndTripleDES"/>
  <encryption:string-encryptor id="myEncryptor" config-bean="conf"/>

The same goes for digesters / digester utils:

  <encryption:basic-password-encryptor/>
  <encryption:byte-digester algorithm="SHA-1" salt-size-bytes="64"/>

Also, encryptable .properties files (.properties files which include encrypted entries that are transparently decrypted) can be easily created in a way equivalent to Spring's <util:properties/>:

  <encryption:encryptable-properties encryptor="myEncryptor" location="classpath:connections.properties"/>

And an EncryptablePropertyPlaceholderConfigurer can be declared in a way equivalent to Spring's <context:property-placeholder/>, so that encrypted entries in .properties files can be resolved with ${...}:

  <encryption:encryptable-property-placeholder encryptor="myEncryptor" location="classpath:application.properties"/>

Learn more at the Jasypt + Spring 3.0 Guide.

Spring 3.1 support

Jasypt 1.9 features for Spring 3.1 are equivalent to those for Spring 3.0 --excluding those that were deprecated--. The new encryption namespace is also offered in Spring 3.1.

Besides, jasypt provides an EncryptablePropertySource implementation of the new org.springframework.core.env.PropertySource interface for Environment-based configuration, and adapts the behaviour of its <encryption:property-placeholder/> to that of Spring 3.1, which bases ${...} property resolution on querying the registered property sources.

Learn more at the Jasypt + Spring 3.1 Guide.

Apache Wicket 1.5 support

jasypt 1.9 adds specific support for Apache Wicket 1.5, due to some changes in its encryption APIs since 1.4.

Learn more at the Jasypt + Apache Wicket Guide.

Minor bugs and testing enhancements

Some minor bugs have already been fixed, and the project's unit-testing infrastructure has been significantly improved.