Coverage Report - nu.localhost.tapestry.acegi.services.internal.RequestFilterWrapper
 
Classes in this File Line Coverage Branch Coverage Complexity
RequestFilterWrapper
0%
0/15
N/A
1.667
RequestFilterWrapper$1
0%
0/5
N/A
1.667
 
 1  0
 /*
 2  
  * Copyright 2007 Ivan Dubrov
 3  
  * Copyright 2007 Robin Helgelin
 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  
  *
 9  
  *     http://www.apache.org/licenses/LICENSE-2.0
 10  
  *
 11  
  * Unless required by applicable law or agreed to in writing, software
 12  
  * distributed under the License is distributed on an "AS IS" BASIS,
 13  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14  
  * See the License for the specific language governing permissions and
 15  
  * limitations under the License.
 16  
  */
 17  
 
 18  
 package nu.localhost.tapestry.acegi.services.internal;
 19  
 
 20  
 import java.io.IOException;
 21  
 
 22  
 import javax.servlet.Filter;
 23  
 import javax.servlet.FilterChain;
 24  
 import javax.servlet.ServletException;
 25  
 import javax.servlet.ServletRequest;
 26  
 import javax.servlet.ServletResponse;
 27  
 
 28  
 import org.apache.tapestry.services.Request;
 29  
 import org.apache.tapestry.services.RequestFilter;
 30  
 import org.apache.tapestry.services.RequestGlobals;
 31  
 import org.apache.tapestry.services.RequestHandler;
 32  
 import org.apache.tapestry.services.Response;
 33  
 
 34  
 /**
 35  
  * @author Ivan Dubrov
 36  
  */
 37  
 public class RequestFilterWrapper implements RequestFilter {
 38  
     private RequestGlobals globals;
 39  
     private Filter filter;
 40  
 
 41  0
     public RequestFilterWrapper(final RequestGlobals globals,
 42  0
             final Filter filter) {
 43  0
         this.globals = globals;
 44  0
         this.filter = filter;
 45  0
     }
 46  
 
 47  
     public final boolean service(final Request request, final Response response,
 48  
             final RequestHandler handler) throws IOException {
 49  
 
 50  
         // TODO: Thread safety!
 51  
         // Assume request handled if filter chain is NOT executed
 52  0
         final boolean[] res = new boolean[] {true};
 53  
         try {
 54  0
             filter.doFilter(globals.getHTTPServletRequest(),
 55  0
                     globals.getHTTPServletResponse(),
 56  0
                     new FilterChain() {
 57  0
                         public void doFilter(final ServletRequest req,
 58  
                                 final ServletResponse resp)
 59  
                                 throws IOException, ServletException {
 60  0
                             res[0] = handler.service(request, response);
 61  0
                         }
 62  
                     });
 63  0
         } catch (ServletException e) {
 64  0
             IOException ex = new IOException(e.getMessage());
 65  0
             ex.initCause(e);
 66  0
             throw ex;
 67  0
         }
 68  0
         return res[0];
 69  
     }
 70  
 }