Coverage Report - org.chenillekit.access.services.impl.PageRenderAccessFilter
 
Classes in this File Line Coverage Branch Coverage Complexity
PageRenderAccessFilter
95%
18/19
75%
3/4
1.667
 
 1  
 /*
 2  
  * Apache License
 3  
  * Version 2.0, January 2004
 4  
  * http://www.apache.org/licenses/
 5  
  *
 6  
  * Copyright 2008 by chenillekit.org
 7  
  *
 8  
  * Licensed under the Apache License, Version 2.0 (the "License");
 9  
  * you may not use this file except in compliance with the License.
 10  
  * You may obtain a copy of the License at
 11  
  *
 12  
  * http://www.apache.org/licenses/LICENSE-2.0
 13  
  */
 14  
 package org.chenillekit.access.services.impl;
 15  
 
 16  
 import java.io.IOException;
 17  
 
 18  
 import org.apache.tapestry5.EventContext;
 19  
 import org.apache.tapestry5.internal.EmptyEventContext;
 20  
 import org.apache.tapestry5.ioc.services.SymbolSource;
 21  
 import org.apache.tapestry5.services.ContextValueEncoder;
 22  
 import org.apache.tapestry5.services.Cookies;
 23  
 import org.apache.tapestry5.services.PageRenderRequestFilter;
 24  
 import org.apache.tapestry5.services.PageRenderRequestHandler;
 25  
 import org.apache.tapestry5.services.PageRenderRequestParameters;
 26  
 import org.chenillekit.access.ChenilleKitAccessConstants;
 27  
 import org.chenillekit.access.internal.ChenillekitAccessInternalUtils;
 28  
 import org.chenillekit.access.services.AccessValidator;
 29  
 import org.slf4j.Logger;
 30  
 
 31  
 /**
 32  
  *
 33  
  * @version $Id: PageRenderAccessFilter.java 380 2008-12-30 10:21:52Z mlusetti $
 34  
  */
 35  
 public class PageRenderAccessFilter implements PageRenderRequestFilter
 36  
 {
 37  
         private final Logger logger;
 38  
         private final AccessValidator accessValidator;
 39  
         private final String loginPage;
 40  
         private final ContextValueEncoder valueEncoder;
 41  
 
 42  
         private final Cookies cookies;
 43  
 
 44  
         public PageRenderAccessFilter(AccessValidator accessValidator,
 45  
                                                                 SymbolSource symbols, Logger logger,
 46  
                                                                 ContextValueEncoder valueEncoder,
 47  
                                                                 Cookies cookies)
 48  1
         {
 49  1
                 this.logger = logger;
 50  1
                 this.accessValidator = accessValidator;
 51  1
                 this.loginPage = symbols.valueForSymbol(ChenilleKitAccessConstants.LOGIN_PAGE);
 52  1
                 this.cookies = cookies;
 53  1
                 this.valueEncoder = valueEncoder;
 54  
 
 55  1
         }
 56  
 
 57  
         /*
 58  
          * (non-Javadoc)
 59  
          * @see org.apache.tapestry5.services.PageRenderRequestFilter#handle(org.apache.tapestry5.services.PageRenderRequestParameters, org.apache.tapestry5.services.PageRenderRequestHandler)
 60  
          */
 61  
         public void handle(PageRenderRequestParameters parameters,
 62  
                         PageRenderRequestHandler handler) throws IOException
 63  
         {
 64  
 //                String previousPage = cookies.readCookieValue(ChenilleKitAccessConstants.REQUESTED_PAGENAME_COOKIE);
 65  
 //                String previousContext = cookies.readCookieValue(ChenilleKitAccessConstants.REQUESTED_EVENTCONTEXT_COOKIE);
 66  
 //
 67  
 //                if (previousPage != null)
 68  
 //                {
 69  
 //                        EventContext context = ChenillekitAccessInternalUtils.getContextFromString(valueEncoder, previousContext);
 70  
 //                        currentParameters = new PageRenderRequestParameters(previousPage, context);
 71  
 //
 72  
 //                        cookies.removeCookieValue(ChenilleKitAccessConstants.REQUESTED_EVENTCONTEXT_COOKIE);
 73  
 //                        cookies.removeCookieValue(ChenilleKitAccessConstants.REQUESTED_PAGENAME_COOKIE);
 74  
 //                }
 75  
 //                else if ( !accessValidator.hasAccess(parameters.getLogicalPageName(), null, null) )
 76  13
                 if ( !accessValidator.hasAccess(parameters.getLogicalPageName(), null, null) )
 77  
                 {
 78  3
                         if (logger.isDebugEnabled())
 79  0
                                 logger.debug("User hasn't rights to access " + parameters.getLogicalPageName()  + " page");
 80  
                         
 81  3
                         System.out.println("User hasn't rights to access " + parameters.getLogicalPageName()  + " page");
 82  
 
 83  3
                         cookies.writeCookieValue(ChenilleKitAccessConstants.REQUESTED_PAGENAME_COOKIE, parameters.getLogicalPageName());
 84  3
                         cookies.writeCookieValue(ChenilleKitAccessConstants.REQUESTED_EVENTCONTEXT_COOKIE, ChenillekitAccessInternalUtils.getContextAsString((parameters.getActivationContext())));
 85  
 
 86  3
                         handler.handle(getLoginPageParameters());
 87  
                 }
 88  
                 else
 89  
                 {
 90  10
                         System.out.println("User has rights to access " + parameters.getLogicalPageName()  + " page");
 91  10
                         handler.handle(parameters);
 92  
                 }
 93  13
         }
 94  
 
 95  
         private PageRenderRequestParameters getLoginPageParameters()
 96  
         {
 97  3
                 PageRenderRequestParameters parameters = new PageRenderRequestParameters(loginPage, new EmptyEventContext());
 98  
 
 99  3
                 return parameters;
 100  
         }
 101  
 
 102  
 }