View Javadoc

1   //========================================================================
2   //$Id: CookiePatternRule.java 966 2008-04-17 13:53:44Z gregw $
3   //Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
4   //------------------------------------------------------------------------
5   //Licensed under the Apache License, Version 2.0 (the "License");
6   //you may not use this file except in compliance with the License.
7   //You may obtain a copy of the License at 
8   //http://www.apache.org/licenses/LICENSE-2.0
9   //Unless required by applicable law or agreed to in writing, software
10  //distributed under the License is distributed on an "AS IS" BASIS,
11  //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  //See the License for the specific language governing permissions and
13  //limitations under the License.
14  //========================================================================
15  package org.mortbay.jetty.handler.rewrite;
16  
17  import java.io.IOException;
18  
19  import javax.servlet.http.Cookie;
20  import javax.servlet.http.HttpServletRequest;
21  import javax.servlet.http.HttpServletResponse;
22  
23  
24  /**
25   * Sets the cookie in the response whenever the rule finds a match.
26   * 
27   * @see Cookie
28   */
29  public class CookiePatternRule extends PatternRule
30  {
31      private String _name;
32      private String _value;
33  
34      /* ------------------------------------------------------------ */
35      public CookiePatternRule()
36      {
37          _handling = false;
38          _terminating = false;
39      }
40  
41      /* ------------------------------------------------------------ */
42      /**
43       * Assigns the cookie name.
44       * 
45       * @param name a <code>String</code> specifying the name of the cookie.
46       */
47      public void setName(String name)
48      {
49          _name = name;
50      }
51  
52      /* ------------------------------------------------------------ */
53      /**
54       * Assigns the cookie value.
55       * 
56       * @param value a <code>String</code> specifying the value of the cookie
57       * @see Cookie#setValue(String)
58       */
59      public void setValue(String value)
60      {
61          _value = value;
62      }
63  
64      /* ------------------------------------------------------------ */
65      /*
66       * (non-Javadoc)
67       * @see org.mortbay.jetty.handler.rules.RuleBase#apply(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
68       */
69      public String apply(String target, HttpServletRequest request, HttpServletResponse response) throws IOException
70      {
71          response.addCookie(new Cookie(_name, _value));
72          return target;
73      }
74  
75      /* ------------------------------------------------------------ */
76      /**
77       * Returns the cookie contents.
78       */
79      public String toString()
80      {
81          return super.toString()+"["+_name+","+_value + "]";
82      }
83  }