org.jasypt.hibernate.type
Class EncryptedStringType

Object
  extended by org.jasypt.hibernate.type.AbstractEncryptedAsStringType
      extended by org.jasypt.hibernate.type.EncryptedStringType
All Implemented Interfaces:
org.hibernate.usertype.ParameterizedType, org.hibernate.usertype.UserType

public final class EncryptedStringType
extends AbstractEncryptedAsStringType

A Hibernate 3 UserType implementation which allows transparent encryption of String values during persistence of entities.

This class is intended only for declarative use from a Hibernate mapping file. Do not use it directly from your .java files (although of course you can use it when mapping entities using annotations).

To use this Hibernate type in one of your Hibernate mappings, you can add it like this:

  <hibernate-mapping package="myapp">
    ...
    <typedef name="encryptedString" class="org.jasypt.hibernate.type.EncryptedStringType">
      <param name="encryptorRegisteredName">myHibernateStringEncryptor</param>
    </typedef>
    ...
    <class name="UserData" table="USER_DATA">
      ...
      <property name="address" column="ADDRESS" type="encryptedString" />
      ...
    </class>
    ...
  </hibernate-mapping>
 

...where a HibernatePBEStringEncryptor object should have been previously registered to be used from Hibernate with name myHibernateStringEncryptor (see HibernatePBEStringEncryptor and HibernatePBEEncryptorRegistry).

Or, if you prefer to avoid registration of encryptors, you can configure your encryptor directly in the mapping file (although not recommended), like this:

  <hibernate-mapping package="myapp">
    ...
    <typedef name="encryptedString" class="org.jasypt.hibernate.type.EncryptedStringType">
      <param name="algorithm">PBEWithMD5AndTripleDES</param>
      <param name="password">XXXXX</param>
      <param name="keyObtentionIterations">1000</param>
    </typedef>
    ...
    <class name="UserData" table="USER_DATA">
      ...
      <property name="address" column="ADDRESS" type="encryptedString" />
      ...
    </class>
    ...
  </hibernate-mapping>
 

To learn more about usage of user-defined types, please refer to the Hibernate Reference Documentation.

Since:
1.2 (substitutes org.jasypt.hibernate.EncryptedTextType which existed since 1.0)
Author:
Daniel Fernández

Field Summary
 
Fields inherited from class org.jasypt.hibernate.type.AbstractEncryptedAsStringType
encryptor
 
Constructor Summary
EncryptedStringType()
           
 
Method Summary
protected  Object convertToObject(String stringValue)
          Converts given String to its Object form.
 Class returnedClass()
           
 
Methods inherited from class org.jasypt.hibernate.type.AbstractEncryptedAsStringType
assemble, checkInitialization, convertToString, deepCopy, disassemble, equals, hashCode, isMutable, nullSafeGet, nullSafeSet, replace, setParameterValues, sqlTypes
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EncryptedStringType

public EncryptedStringType()
Method Detail

convertToObject

protected Object convertToObject(String stringValue)
Description copied from class: AbstractEncryptedAsStringType
Converts given String to its Object form.

Specified by:
convertToObject in class AbstractEncryptedAsStringType
Parameters:
stringValue - the string value
Returns:
the object form of the passed String
See Also:
AbstractEncryptedAsStringType.convertToObject(java.lang.String)

returnedClass

public Class returnedClass()
Specified by:
returnedClass in interface org.hibernate.usertype.UserType
Specified by:
returnedClass in class AbstractEncryptedAsStringType


Copyright © 2011 The JASYPT team. All Rights Reserved.