Source code: juju/reattore/server/intercept/Interceptor.java
1 /* Reattore HTTP Server
2
3 Copyright (C) 2002 Michael Hope <michaelh@juju.net.nz>
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
19 $Id: Interceptor.java,v 1.2 2003/01/21 22:43:11 michaelh Exp $
20 */
21
22 package juju.reattore.server.intercept;
23
24 import juju.reattore.protocol.http.*;
25
26 /** An Interceptor is a module that is given a chance to process an
27 incomming request and to respond to it. The Interceptor can do
28 any combination of passing the request on, causing a side effect
29 on the response such as adding a header, or supply the response
30 body.
31 */
32 public interface Interceptor {
33
34 /** Process an incoming HTTP request if possible, filling in the
35 given response as it goes. An interceptor may have side
36 effects without actually performing the main processing and
37 may pass it on to another interceptor. A authentication
38 interceptor is a good example.
39
40 @param req HTTP request to process
41 @param resp Response to fill in
42 @return true if the request was recognised and processed.
43 */
44 boolean process(HttpRequest req, HttpResponse resp);
45 }