All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
The public API of this library consists of all public or protected methods, properties and constants belonging to the src
folder.
As far as possible, we try to adhere to Symfony guidelines when deciding whether a change is a breaking change or not.
3.2.0 - 2024-10-23
- Add protected
buildRequestRawBody
helper method toAbstractBouncer
class
3.1.0 - 2024-10-18
- Update
crowdsec/remediation-engine
dependency tov3.5.0
(appsec_max_body_size_kb
andappsec_body_size_exceeded_action
settings)
3.0.0 - 2024-10-04
- Add AppSec support
- Add
use_appsec
configuration
- Breaking change: Add abstract methods that must be implemented to use AppSec:
getRequestHost
getRequestHeaders
getRequestRawBody
getRequestUserAgent
bounceCurrentIp
method asks for AppSec remediation ifuse_appsec
is true and IP remediation isbypass
- Update
crowdsec/common
dependency tov2.3.0
- Update
crowdsec/remediation-engine
dependency tov3.4.0
- Breaking change: Remove
DEFAULT_LAPI_URL
constant as it already exists incrowdsec/lapi-client
package
2.2.0 - 2024-06-20
- Change the visibility of
AbstractBouncer::getBanHtml
andAbstractBouncer::getCaptchaHtml
toprotected
to enable custom html rendering implementation
2.1.0 - 2023-12-14
- Update
gregwar/captcha
from1.2.0
to1.2.1
and remove override fixes - Update
crowdsec/common
dependency tov2.2.0
(api_connect_timeout
setting) - Update
crowdsec/remediation-engine
dependency tov3.3.0
(api_connect_timeout
setting)
2.0.0 - 2023-04-13
- Update
gregwar/captcha
from1.1.9
to1.2.0
and remove some override fixes
- Remove all code about standalone bouncer
1.4.0 - 2023-03-30
- Do not rotate log files of standalone bouncer
1.3.0 - 2023-03-24
- Use
crowdsec/remediation-engine
^3.1.1
instead of^3.0.0
- Use Redis and PhpFiles cache without cache tags
1.2.0 - 2023-03-09
- Use
crowdsec/remediation-engine
^3.0.0
instead of^2.0.0
- Add a script to prune cache with a cron job (Standalone bouncer)
1.1.1 - 2023-02-16
- Fix log messages for captcha remediation
1.1.0 - 2023-02-16
- Add more log messages during bouncing process
1.0.1 - 2023-02-10
- Update
AbstractBouncer::testCacheConnection
method to throw an exception for Memcached if necessary
1.0.0 - 2023-02-03
- Change version to
1.0.0
: first stable release - Update
crowdsec/remediation-engine
to a new major version 2.0.0 - Use
crowdsec/common
package as a dependency for code factoring
- Add public API declaration
0.36.0 - 2023-01-26
- Breaking changes: All the code has been refactored to use
crowdsec/remediation-engine
package:- Lot of public methods have been deleted or replaced by others
- A bouncer should now extend an
AbstractBouncer
class and implements some abstract methods - Some settings names have been changed
0.35.0 - 2022-12-16
- Set default timeout to 120 and allow negative value for unlimited timeout
0.34.0 - 2022-11-24
- Do not cache bypass decision in stream mode
- Replace unauthorized chars by underscore
_
in cache key
- Add compatibility with PHP 8.2
- Fix decision duration parsing when it uses milliseconds
0.33.0 - 2022-11-10
- Do not use tags for
memcached
as it is discouraged
- In stream mode, a clean IP decision (
bypass
) was not cached at all. The decision is now cached for ten years as expected
0.32.0 - 2022-09-29
- Refactor for coding standards (PHPMD, PHPCS)
0.31.0 - 2022-09-23
- Use Twig as template engine for ban and captcha walls
0.30.0 - 2022-09-22
- Update
symfony/cache
andsymfony/config
dependencies requirement
0.29.0 - 2022-08-11
- Add TLS authentication feature
0.28.0 - 2022-08-04
- Breaking change: Rename
ClientAbstract
class toAbstractClient
- Hide
api_key
in log
- Add
disable_prod_log
configuration
0.27.0 - 2022-07-29
- Breaking change: Modify
getBouncerInstance
andinit
signatures
- Fix wrongly formatted range scoped decision retrieving
- Fix cache updated decisions count
0.26.0 - 2022-07-28
- Breaking change: Modify all constructors (
Bouncer
,ApiCache
,ApiClient
,RestClient
) to use only configurations and logger as parameters - Use
shouldBounceCurrentIp
method of Standalone before bouncer instantiation - Breaking change: Modify
initLogger
method
0.25.0 - 2022-07-22
- Add a
use_curl
setting to make LAPI rest requests withcURL
instead offile_get_contents
0.24.0 - 2022-07-08
- Add a
configs
attribute to Bouncer class
0.23.0 - 2022-07-07
- Add test configuration to mock IPs and proxy behavior
0.22.1 - 2022-06-03
- Handle custom error handler for Memcached tag aware adapter
0.22.0 - 2022-06-02
- Add configurations for captcha and geolocation variables cache duration
- Breaking change: Use cache instead of session to store captcha and geolocation variables
- Breaking change: Use symfony cache tag adapter
- Change
geolocation/save_in_session
setting intogeolocation/save_result
- Fix deleted decision count during cache update
0.21.0 - 2022-04-15
- Change allowed versions of
symfony/cache
package
0.20.1 - 2022-04-07
- Handle old lib version (
< 0.14.0
) settings values retro-compatibility for Standalone bouncer
- Fix
AbstractBounce:displayCaptchaWall
function
0.20.0 - 2022-03-31
- Require a minimum of 1 for
clean_ip_cache_duration
andbad_ip_cache_duration
settings - Do not use session for geolocation if
save_in_session
setting is not true.
0.19.0 - 2022-03-24
- Add
excluded_uris
configuration to exclude some uris (was hardcoded to/favicon.ico
)
- Change the redirection after captcha resolution to
/
(was$_SERVER['REQUEST_URI']'
)
- Fix Standalone bouncer session handling
0.18.0 - 2022-03-18
- Breaking change: Change
trust_ip_forward_array
symfony configuration node to an array of array.
0.17.1 - 2022-03-17
- Remove testing scripts for quality gate test
0.17.0 - 2022-03-17
- Breaking change: Refactor some logic of important methods (
init
,run
,safelyBounce
,getBouncerInstance
) - Breaking change: Change the configurations' verification by using
symfony/config
logic whenever it is possible - Breaking change: Change scripts path, name and content (specifically auto-prepend-file' scripts and settings)
- Breaking change: Change
IBounce
interface - Breaking change: Rename
StandAloneBounce
class byStandaloneBounce
- Rewrite documentations
- Fix
api_timeout
configuration
- Remove all unmaintained test and development docker files, sh scripts and associated documentation
- Remove
StandaloneBounce::isConfigValid
method as all is already checked
0.16.0 - 2022-03-10
- Add geolocation feature to get remediation from
Country
scoped decisions (using MaxMind databases) - Add end-to-end tests GitHub action
- Add GitHub action to check links in markdown and update TOC
- Breaking change: Remove
live_mode
occurrences and usestream_mode
instead - Change PHP scripts for testing examples (auto-prepend, cron)
- Update docs
- Fix debug log in
no-dev
environment - Fix empty logs in Unit Tests
0.15.0 - 2022-02-24
- Add tests for PHP 8.1 (memcached is excluded)
- Add GitHub action for Release process
- Add
CHANGELOG.md
- Use
BouncerException
for some specific errors
- Fix auto-prepend script: set
debug_mode
anddisplay_errors
values before bouncer init - Fix
gregwar/captcha
for PHP 8.1 - Fix BouncerException arguments in
set_error_handler
method
- Remove
composer.lock
file
0.14.0 - 2021-11-18
- Breaking change: Fix typo in constant name (
boucing
=>bouncing
) - Allow older versions of symfony config and monolog
- Split debug logic in 2 : debug and display
- Redirect if captcha is resolved
- Update doc and scripts
0.13.3 - 2021-09-21
- Fix session handling with standalone library
0.13.2 - 2021-08-24
- Handle invalid ip format
0.13.1 - 2021-07-01
- Close php session after bouncing
0.13.0 - 2021-06-24
- Fix standalone mode
0.12.0 - 2021-06-24
- Add standalone mode
0.11.0 - 2021-06-24
- Add a
Bounce
class to simplify specific implementations - Add a
Standalone
implementation of theBounce
class
0.10.0 - 2021-01-23
- Add Ipv6 support
0.9.0 - 2021-01-13
- Add custom remediation templates
0.8.6 - 2021-01-05
- Fix version bump
0.8.5 - 2021-01-05
- Fix memcached edge case with long duration cache (unwanted int to float conversion)
0.8.4 - 2020-12-26
- Fix fallback remediation
0.8.3 - 2020-12-24
- Do not set expiration limits in stream mode
0.8.2 - 2020-12-23
- Fix release process
0.8.1 - 2020-12-22
- Fix release process
0.8.0 - 2020-12-22
- Add redis+memcached test connection
0.7.0 - 2020-12-22
- Make crowdsec mentions hidable
- Add phpcs
- Update doc
- Make a lint pass
- Fix fallback remediation
0.6.0 - 2020-12-20
- Remove useless dockerfiles
0.5.2 - 2020-12-19
- Update docs
0.5.1 - 2020-12-19
- Make a lint pass
0.5.0 - 2020-12-19
- Add cache expiration for bad ips
- Include the GregWar Captcha generation lib
- Build nice 403 and captcha templates
- Log captcha resolutions
- Use the latest CrowdSec docker image
- Use the "context" psr log feature for all logs to allow them to be parsable.
- Remove useless predis dependence
0.4.4 - 2020-12-15
- Improve logging
0.4.3 - 2020-12-13
- Improve logging
0.4.2 - 2020-12-12
- Fix durations bug
0.4.1 - 2020-12-12
- Use GitHub flow
0.4.0 - 2020-12-12
- Add release drafter
- Reduce cache durations
- Add remediation fallback
0.3.0 - 2020-12-09
- Set PHP Files cache adapter as default
- Replace phpdoc template with phpdocmd
- Improve documentation add examples and a complete guide.
- Auto warmup cache
0.2.0 - 2020-12-08
- Initial release