[ 
https://issues.apache.org/jira/browse/CLK-598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adrian A. closed CLK-598.
-------------------------


closing issue fixed a long time ago

> Add Page Interceptor facility
> -----------------------------
>
>                 Key: CLK-598
>                 URL: https://issues.apache.org/jira/browse/CLK-598
>             Project: Click
>          Issue Type: New Feature
>          Components: core
>            Reporter: Malcolm Edgar
>            Assignee: Malcolm Edgar
>             Fix For: 2.2.0
>
>
> Provide an application page interceptor /  listener facility into Click.  The 
> concept is to provide an extension point for code which can listener to key 
> page events and also interrupt normal page processing flow.
> Using this code which tends to be incorporated into Page superclasses can be 
> refactored into listener classes which can be reused in applications. This 
> approach supports Page design by composition, rather than through inheritance.
> Page listeners could be used for:
> * enforcing an application wide security polity, rather than using the 
> Page#onSecurityCheck() method
> * dependency injection, see CLK-581
> * support page performance profiling and logging
> The listener interface would be:
> public interface PageInterceptor {
>        boolean pageCreate(Class<? extends Page> pageClass, Context context);
>        boolean postCreate(Page page);
>        boolean preResponse(Page page);
>        void postDestroy(Page page);
> }
>  
> Application page interceptor  classes would be defined in the click.xml 
> configuration file. Applications could defined multiple interceptor which 
> would be executed sequentially in the order in which there are defined.  
> Lnterceptor could have a scope /  lifecycle of request (where by new 
> instances are created for each page request, and are threadsafe), or 
> application (where by a single instance is created and used for all page 
> requests).  interceptor can also be configured to have properties which are 
> set after creation.  This scope rules equates to Spring prototype and 
> singleton scopes.
> An example configuration is provided below:
>     <page-interceptor classname="com.mycorp.listener.ProfilingInterceptor"/>
>     <page-interceptor classname="com.mycorp.listener.SecurityInterceptor" 
> scope="application">
>         <property name="notAthenticatedPath" value="/login.htm"/>
>         <property name="notAuthorizedPath" value="/not-authorized.htm"/>
>     </page-interceptor >
>    



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to