All pages
Powered by GitBook
1 of 14

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Release History

A brief history in time of our major releases

In this section you will find the release notes for each version we release under this major version. If you are looking for the release notes of previous major versions use the version switcher at the top left of this documentation book. Here is a breakdown of our major version releases.

Version 3.0

Version 3 is a major rewrite of this module. It drops Adobe 2016 support and enhances the way the firewall is configured. It also add major capabilities for security headers, csrf settings and much more.

It also introduces the ability for the firewall to do 401 response blocks as actions for security rules. The CBSecurity visualizer is also a major addition that allows a developer or manager to visualize the performance of the firewall and visualize all the configurations necessary for operation.

Finally, we have introduced basic authentication for your applications with an optional user credential in-memory storage.

Version 2.0

Version 2 is a major release of our security module. We completely refactored the engine to make it more modern and to adhere to our new coding standards. We then proceeded to enhance it to tap into our HMVC approach and allow rules to be contributed from modules themselves. We also added annotation driven security to complete the ability to secure not only incoming requests by rules but also by easy annotations.

We have made great strides in this release to make it a one-stop-shop for security concerns within ColdBox applications.

Version 1.0

Our first release as a module decoupled from the ColdBox 2 days!

Introduction

Enterprise-grade security for ColdBox applications with authentication, authorization, JWT, CSRF protection, and comprehensive security headers.

Enterprise Security for ColdBox Applications

CBSecurity is a comprehensive security framework for ColdBox applications, providing enterprise-grade authentication, authorization, and protection mechanisms. It combines multiple security modules into a cohesive, easy-to-use security platform that helps developers build secure applications with minimal effort.

Security Visualizer - Monitor and configure your security settings

🎯 Core Security Capabilities

CBSecurity provides a multi-layered security approach with the following key capabilities:

🔐 Authentication & Authorization

  • Security Firewall - Rule-based request protection using security rules engine and handler annotations

  • Authentication Manager (cbauth) - Pluggable authentication system compatible with any authentication provider

  • Basic Authentication - Built-in HTTP Basic Auth support with credential storage and browser challenge handling

🎫 Token Management

  • JWT Services (jwtcfml) - Complete JSON Web Token implementation with generation, decoding, and validation

  • Access & Refresh Tokens - Native support for JWT-based authentication flows

  • Token Storage - Flexible token storage with multiple backend options

🛡️ Security Protections

  • CSRF Protection (cbcsrf) - Cross-Site Request Forgery protection for form submissions

  • Security Headers - Industry-standard HTTP response headers (CSP, HSTS, X-Frame-Options, XSS Protection)

  • Password Generator - Cryptographically secure random password generation

📊 Management & Monitoring

  • Security Visualizer - Graphical interface for monitoring firewall activity and managing security configurations

  • Rule Engine - Flexible security rules supporting XML, JSON, database, and model-based configurations

  • Module Integration - Allows modules to contribute their own security rules and validation logic

🧩 Module Composition

CBSecurity is built on a modular architecture that integrates several specialized security modules:

The framework leverages cbstorages for flexible storage backends and seamlessly integrates with the ColdBox ecosystem to provide comprehensive security coverage across your entire application.

⭐ Key Features

📋 Flexible Security Rules

  • Multiple Storage Options - Define rules in XML, JSON, databases, or ColdBox models

  • Regular Expression Support - Use regex patterns or simple string matching for rule definitions

  • Modular Rules - Modules can contribute their own security rules with custom validation logic

  • Dynamic Rule Loading - Load and unload security rules at runtime from contributing modules

🔒 Advanced Authorization

  • Annotation-Driven Security - Secure handlers and actions using ColdBox annotations

  • Cascading Security - Hierarchical security rules from global to handler to action level

  • Functional API - Injectable security service for authorization checks in any application layer

  • Custom Validators - Each module can define its own security validator implementation

🔑 Authentication Flexibility

  • Multiple Authentication Providers - Works with cbauth, ColdFusion native authentication, or custom providers

  • Provider Agnostic - Implements standard interfaces allowing any authentication system integration

  • Basic Authentication - Built-in HTTP Basic Auth with credential storage

⚡ Security Response Handling

  • Granular Control - Distinguish between authentication failures and authorization denials

  • Customizable Actions - Configure different responses for invalid authentication vs. authorization

  • Event-Driven - Hook into security events for custom logging, monitoring, or response handling

📜 License

CBSecurity is open-source software licensed under the .

📚 Resources

📖 Documentation & Support

  • Documentation -

  • Source Code -

  • Issue Tracker -

  • Community Forum -

💬 Getting Help

The ColdBox community is active and ready to help:

  • Community Forum - Ask questions and share knowledge with other developers

  • GitHub Issues - Report bugs and request features

  • Professional Support - Enterprise support available through Ortus Solutions

🏢 Professional Open Source

CBSecurity is professionally developed and supported by , a leader in CFML consulting and development.

🚀 Enterprise Services

Ortus Solutions offers comprehensive professional services for CBSecurity and the ColdBox Platform:

  • 🛠️ Custom Development - Tailored security solutions for your specific requirements

  • 👨‍🏫 Professional Support & Mentoring - Expert guidance from the creators of ColdBox

  • 📚 Training - Official ColdBox and security training programs

  • 🔍 Architecture & Code Reviews - Expert evaluation of your security implementation


🙏 HONOR GOES TO GOD ABOVE ALL

Because of His grace, this project exists. If you don't like this, then don't read it; it's not for you.

"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God." Romans 5:5

Authorization Service - Functional security API for authorization checks across all application layers
JWT Token Management - Complete support for JWT access and refresh token workflows

⚡ Performance Optimization - Server tuning and application optimization

  • 🔐 Security Hardening - Comprehensive security audits and hardening services

  • Apache License 2.0
    https://coldbox-security.ortusbooks.com
    https://github.com/coldbox-modules/cbsecurity
    https://github.com/coldbox-modules/cbsecurity/issues
    https://community.ortussolutions.com/c/box-modules/cbsecurity/
    Ortus Solutions, Corp
    Learn more about our services
    CBSecurity Architecture - Module integration with cbstorages for flexible storage
    Ortus Solutions, Corp
    CBSecurity Logo
    CBSecurity Visualizer Interface

    Upgrade to 3.0.0

    CBSecurity 3 is a major release and it will require some updates in order for you to fully upgrade your previous versions.

    Adobe 2016, 2018 Support Dropped

    These engines are no longer supported

    JwtService Validator Deprecated

    In the previous releases the validator for JWT was JwtService@cbsecurity. This has now changed to JwtAuthValidator@cbsecurity. So make sure you update your configurations.

    CBAuthValidator Deprecated

    The CBAuthValidator has been renamed to just AuthValidator. This validator is now not cbauth focused but IAuthService focused. It also supports role and permission based authorization.

    Settings Structure

    The entire settings structure has been redesigned to support many features in a a more concise and block approach. All top-level settings have been removed and added to specific sections. Please review the section in detail to see where the new settings belongs to.

    What's New With 3.4.0

    June 14, 2023

    Added

    • Official Adobe 2023 Support

    • Gitflows for testing all engines and all versions of ColdBox

    What's New With 3.1.0

    2023-FEB-17

    Added

    • Added a new helper: createPassword() on the CBSecurity model to generate secure, random passwords with letters, symbols, and numbers.

    What's New With 3.2.0

    March 29, 2023

    Added

    • Migrations table for security logs

    • New bootsrap icons + css + js

    Added transientCache=false to auth User to avoid any issues when doing security operations

  • Added population control for auth User for extra security

  • Fixed

    • User auth was not serializing the id of the user in the mementifier config

    New github support files

    Fixed

    • getActionsReport() was not defaulting the type's structure, so exceptions would arise when there was no data in the visualizer

    Configuration

    cbcsrf Upgraded to version 3, which we missed in the previous release.

    Utility Methods

    What's New With 3.3.0

    March 31, 2023

    Added

    • Added guest() method to CBSecurity model and Authorizable delegate

    What's New With 3.4.3

    What's new with CBSecurity 3.4.3

    CBSecurity 3.4.3 is a maintenance release that addresses ColdBox 7 compatibility requirements.

    ColdBox 7 Compliance

    View Rendering Method Update

    The primary change in this release addresses a breaking change in ColdBox 7:

    • Fixed: Renamed renderView() to view() to be ColdBox 7 compliant

    • This change ensures CBSecurity works properly with ColdBox 7's updated view rendering methods

    • Maintains backward compatibility with earlier ColdBox versions

    System Requirements

    • ColdBox Framework: 6+ (ColdBox 7 compliant)

    • CFML Engines: Adobe ColdFusion 2018+, Lucee 5+

    • CommandBox: 5.0+

    Compatibility Notes

    This release maintains full backward compatibility with existing CBSecurity 3.x installations while ensuring forward compatibility with ColdBox 7.

    Migration Notes

    No migration steps are required for this release. Simply update your CBSecurity module dependency:

    Related Resources

    What's New With 3.4.2

    What's new with CBSecurity 3.4.2

    CBSecurity 3.4.2 is a maintenance release that addresses database compatibility issues and improves documentation standards.

    Database Compatibility Improvements

    Oracle Database Support

    • Fixed: Updated security logs columns to work with Oracle databases using clob data type

    • This enhancement ensures CBSecurity's logging functionality works seamlessly with Oracle database environments

    • Improves enterprise database compatibility for security audit trails

    Security Logs Configuration

    • Fixed: cbsecurity_logs table name is now properly referenced instead of being hard-coded

    • This change ensures the module setting for the logs table name is properly respected

    • Provides better flexibility for custom table naming conventions

    Documentation Improvements

    Markdown Rules Updates

    • Fixed: Updated markdown rules to eliminate duplicate headers

    • Improved documentation consistency and readability

    • Enhanced GitBook compatibility and navigation structure

    System Requirements

    • ColdBox Framework: 6+

    • CFML Engines: Adobe ColdFusion 2018+, Lucee 5+

    • CommandBox: 5.0+

    • Database: Any supported database (Oracle compatibility enhanced)

    Compatibility Notes

    This release maintains full backward compatibility with existing CBSecurity 3.x installations while improving database compatibility across different database engines.

    Migration Notes

    No migration steps are required for this release. Simply update your CBSecurity module dependency:

    Oracle Database Users

    If you're using Oracle and experiencing issues with security logs, this update will resolve column type compatibility issues. No manual database changes are required.

    Related Resources

    What's New With 3.0.0

    January 2023

    v3.x Release

    Compatibility

    • Dropped Adobe ColdFusion 2016

    • New JwtAuthValidator instead of mixing concerns with the JwtService. You will have to update your configuration to use this validator instead of the JwtService

    • All settings have changed. They are not single-level anymore. They are now grouped by functionality. Please see the area for the new approach.

    Added

    • New ability for the firewall to log all action events to a database table.

    • If enabled, a new visualizer can visualize all settings and firewall events via the log table.

    • New Basic Auth validator and basic auth user credentials storage system. This will allow you to secure apps where no database interaction is needed or required.

    Fixed

    • Disable lastAccessTimeouts for JWT CacheTokenStorage BOX-128

    • Fix spelling of property datasource on queryExecute that was causing a read issue.

    About This Book

    A little more info about this book

    The source code for this book is hosted on GitHub: . You can freely contribute to it and submit pull requests. The contents of this book are copyrighted by and cannot be altered or reproduced without the author's consent. All content is provided "As-Is" and can be freely distributed.

    • The majority of code examples in this book are done in cfscript.

    • The majority of code generation and running of examples are done via CommandBox: The ColdFusion (CFML) CLI, Package Manager, REPL - ​

    What's New With 3.4.1

    What's new with CBSecurity 3.4.1

    CBSecurity 3.4.1 is a targeted maintenance release that addresses a specific database compatibility issue with Microsoft SQL Server.

    Database Compatibility Fix

    Microsoft SQL Server Support

    Author

    About our authors

    Luis Fernando Majano Lainez

    Luis Majano is a Computer Engineer who has been developing and designing software systems since 2000. He was born in in the late 70s, during a period of economical instability and civil war. He lived in El Salvador until 1995 and then moved to Miami, Florida where he completed his Bachelor of Science in Computer Engineering at .

    He is the CEO of , a consulting firm specializing in web development, ColdFusion (CFML), Java development, and all open-source professional services under the ColdBox and ContentBox stack. He is the creator of ColdBox, ContentBox, WireBox, CommandBox, LogBox, and anything “BOX” and contributes to many open-source ColdFusion/Java projects. You can read his blog at

    External Trademarks & Copyrights

    Flash, Flex, ColdFusion, and Adobe are registered trademarks and copyrights of Adobe Systems, Inc.

    Notice of Liability

    The information in this book is distributed “as is” without warranty. The author and Ortus Solutions, Corp shall not have any liability to any person or entity concerning loss or damage caused or alleged to be caused directly or indirectly by the content of this training book, software, and resources described in it.

    Contributing

    We highly encourage contributions to this book and our open-source software. The source code for this book can be found in our GitHub repository, where you can submit pull requests.

    Charitable Proceeds

    10% of the proceeds of this book will go to charity to support orphaned kids in El Salvador - https://www.harvesting.org/. So please donate and purchase the printed version of this book; every book sold can help a child for almost two months.

    Shalom Children's Home

    Shalom Children’s Home is one of the ministries dear to our hearts in El Salvador. During the 12-year civil war that ended in 1990, many children were left orphaned or abandoned by parents who fled El Salvador. The Benners saw the need to help these children and received 13 children in 1982. Little by little, more children came on their own, churches and the government brought children to them for care, and the Shalom Children’s Home was founded.

    Shalom now cares for over 80 children in El Salvador, from newborns to 18 years old. They receive shelter, clothing, food, medical care, education, and life skills training in a Christian environment. A child sponsorship program supports the home.

    We have personally supported Shalom since; it is a place of blessing for many children in El Salvador who either have no families or have been abandoned. This is a good earth to seed and plant.

    https://github.com/ortus-docs/cbsecurity-docs
    Ortus Solutions, Corp
    https://www.ortussolutions.com/products/commandbox
    New global and rule action:
    block
    and the firewall will block the request with a 401 Unauthorized page.
  • New event cbSecurity_onFirewallBlock announced whenever the firewall blocks a request into the system with a 403.

  • DBTokenStorage now rotates using the async scheduler and not direct usage anymore.

  • Ability to set the cbcsrf module settings into the cbsecurity settings as csrf.

  • We now default the user service class and the auth token rotation events according to the user authentication service (cbauth, etc.); no need to duplicate work.

  • New rule-based IP security. You can add a allowedIPs key into any rule and add which IP Addresses are allowed into the match. By default, it matches all IPs.

  • New rule-based HTTP method security. You can add a httpMethods key into any rule and add which HTTP methods are allowed into the match. By default, it matches all HTTP Verbs.

  • New securityHeaders configuration to allow a developer to protect their apps from common exploits: XSS, HSTS, Content Type Options, host header validation, IP validation, clickjacking, non-SSL redirection, and much more.

  • The security firewall now stores the authenticated user according to the prcUserVariable on authenticated calls via preProcess() no matter the validator used

  • Dynamic Custom Claims: You can pass a function/closure as the value for a custom claim, and it will be evaluated at runtime, passing in the current claims before being encoded

  • Allow passing in custom refresh token claims to attempt() and fromUser() and refreshToken() : refreshCustomClaims

  • Added TokenInvalidException and TokenExpiredException to the refreshToken endpoint

  • Configuration
    CBSecurity Documentation
    Source Code
    Issue Tracker
    ColdBox Framework
    CBSecurity Documentation
    Source Code
    Issue Tracker
    Database Configuration Guide
  • Fixed: Added proper parenthesis on TOP statements for Microsoft SQL Server in the DBLogger

  • This fix resolves SQL syntax errors that were occurring when using CBSecurity's database logging features with MSSQL Server

  • Thanks to @irvirv for identifying and helping resolve this issue

  • System Requirements

    • ColdBox Framework: 6+

    • CFML Engines: Adobe ColdFusion 2018+, Lucee 5+

    • CommandBox: 5.0+

    • Database: Any supported database (MSSQL Server compatibility enhanced)

    Compatibility Notes

    This release maintains full backward compatibility with existing CBSecurity 3.x installations while fixing a specific SQL syntax issue affecting Microsoft SQL Server users.

    Migration Notes

    No migration steps are required for this release. Simply update your CBSecurity module dependency:

    Microsoft SQL Server Users

    If you're using Microsoft SQL Server and experiencing SQL syntax errors in the DBLogger, this update will resolve those issues. No manual database changes are required.

    Related Resources

    • CBSecurity Documentation

    • Source Code

    • Issue Tracker

    • Database Configuration Guide

    # Update to latest version
    box update cbsecurity
    
    # Or install specific version
    box install [email protected]
    # Update to latest version
    box update cbsecurity
    
    # Or install specific version
    box install [email protected]
    # Update to latest version
    box update cbsecurity
    
    # Or install specific version
    box install [email protected]

    Luis is passionate about Jesus, tennis, golf, volleyball, and anything electronic. Random Author Facts:

    • He played volleyball in the Salvadorean National Team at the tender age of 17

    • The Lord of the Rings and The Hobbit are his favorite books(Geek!)

    • His first ever computer was a Texas Instrument TI-86 that his parents gave him in 1986. After some time digesting his very first BASIC book, he had written his own tic-tac-toe game at the age of 9. (Extra geek!)

    • He has a geek love for circuits, microcontrollers, and overall embedded systems.

    • He has, of late (during old age), become a fan of organic gardening.

    Keep Jesus number one in your life and in your heart. I did and it changed my life from desolation, defeat and failure to an abundant life full of love, thankfulness, joy and overwhelming peace. As this world breathes failure and fear upon any life, Jesus brings power, love and a sound mind to everybody!

    “Trust in the LORD with all your heart, and do not lean on your own understanding.” Proverbs 3:5

    Contributors

    Will de Bruin

    Brad Wood

    San Salvador, El Salvador
    Florida International University
    Ortus Solutions
    www.luismajano.com

    What's New With 3.5.0

    What's new with CBSecurity 3.5.0

    CBSecurity 3.5.0 is a significant modernization release that brings enhanced platform support, improved development workflows, and comprehensive AI assistance capabilities.

    BoxLang Certification

    CBSecurity 3.5.0 has been fully certified for BoxLang, the modern dynamic JVM language. This includes:

    • Complete compatibility testing with BoxLang runtime

    • Validated functionality across all CBSecurity features

    • Updated examples and documentation for BoxLang syntax

    • Full test harness coverage for BoxLang environments

    ColdBox 8 Support

    This release adds official support and certification for ColdBox 8, ensuring CBSecurity works seamlessly with the latest ColdBox framework features and improvements.

    Enhanced Development Workflows

    GitHub Actions Updates

    The project has migrated to modern GitHub Actions workflows, providing:

    • Improved CI/CD pipeline reliability

    • Better cross-platform testing coverage

    • Automated testing across multiple CFML engines

    • Enhanced security scanning and dependency management

    Test Harness Improvements

    The test harness has been significantly upgraded to provide:

    • Better local development experience

    • Enhanced integration testing capabilities

    • Improved TestBox runner configuration

    • Streamlined server startup and configuration

    AI-Powered Development Assistance

    GitHub Copilot Instructions

    CBSecurity 3.5.0 introduces comprehensive AI assistance through:

    • .github/copilot-instructions.md - Detailed guidance for AI agents covering:

      • Module architecture and component relationships

      • Security validator patterns and implementation

      • Interceptor flow and event handling

    This enhancement enables AI tools like GitHub Copilot to provide more accurate and contextual assistance when working with CBSecurity.

    Developer Experience Improvements

    Documentation Enhancements

    • Documented test-harness structure and usage patterns

    • Enhanced TestBox runner details for local integration testing

    • Improved developer workflow documentation

    • Better guidance for module extension and customization

    Local Development Setup

    The release includes improved documentation and tooling for:

    • Setting up local development environments

    • Running integration tests via test-harness/tests/runner.cfm

    • Using box.json scripts for common development tasks

    • Server configuration for different CFML engines

    System Requirements

    • ColdBox Framework: 6+ (ColdBox 8 certified)

    • CFML Engines: BoxLang 1+ (Preferred), Lucee 5+, Adobe 2023+

    • CommandBox: 5.0+

    Compatibility Notes

    This release maintains full backward compatibility with existing CBSecurity 3.x installations. No breaking changes have been introduced.

    Migration Notes

    No migration steps are required for this release. Simply update your CBSecurity module dependency:

    Related Resources

  • Development workflows and best practices

  • Test harness setup and TestBox runner details

  • CBSecurity Documentation
    Source Code
    Issue Tracker
    BoxLang Documentation
    # Update to latest version
    box update cbsecurity
    
    # Or install specific version
    box install [email protected]