All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.avaje.ebean.config.EncryptDeploy Maven / Gradle / Ivy

There is a newer version: 8.1.1
Show newest version
package com.avaje.ebean.config;

/**
 * Define the encryption options for a bean property.
 * 

* You can define the encryption options for a Bean property via the Encrypt * annotation and programmatically via {@link EncryptDeployManager}. *

* * @author rbygrave * * @see EncryptDeployManager#getEncryptDeploy(TableName, String) */ public class EncryptDeploy { /** * Use to define that no encryption should be used. */ public static final EncryptDeploy NO_ENCRYPT = new EncryptDeploy(Mode.MODE_NO_ENCRYPT, true, 0); /** * Use to define that the Encrypt annotation should be used to control * encryption. */ public static final EncryptDeploy ANNOTATION = new EncryptDeploy(Mode.MODE_ANNOTATION, true, 0); /** * Use to define that Encryption should be used and String types should use DB * encryption. */ public static final EncryptDeploy ENCRYPT_DB = new EncryptDeploy(Mode.MODE_ENCRYPT, true, 0); /** * Use to define that Java client Encryption should be used (rather than DB * encryption). */ public static final EncryptDeploy ENCRYPT_CLIENT = new EncryptDeploy(Mode.MODE_ENCRYPT, false, 0); /** * The Encryption mode. */ public enum Mode { /** * Encrypt the property using DB encryption or Java client encryption * depending on the type and dbEncryption flag. */ MODE_ENCRYPT, /** * No encryption is used, even if there is an Encryption annotation on the * property. */ MODE_NO_ENCRYPT, /** * Use encryption options defined by the Encryption annotation on the * property. If no annotation is on the property it is not encrypted. */ MODE_ANNOTATION } private final Mode mode; private final boolean dbEncrypt; private final int dbLength; /** * Construct with all options for Encryption including the dbLength. * * @param mode * the Encryption mode * @param dbEncrypt * set to false if you want to use Java client side encryption rather * than DB encryption. * @param dbLength * set the DB length to use. */ public EncryptDeploy(Mode mode, boolean dbEncrypt, int dbLength) { this.mode = mode; this.dbEncrypt = dbEncrypt; this.dbLength = dbLength; } /** * Return the encryption mode. */ public Mode getMode() { return mode; } /** * Return true if String type should use DB encryption. *

* Return false if String type should use java client encryption instead. *

*/ public boolean isDbEncrypt() { return dbEncrypt; } /** * Return a hint to specify the DB length. *

* Returning 0 means just use the normal DB length determination. *

*/ public int getDbLength() { return dbLength; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy