Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
  * JBoss, Home of Professional Open Source
  * Copyright 2005, JBoss Inc., and individual contributors as indicated
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as
  * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */
 
 package org.jboss.remoting.marshal.encryption;
 
 import java.util.Map;
 
 
EncryptingMarshaller and EncryptingUnMarshaller are a general purpose encrypting marshaller / decompressing unmarshaller pair based on Java's crypto stream facilities.

EncryptingUnMarshaller is subclassed from SerializableUnMarshaller, and by default it uses super.read() to deserialize an object, once the object has been decrypted. Optionally, it can wrap any other unmarshaller and use that instead of SerializableUnMarshaller to unmarshall an encrypted input stream. For example,

new EncryptingUnMarshaller(new HTTPUnMarshaller())

will create an umarshaller that uses an HTTPUnMarshaller to restore an unencrypted input stream.

Author(s):
Anil.Saldhana@jboss.org
Version:
$Revision: 2385 $
 
 
 {
   
The serialVersionUID
 
    private static final long serialVersionUID = 1L;
 
    public final static String DATATYPE = "encrypt";
 
    private UnMarshaller wrappedUnMarshaller
    
    
    private Cipher cipher = EncryptionManager.getCipher(.);
   

   
Create a new EncryptingUnMarshaller.
 
    public EncryptingUnMarshaller()
    {
    }
 

   
Create a new EncryptingUnMarshaller.

Parameters:
unMarshaller unmarshaller to be used to restore unencrypted byte stream to original object
 
    public EncryptingUnMarshaller(UnMarshaller unMarshaller)
    {
        = unMarshaller;
    }

   
Set the Cipher Algorithm to use

 
    public void setCipherAlgorithm(String algo)
    {
       this. = algo;
       = EncryptionManager.getCipher(.this.);
   }

   
Restores a encrypted, marshalled form of an object to its original state.

Parameters:
inputStream InputStream from which marshalled form is to be retrieved
metadata can be any transport specific metadata (such as headers from http transport). This can be null, depending on if transport supports metadata.
version wire format version
Returns:
restored object
Throws:
java.io.IOException if there is a problem reading from inputStream
java.lang.ClassNotFoundException if there is a problem finding a class needed for unmarshalling
   public Object read(InputStream inputStreamMap metadataint versionthrows IOExceptionClassNotFoundException
   {  
      if( == null)
         throw new IllegalStateException("Cipher is null for algo="this.);
      CipherInputStream cis = new CipherInputStream(inputStream,);
      SerializationManager sm = SerializationStreamFactory.getManagerInstance(getSerializationType());
      ObjectInputStream ois = sm.createRegularInput(cis);
       
      Object obj = null;
      if( != null)
      {
         if ( instanceof VersionedUnMarshaller)
            return ((VersionedUnMarshaller)).read(oismetadataversion);
         else
            obj = .read(oismetadata); 
      }
      else
      {
         obj = super.read(oismetadataversion);
      } 
      return obj;
   } 

   
Returns a new EncryptingUnMarshaller

Returns:
a new EncryptingUnMarshaller
Throws:
java.lang.CloneNotSupportedException In practice no exceptions are thrown.
   {
      return um;
   } 
New to GrepCode? Check out our FAQ X