/*
 * =============================================================================
 * 
 *   Copyright (c) 2007-2010, The JASYPT team (http://www.jasypt.org)
 * 
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 * 
 * =============================================================================
 */
package org.jasypt.web.pbeconfig;




Interface which must be implemented by the user-defined classes which create and initialize webapp PBE encryptors for being configured through the web pbe configuration servlet.

This interface only has one method, initializeWebPBEConfigs(), which the implementation class should use for creating encryptors and setting WebPBEConfig objects to them, like:

 package myapp;
 ... 
 public class MyWebPBEInitializer implements WebPBEInitializer {
 
     public void initializeWebPBEConfigs() {
     
         StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
         encryptor.setAlgorithm("PBEWithMD5AndDES");
         
         WebPBEConfig webConfig = new WebPBEConfig();
         webConfig.setValidationWord("jasypt");
         webConfig.setName("Main Password");
         encryptor.setConfig(webConfig);
         
         // Get some user-defined singleton or similar, and register
         // the encryptor with it so that it can be accessed from the
         // rest of the application.
         
     }
     
 }

All WebPBEConfig objects get internally registered at instantiation time, and once assigned to an encryptor they will appear in the web form for password setting.

Important: If the web application uses Spring Framework, WebPBEConfig objects are declared as beans in the Spring context and this Spring context is initialized at application deploy time (with Spring's ContextLoaderListener), it will NOT be necessary to create any classes implementing this WebPBEInitializer interface. The use WebPBEInitializationContextListener will also become unnecessary.

Author:Daniel Fernández
Since:1.3
/** * <p> * Interface which must be implemented by the user-defined classes which * create and initialize webapp PBE encryptors for being configured through * the web pbe configuration servlet. * </p> * <p> * This interface only has one method, {@link #initializeWebPBEConfigs()}, * which the implementation class should use for creating encryptors and * setting {@link WebPBEConfig} objects to them, like: * </p> * <pre> * package myapp; * ... * public class MyWebPBEInitializer implements WebPBEInitializer { * * public void initializeWebPBEConfigs() { * * StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); * encryptor.setAlgorithm("PBEWithMD5AndDES"); * * WebPBEConfig webConfig = new WebPBEConfig(); * webConfig.setValidationWord("jasypt"); * webConfig.setName("Main Password"); * * encryptor.setConfig(webConfig); * * // Get some user-defined singleton or similar, and register * // the encryptor with it so that it can be accessed from the * // rest of the application. * * } * * } * </pre> * <p> * All <tt>WebPBEConfig</tt> objects get internally registered at * instantiation time, and once assigned to an encryptor they will appear * in the web form for password setting. * </p> * <p> * <b>Important</b>: If the web application uses Spring Framework, <tt>WebPBEConfig</tt> * objects are declared as beans in the Spring context and this Spring context * is initialized at application deploy time * (with Spring's <tt>ContextLoaderListener</tt>), it will NOT be necessary * to create * any classes implementing this <tt>WebPBEInitializer</tt> interface. * The use {@link WebPBEInitializationContextListener} will also become * unnecessary. * </p> * * @since 1.3 * * @author Daniel Fern&aacute;ndez * */
public interface WebPBEInitializer {

Method called by WebPBEInitializationContextListener at application deploy time for initialization of jasypt encryptors.

/** * <p> * Method called by {@link WebPBEInitializationContextListener} at * application deploy time for initialization of jasypt encryptors. * </p> * */
public void initializeWebPBEConfigs(); }