Blog

Tip of the Week: Using Interceptors

Brad Wood December 20, 2012

Spread the word

Brad Wood

December 20, 2012

Spread the word


Share your thoughts

 

One of the most powerful parts of the ColdBox framework are interceptors.  Interception points are events that happen over the life cycle of your application or a user request which are broadcast by the framework.  Examples would be preProcess (when a request first comes in), onException (when an error happens), or preViewRender (before a view is rendered).  If you any code you want to execute at those points, or if you want to override/modify the default behavior of the framework, you simply need to register an interceptor to listen for that broadcast event.
 
Interceptors, like most everything else in ColdBox, are implemented as simple CFCs which have a configure() method that is called on their creation.  Then you create as many methods as you want named after the interception points you want to respond to.  
 
For Example:
/interceptors/GateKeeper.cfc
component{
    property name="securityService" inject="model";
 
    function configure(){}
 
    function preEvent(event,interceptData){
        if(interceptData.processedEvent == 'secure.page' && !securityService.loggedIn())  {
            setNextEvent("login.page");
        }
    }
}
 
Then, all you have to do is register your interceptor in the config like so:
interceptors = [
    {class="interceptors.GateKeeper", properties={}}
];
 
Now, the code in our preEvent method will get called upon to run before each event in your application.  This keeps cross cutting concerns nicely encapsulated in a way that can easily be turned on and off without actually touching the parts of the app that they are listening to.
 
Check out the full list of interception points here in the docs:  http://wiki.coldbox.org/wiki/Interceptors.cfm
 
P.S. As if all the built-in ColdBox interception points weren't cool enough, you can create your own custom interceptions in your app like orderCreated, userLoggedIn, or accountDeleted and then write interceptors that listen for them and do special logic.
 

Add Your Comment

Recent Entries

Introducing BoxLang AI Explorer: A Local Catalog for Every AI Pattern

Introducing BoxLang AI Explorer: A Local Catalog for Every AI Pattern

Learning a new AI API usually means jumping between scattered documentation pages, guessing at imports, and copy-pasting code that may or may not still work. We wanted something better for BoxLang AI, so we built the BoxLang AI Explorer: a local, browser-based catalog of runnable BoxLang AI examples, organized by category and difficulty, each with guidance, source code, and sample output.

Luis Majano
Luis Majano
August 14, 2026
Community Spotlight: BoxLang Express Brings Node-Style HTTP to the JVM

Community Spotlight: BoxLang Express Brings Node-Style HTTP to the JVM

If you've spent years in Spring Boot, Micronaut, or Jakarta EE, "web framework" usually means a servlet container, an embedded Tomcat or Netty, a build step, and a fat jar before anything answers a request. What if you could skip all of that and still be on the JVM?

Luis Majano
Luis Majano
August 12, 2026