org.jasypt.hibernate.type
Class EncryptedCalendarAsStringType

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

public final class EncryptedCalendarAsStringType
extends AbstractEncryptedAsStringType

A Hibernate 3 UserType implementation which allows encryption of Calendar values into String (VARCHAR) database fields 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="encryptedCalendarAsString" class="org.jasypt.hibernate.type.EncryptedCalendarAsStringType">
      <param name="encryptorRegisteredName">myHibernateStringEncryptor</param>
      <param name="storeTimeZone">true</param>
    </typedef>
    ...
    <class name="UserData" table="USER_DATA">
      ...
      <property name="birth" column="BIRTH" type="encryptedCalendarAsString" />
      ...
    <class>
    ...
  <hibernate-mapping>
 

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

The boolean storeTimeZone parameter allows the Calendar to be re-created with the same TimeZone that it was created. This is an optional parameter, and its default value is FALSE.

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="encryptedCalendarAsString" class="org.jasypt.hibernate.type.EncryptedCalendarAsStringType">
      <param name="algorithm">PBEWithMD5AndTripleDES</param>
      <param name="password">XXXXX</param>
      <param name="keyObtentionIterations">1000</param>
      <param name="storeTimeZone">true</param>
    </typedef>
    ...
    <class name="UserData" table="USER_DATA">
      ...
      <property name="birth" column="BIRTH" type="encryptedCalendarAsString" />
      ...
    <class>
    ...
  <hibernate-mapping>
 

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

Since:
1.2
Author:
Daniel Fernández

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

Constructor Detail

EncryptedCalendarAsStringType

public EncryptedCalendarAsStringType()
Method Detail

convertToObject

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

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

convertToString

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

Overrides:
convertToString in class AbstractEncryptedAsStringType
Parameters:
object - the object value
Returns:
the string form of the passes Object
See Also:
AbstractEncryptedAsStringType.convertToString(java.lang.Object)

setParameterValues

public void setParameterValues(Properties parameters)
Specified by:
setParameterValues in interface org.hibernate.usertype.ParameterizedType
Overrides:
setParameterValues in class AbstractEncryptedAsStringType

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.