1   //========================================================================
2   //Copyright 2004-2008 Mort Bay Consulting Pty. Ltd.
3   //------------------------------------------------------------------------
4   //Licensed under the Apache License, Version 2.0 (the "License");
5   //you may not use this file except in compliance with the License.
6   //You may obtain a copy of the License at 
7   //http://www.apache.org/licenses/LICENSE-2.0
8   //Unless required by applicable law or agreed to in writing, software
9   //distributed under the License is distributed on an "AS IS" BASIS,
10  //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11  //See the License for the specific language governing permissions and
12  //limitations under the License.
13  //========================================================================
14  
15  package org.mortbay.jetty.handler.rewrite;
16  
17  
18  import javax.servlet.http.HttpServletRequest;
19  import javax.servlet.http.HttpServletResponse;
20  
21  import org.mortbay.jetty.Request;
22  import org.mortbay.jetty.handler.rewrite.PatternRule;
23  
24  
25  /**
26   * Set the scheme for the request 
27   *
28   * @author Ervin Varga
29   * @author Athena Yao
30   */
31  public class ForwardedSchemeHeaderRule extends HeaderRule {
32      private String _scheme="https";
33  
34      /* ------------------------------------------------------------ */
35      public String getScheme() 
36      {
37          return _scheme;
38      }
39  
40      /* ------------------------------------------------------------ */
41      /**
42       * @param scheme the scheme to set on the request. Defaults to "https"
43       */
44      public void setScheme(String scheme)
45      {
46          _scheme = scheme;
47      }
48      
49      /* ------------------------------------------------------------ */
50      protected String apply(String target, String value, HttpServletRequest request, HttpServletResponse response) 
51      {
52          ((Request) request).setScheme(_scheme);
53          return target;
54      }    
55  }