head	1.5;
access;
symbols
	TIGRIS_1_1_0RC2:1.3
	TIGRIS_1_1_0RC1:1.3
	TIGRIS_1_1:1.3.0.6
	TIGRIS_1_0_8:1.3
	TIGRIS_1_0_8RC3:1.3
	TIGRIS_1_0_8RC2:1.3
	TIGRIS_1_0_8RC1:1.3
	TIGRIS_1_0_7:1.3
	TIGRIS_1_0_7RC3:1.3
	TIGRIS_1_0_7RC2:1.3
	TIGRIS_1_0_7RC1:1.3
	TIGRIS_1_0_6:1.3
	TIGRIS_1_0_6RC5:1.3
	TIGRIS_1_0_6RC4:1.3
	TIGRIS_1_0_6RC3:1.3
	TIGRIS_1_0_6RC2:1.3
	TIGRIS_1_0_6RC1:1.3
	TIGRIS_1_0_5:1.3
	TIGRIS_1_0_5RC6:1.3
	TIGRIS_1_0_5RC5:1.3
	TIGRIS_1_0_5RC4:1.3
	TIGRIS_1_0_5RC3:1.3
	TIGRIS_1_0_5RC2:1.3
	TIGRIS_1_0_5RC1:1.3
	TIGRIS_1_0_4:1.3
	TIGRIS_1_0_3:1.3
	TIGRIS_1_0_2:1.3
	TIGRIS_1_0_1:1.3
	TIGRIS_1_0:1.3.0.8
	TIGRIS_1_0_0:1.3
	TIGRIS_1_0_0_RC1:1.3.0.4
	TIGRIS_0_9_2_4:1.1
	TIGRIS_0_9_2_3:1.1
	HELM_PEER_PORT_BRANCH:1.3.0.2
	TURBINE_PEER:1.3
	TIGRIS_0_9_2_1:1.3
	TIGRIS_0_9_2:1.1.0.4
	TIGRIS_0_9_0:1.1.0.2;
locks; strict;
comment	@# @;


1.5
date	2001.08.07.20.53.11;	author leonardr;	state Exp;
branches;
next	1.4;

1.4
date	2001.07.19.19.36.30;	author dlr;	state Exp;
branches;
next	1.3;

1.3
date	2001.01.26.18.29.08;	author edk;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	2001.01.26.05.24.07;	author edk;	state dead;
branches;
next	1.1;

1.1
date	2000.12.05.21.07.03;	author stack;	state Exp;
branches;
next	;

1.3.2.1
date	2001.01.28.01.02.18;	author dlr;	state dead;
branches;
next	;


desc
@@


1.5
log
@Got rid of lingering Webmacro dependencies.
@
text
@/* ================================================================
 * Copyright (c) 2000 Collab.Net.  All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 * 
 * 1. Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 * 
 * 2. Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * 
 * 3. The end-user documentation included with the redistribution, if
 * any, must include the following acknowlegement: "This product includes
 * software developed by Collab.Net <http://www.Collab.Net/>."
 * Alternately, this acknowlegement may appear in the software itself, if
 * and wherever such third-party acknowlegements normally appear.
 * 
 * 4. The hosted project names must not be used to endorse or promote
 * products derived from this software without prior written
 * permission. For written permission, please contact info@@collab.net.
 * 
 * 5. Products derived from this software may not use the "Tigris" or 
 * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without 
 * prior written permission of Collab.Net.
 * 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * ====================================================================
 * 
 * This software consists of voluntary contributions made by many
 * individuals on behalf of Collab.Net.
 */ 
package org.tigris.helm.publish.filters;

import java.text.*;
import java.util.*;
import java.net.*;
import org.tigris.helm.publish.*;
// Java Servlet Classes
import javax.servlet.*;
import javax.servlet.http.*;

import HTTPClient.*;

 
/** Copy headers other than cookies to the response.
 * 
 * This is a post-filter.  Add it because IZ wants to give headers such as 
 * 'Content-disposition' back to the browser.
 * 
 * @@author <a href="mailto:stack@@collab.net">St.Ack</a>
 * @@version $Id: CopyHeaders2Response.java,v 1.4 2001/07/19 19:36:30 dlr Exp $
 * @@see org.tigris.helm.publish.filter.CopyCookies
 * @@see <a href="http://projects.collab.net/project/eng/stack/projects/securenoodle/">SecureNoodle: Problem Statement, Requirements, Survey, Decisions and Testing</a>    
 */
public class CopyHeaders2Response implements NoodleFilter
{
    /** Class version string
     */
    private static final String versionID 
        = "$Id: CopyHeaders2Response.java,v 1.4 2001/07/19 19:36:30 dlr Exp $";


    /** Logging object.
     * @@see <a href="http://www.webmacro.org/api/index.html">WebMacro API</a>
     */
    static private org.webmacro.util.Log log 
        = new org.webmacro.util.Log( "NdlFltr", "HelmNoodleFilter" );
        
    
    /** Debug flag.
     * @@see <a href="http://www.webmacro.org/api/index.html">WebMacro API</a>
     */
    public static final boolean debug = true;
    
    
    /** Array of headers to copy to the response.
     * Add headers you'd like copied to this array.
     */
    private final static String [] headers = { "Content-disposition" };
    

    /** Do filtering.
     *
     * Copy specific headers if present to the browser response.  Add to 
     * the 
     *
     * @@param noodleData This is an instance of HelmNoodleData.
     *
     * @@exception Exception
     */
    public void doProcess( NoodleData noodleData )
        throws Exception
    {
        HttpServletResponse response = noodleData.getResponse( );
        HTTPResponse httpResponse = noodleData.getHTTPResponse( );
        if( headers.length > 0 )
        {
            String key = null;
            String value = null;
            for( int i = 0; i < headers.length; i++ )
            {
                key = headers[ i ];
                // Is this case sensitive?
                value = httpResponse.getHeader( key );
                if( value != null && value.length( ) > 0 )
                {
                    response.setHeader( key, value );
                    if( debug )
                        log.info( "Added header " + key + ": " + value );
                }
            }
        }
    }
}    
@


1.4
log
@Removed Joist references.
@
text
@a51 1
import org.webmacro.util.*;
d65 1
a65 1
 * @@version $Id: CopyHeaders2Response.java,v 1.3 2001/01/26 18:29:08 edk Exp $
d74 1
a74 1
        = "$Id: CopyHeaders2Response.java,v 1.3 2001/01/26 18:29:08 edk Exp $";
@


1.3
log
@readding all the files as part of the process of returning to the way
things were as of tuesday
@
text
@d51 1
a51 1
import org.joist.publish.*;
d66 2
a67 2
 * @@version $Id: CopyHeaders2Response.java,v 1.1 2000/12/05 21:07:03 stack Exp $
 * @@see org.joist.publish.filter.CopyCookies
d75 1
a75 1
        = "$Id: CopyHeaders2Response.java,v 1.1 2000/12/05 21:07:03 stack Exp $";
@


1.3.2.1
log
@Porting to the Turbine Peer system.  -dlr and leonardr
@
text
@d66 1
a66 1
 * @@version $Id: CopyHeaders2Response.java,v 1.3 2001/01/26 18:29:08 edk Exp $
d75 1
a75 1
        = "$Id: CopyHeaders2Response.java,v 1.3 2001/01/26 18:29:08 edk Exp $";
@


1.2
log
@revert this stuff to its state as of 2001/01/24 12:42:00 GMT -- with
the following exceptions, which have some different modifications so
they'll work with changes which have happened in joist:

ProjectNewsEdit.java
SkinManager.java
SkinStyleElementValueManager.java
StyleElementManager.java
StyleManager.java

it compiles.  i dunno if it works, though.
@
text
@@


1.1
log
@Fix for IZ 1379 -- Files downloaded by IE not having proper filename.  IssueZilla headers other than cookies are  not passed by Noodle to the browser response object.  Added a Noodle filter that will pass named headers.  The headers to pass are specified in the filter class in a data member array.
@
text
@d66 1
a66 1
 * @@version $Id$
d75 1
a75 1
        = "$Id$";
@

