Home » geronimo-2.2-source-release » org.apache.geronimo.gbean.annotation » [javadoc | source]

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one
    3    * or more contributor license agreements.  See the NOTICE file
    4    * distributed with this work for additional information
    5    * regarding copyright ownership.  The ASF licenses this file
    6    * to you under the Apache License, Version 2.0 (the
    7    * "License"); you may not use this file except in compliance
    8    * with the License.  You may obtain a copy of the License at
    9    *
   10    *  http://www.apache.org/licenses/LICENSE-2.0
   11    *
   12    * Unless required by applicable law or agreed to in writing,
   13    * software distributed under the License is distributed on an
   14    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   15    * KIND, either express or implied.  See the License for the
   16    * specific language governing permissions and limitations
   17    * under the License.
   18    */
   19   
   20   package org.apache.geronimo.gbean.annotation;
   21   
   22   import org.apache.geronimo.crypto.EncryptionManager;
   23   
   24   public enum EncryptionSetting {
   25       ENCRYPTED {
   26           public Object encrypt(Object plaintext) {
   27               if (plaintext == null) return null;
   28               return EncryptionManager.encrypt((String)plaintext);
   29           }
   30           public Object decrypt(Object encrypted) {
   31               if (encrypted == null) return null;
   32               return EncryptionManager.decrypt((String)encrypted);
   33           }},
   34       PLAINTEXT {
   35   
   36           public Object encrypt(Object plaintext) {
   37               return plaintext;
   38           }
   39           public Object decrypt(Object encrypted) {
   40               return encrypted;
   41           }},
   42       // Default is to encrypt attributes whose name contains "password"
   43       DEFAULT {
   44   
   45           public Object encrypt(Object plaintext) {
   46               throw new RuntimeException("dont call this");
   47           }
   48           public Object decrypt(Object encrypted) {
   49               throw new RuntimeException("dont call this");
   50           }};
   51   
   52       public abstract Object encrypt(Object plaintext);
   53   
   54       public abstract Object decrypt(Object encrypted);
   55   
   56       public static EncryptionSetting defaultEncryption(String name, String type) {
   57           if (name == null) throw new NullPointerException("Name missing");
   58           if (type == null) throw new NullPointerException("type missing");
   59           if (!String.class.getName().equals(type)) return PLAINTEXT;
   60           return (name.toLowerCase().indexOf("password") > -1)? ENCRYPTED: PLAINTEXT;
   61       }
   62   
   63   }

Home » geronimo-2.2-source-release » org.apache.geronimo.gbean.annotation » [javadoc | source]