- Bump README version references to 2.1.0 ahead of release (#106): Updated the
README.mdto reflect the new library version, 2.1.0, aligning with upcoming release plans. - Make TurnstileCaptchaFilter opt-in (#106): The
TurnstileCaptchaFilteris now registered conditionally based onds.cf.turnstile.login.enabledbeing set totrue. This is an opt-in feature which previously was always included, even if not configured.
- Health Indicator Details and Reporter Registration (#106): Improved
TurnstileHealthIndicatorto reportusingTestCredentialsalongside its counters and fixed issues with health indicator test names. - Move Startup Checks to a Reporter Bean (#106): Ensured that startup warnings for missing secrets, URLs, or test credentials always surface, even if a consumer uses custom implementations of service beans.
- Property Binding Fix for TurnstileCaptchaFilter (#106): Properties for the
TurnstileCaptchaFilterare now managed throughTurnstileConfigPropertiesinstead of using@Valueplaceholders. This fixes issues with relaxed binding failing on property names.
- TurnstileCaptchaFilter Registration (#106): Before version 2.1.0, the filter was registered automatically. It's now opt-in, meaning applications must set
ds.cf.turnstile.login.enabled=trueto use this filter.
- Release Notes for 2.1.0 (#106): Comprehensive notes documenting behavior changes, new features, and fixes in version 2.1.0 are now available.
- Feature Documentation Updates in README (#106): Added a section explaining the feature to detect Cloudflare test credentials, and detailed documentation regarding the opt-in nature of
TurnstileCaptchaFilter.
- Additional Tests for Override Behaviors (#106): New tests have been added to ensure beans like
TurnstileValidationServiceandturnstileRestClientcan be correctly overridden by user implementations without causing conflicts.
-
Dependency Updates:
- Bumped various dependencies, including
org.junit.jupiter:junit-jupiterfrom 6.0.3 to 6.1.2, andgradle-wrapperseries updates from 9.4.0 up to 9.6.1. These updates improve stability and add minor features without breaking existing functionalities. - Increased
springBootVersionincrementally from 4.0.6 to 4.1.0, allowing access to new Spring Boot improvements.
- Bumped various dependencies, including
-
DevOps:
- Updated dependencies used by other tools such as Gradle plugins for maintaining smooth build processes (
com.github.ben-manes.versionsandcom.vanniktech.maven.publish).
- Updated dependencies used by other tools such as Gradle plugins for maintaining smooth build processes (
- Log Level Comparison Adjustment (#106): Addressed PMD warnings by comparing the log levels with
.equals(), enhancing code quality and maintaining best programming practices.
This changelog is designed to provide clear insights into the latest improvements, fixes, and changes in version 2.1.0, enabling developers and users to understand what's new and what needs attention before upgrading.
-
Workflow Enhancements: Added two new GitHub Actions workflows for improved code management:
- Claude Code Review Workflow: Automated code review using Claude, triggered by various pull request events. (Commit: a0dbe7e4, Commit: 4fd6c6d6)
- Claude PR Assistant Workflow: Provides automated support for pull request management and issue comments tagged with
@claude. (Commit: a0dbe7e4, Commit: cf70e2d8)
-
Dependency Updates:
- Lombok: Updated
org.projectlombok:lombokfrom 1.18.42 to 1.18.44 and subsequently to 1.18.46. This update may include minor improvements or bug fixes as captured by the project changelog. (Commit: 1299aa43, Commit: f60d848a) - JUnit: Updated
org.junit.jupiter:junit-jupiterfrom 6.0.1 progressively to 6.0.2, then to 6.0.3, enhancing test capabilities with the latest patches and features. (Commit: f9694ea8, Commit: ea331304) - Spring Boot: Improved application performance and stability by updating
springBootVersionstarting from 4.0.3 to 4.0.6 across several commits. (Commit: 4f9228ee, Commit: 90c7af0b) - Gradle Wrapper: Bumped
gradle-wrapperfrom 8.14.1 to 9.3.0, later on updated to 9.4.0, supporting latest Gradle build enhancements and fixes. (Commit: 5eba1876, Commit: a2ff0dfa)
- Lombok: Updated
-
New Verifications: Added
context7.jsonwhich seems to act as a verification configuration, likely for service integration or API use. (Commit: a8db7235)
- Micrometer Integration Issue: Resolved
NoClassDefFoundErrorrelated to Micrometer absence by introducing optional Micrometer support. Updates include:- New
TurnstileMetricsinterface and various implementations, ensuring graceful fallback to no-op metrics when Micrometer is not available. - Regression tests to avoid future issues and confirm functionality without Micrometer. (Commit: 7a390a1c)
- New
- No explicit breaking changes indicated in the provided commit data, indicating backward-compatible updates across versions.
- Turnstile Validation Service Refactoring: Removed direct Micrometer imports, using the new abstraction interface
TurnstileMetricsto handle optional metrics recording. The refactoring improved modularity and load-time decisions related to Micrometer presence. (Commit: 7a390a1c)
- Optional Micrometer Dependency Fix Plan: Specific documentation created detailing the fix approach to address issue #94, outlining strategy and steps in
2026-05-01-optional-micrometer-fix.md. (Commit: 7a390a1c)
- Added comprehensive tests like
MicrometerTurnstileMetricsTestandTurnstileMetricsWiringTestto ensure new metrics integration works as intended and validates the absence paths for environments without Micrometer. (Commit: 7a390a1c)
- Version Management Enhancements: Via Dependabot, various core library updates including
com.github.ben-manes.versionsandcom.vanniktech.maven.publishwere automated, keeping dependencies up-to-date and reducing manual oversight. (Commit: be9e9cc2, Commit: 38f4d555)
This changelog encapsulates important development updates in a structured format, giving clear insight into key application improvements, operational fixes, and development process enhancements.
- The project has been updated for compatibility with Spring Boot 4.0.x, marking the release of version 2.0.0.
- Introduced a version compatibility matrix to the README to clearly document which library version to use based on Spring Boot version. Library version 2.0.x is for Spring Boot 4.0.x, considered the current version.
- Updated annotations for JUnit Jupiter to support version 6.0.x, as well as upgrades for Mockito with the introduction of the
@MockitoBeanannotation. - Version numbers in the README for dependency examples were updated to reflect the new 2.0.0 release.
- Updated
gradle.propertiesto version2.0.0-SNAPSHOT, preparing for the official 2.0.0 release.
- Documentation improvement in the README to include all configuration properties for the Turnstile API, such as
url,connect-timeout,read-timeout, and filter properties likelogin.submissionPath,login.redirectUrl, andtoken.parameterName. This ensures better guidance for users setting up the library. - Changed the Java code example in the README from field injection to constructor injection using
@RequiredArgsConstructor, following best practices and promoting better code maintainability.
- As part of the Spring Boot 4.0 upgrade, several important API endpoints and packages have been reorganized due to modularization efforts:
ConditionalOnEnabledHealthIndicatormoved toorg.springframework.boot.health.autoconfigure.contributor.MeterRegistryCustomizermoved toorg.springframework.boot.micrometer.metrics.autoconfigure.HealthandHealthIndicatormoved toorg.springframework.boot.health.contributor.
- Developers need to update their import statements to these new package paths.
- Added a comprehensive entry for the 2.0.0 release in the
CHANGELOG.md, and a badge for Spring Boot 4.0.x in the README header. - Added a version compatibility table for clarity regarding which library version corresponds with which Spring Boot version, reducing confusion for developers.
- Updated
org.junit.jupiter:junit-jupiterfrom 6.0.0 to 6.0.1 for improved test stability and features. - Upgraded the Spring Boot dependency from version 3.5.7 to 4.0.1, marking this a major release improvement.
- Updated
com.vanniktech.maven.publishplugin from 0.34.0 to 0.35.0, ensuring better publication processes and alignment with the latest tooling features.
- Updated Claude configuration in
.claude/settings.local.jsonto include additional Bash scripts and fetch capabilities, enabling enhanced integration and operations for the development environment.
These changes illustrate a major upgrade and compatibility overhaul, focusing on long-term maintainability, documentation clarity, and support for modern Spring Boot environments. Developers should thoroughly review the breaking changes, especially around Spring Boot's modularization, to align their projects with these updates.
- Spring Boot 4.0.x Upgrade
- This release requires Spring Boot 4.0.0 or later
- Users on Spring Boot 3.5.x should use version 1.3.x (maintenance branch:
spring-boot-3.x)
- Spring Boot 4.0 Compatibility
- Updated actuator health indicator imports to
org.springframework.boot.health.contributorpackage - Full compatibility with Jackson 3.x (core annotations remain backward compatible)
- JUnit Jupiter 6.0.x test framework support
- Updated to
@MockitoBeanannotation (replacing deprecated@MockBean)
- Updated actuator health indicator imports to
- Version Compatibility Matrix
- Added clear version compatibility table to README
- Documents which library version to use based on Spring Boot version
- Updated dependency examples to version 2.0.0
- Maintenance Branch Created
- Created
spring-boot-3.xbranch for Spring Boot 3.5.x users - Tagged v1.3.0 as the final Spring Boot 3.5.x release
- Created
- Enhanced Turnstile Service Configuration and Validation (Commit: 91743a8e)
- TurnstileServiceConfig: Added support for
MeterRegistryto allow better integration with metrics tracking systems. - TurnstileValidationService: Improved IP address extraction by utilizing a more extensive and robust header check.
- TurnstileResponse: Introduced
@JsonProperty("challenge_ts")for direct JSON mapping of challenge timestamps. - turnstile.properties: Updated comments for clearer configuration of
sitekeyandsecret, advising environment customization.
- TurnstileServiceConfig: Added support for
- Turnstile Service Configuration and Dependency Updates (Commit: 886d12bf)
- Removed unnecessary
RestTemplatesetup fromTurnstileServiceConfig. - Enhanced logging in
TurnstileValidationServiceto confirm secret configuration status. - Updated
README.mdto reflect new dependency versions, ensuring up-to-date integration instructions. - Refined IP validation, cleaning remote IP assignments, ensuring null or empty strings are managed correctly.
- Adjusted code and style rules to maintain code quality consistency.
- Removed unnecessary
- Compatibility with Vanniktech Maven Publish Plugin 0.34.0 (Commit: 1aaefea4)
- Deprecated usage of
SonatypeHostremoved in favor of configuration viagradle.properties. - gradle.properties: Introduced
mavenCentralPublishingandmavenCentralAutomaticPublishingproperties to align with new plugin expectations.
- Deprecated usage of
- AI Agent Setup and Project Guidelines (Commit: ad46b8ad)
- Added
.claude/settings.local.jsonto manage AI agent permissions and actions within the repository. - Created
AGENTS.mdwith detailed guidance on project structure, coding standards, testing practices, and repository guidelines to support contributors.
- Added
- Dependency Updates:
- Automated updates of
org.junit.jupiter:junit-jupiterfrom versions 5.13.1 to 5.13.4, ensuring developers have access to the latest JUnit features and fixes (Commits: fabff8fe, 63709833, 4bb4ba1f). - Upgraded
org.projectlombok:lombokto 1.18.40 for potential improvements in Lombok's annotation processing (Commit: 4742a9e1).
- Automated updates of
This changelog captures significant improvements to Turnstile service validation, introduces necessary configuration updates for the Maven publish plugin compatibility, adds helpful documentation for repository maintenance and usage, all while keeping dependencies current and addressing minor bug fixes.
-
Enhance testing configuration: Added annotation processor
org.springframework.boot:spring-boot-configuration-processorfor improved processing of Spring Boot configurations during tests. Additionally, ensured theuseJUnitPlatform()configuration for better JUnit 5 support and updated test dependencies to enhance testing capabilities. [Commit 7789dbee] -
CI/CD and code quality tools: Implemented GitHub Actions workflows to support automated builds, testing, and quality checks. These include workflows for building and testing on multiple Java versions (Java 17 and 21), dependency review for security vulnerabilities, and CodeQL for security analysis. Integrated code quality tools using Gradle plugins: Checkstyle for code style enforcement, PMD for detecting code issues, and JaCoCo for code coverage analysis. [Commit 8115c34d]
-
Create
codeql.yml: Added a new GitHub Actions workflow to perform CodeQL analysis on pushes, pull requests, and weekly schedules, strengthening the project's security posture. [Commit ea13cfd0]
- Turnstile service enhancement: Improved Turnstile service by implementing new test cases, updating the PMD and Checkstyle configurations, and refactoring validation service tests for improved clarity. Included JUnit 5 dependencies to enhance the testing framework and updated Gradle wrapper to version 8.14.1 for improvements in build system robustness. [Commit b089d625]
- None identified in the provided information.
- None explicitly identified, but substantial test refactoring and service enhancements were addressed as part of the Turnstile service improvement.
- Version Update in README: Updated README.md to reflect the new version 1.1.8 of the
ds-spring-cf-turnstilelibrary to ensure users refer to the latest library version. Added Maven Central, License, and Java Version badges for better informational display. [Commits 8b36ae21, 048cd847]
- Enhanced Test Configurations: Added Lombok annotation processor specifically for test compilation to facilitate comprehensive test generation and execution. Implemented the
useJUnitPlatform()setting to utilize JUnit 5 effectively within the testing suite. [Commit 7789dbee]
-
Dependency Upgrades: Executed multiple dependency upgrades for improved compatibility and newer features, including upgrading
org.junit.jupiter:junit-jupiterfrom 5.12.2 to 5.13.1, andcom.vanniktech.maven.publishfrom 0.31.0 to 0.33.0. Spring Boot version was incrementally updated through versions 3.4.3 to 3.5.3 for enhanced security and features. [Commits 29bd16ab, 778c68b7, 0d5ae342, 0b12e213] -
Gradle Wrapper Upgrades: Gradle wrapper versions were updated through several updates from 8.12.1 to 8.14.1 for enhanced features and performance in builds. [Commits 3d337b0e, 3deb5006, b089d625]
This changelog captures the essence of substantial changes, improvements, and critical updates to the overall project infrastructure, dependencies, testing, and code quality tools. The focus remains on explaining the pivotal changes in user-centric terms and highlighting updates that directly impact end-users and developers interacting with the repository.
- A new
CLAUDE.mdfile was created to document build commands and code style guidelines. - Provides commands for building, testing on specific JDK versions, running single tests, and publishing locally.
- Establishes Java code style guidelines, including Java 17+ compatibility, Lombok annotations usage, documentation requirements, and package naming conventions.
- Specifies best practices for dependency injection, exception handling, and consistent code formatting. (commit 5de32522)
- Introduced
TurnstileCaptchaFilterto validate captcha tokens during Spring Security form login submissions. - Configuration properties allow customization of login submission paths, redirect URLs, and token parameter names.
- Provides integration instructions with Spring Security Setup for streamlined captcha validation. (commits 29db7fba)
- Implemented Spring Actuator metrics for validation counts, success/failure rates, and response times.
- Added health check to monitor Cloudflare connectivity, configurable via the application properties.
- Supports Micrometer metrics for integration with monitoring systems like Prometheus and Grafana. (commits 24583689, 57516314)
- Added multiple custom exception classes for various error scenarios.
- Introduced
ValidationResultclass for detailed validation error reporting. - Enhanced
TurnstileValidationServiceto categorize and handle different error types, maintaining backward compatibility. (commits 2a45c40e, 306bc141)
- Corrected a method name typo in
TurnstileValidationServicefor improved code clarity and usage. - Deprecated the old method while ensuring backward compatibility. (commits e0880f76, f03e68bb)
- Created
CONTRIBUTING.mdwith guidelines for contributors. - Enhanced existing documentation with additional security best practices and architecture overview.
- Fixed and updated the license information in the
READMEto Apache 2.0 and added security best practices. (commits 7e79b31f, 64199aa4)
- Introduced comprehensive
LICENSE.mdandLICENSE.txtfiles conveying Apache License 2.0 terms. (commits 7e79b31f, 1e166f07)
- Enhanced tests for
TurnstileValidationService, ensuring coverage for new error handling and input validation scenarios. - Confirmed validation logic processes null, empty, and short tokens as well as remote IP address issues. (commits 2ac832ac)
- Bumped
springBootVersionto 3.4.3 and updatedcom.vanniktech.maven.publishandcom.github.ben-manes.versionsplugins versions for better compatibility and functionality. (commits 494ee82c, 63dc315e) - Updated Gradle wrapper properties to version 8.12.1 for overall build tool enhancements. (commit 6ba0ef13)
This changelog focuses on summarizing significant feature additions, fixes, and other enhancements for easy reference by developers and users alike. For detailed code reviews, refer to individual commit messages and linked pull requests.
Based on the commit messages, the changelog would be:
- Updated to version 1.1.7.
- Dependencies for post-release tasks added.
- Commented out the dependency on publishReposilite in the afterReleaseBuild task to prevent issues during the build.
- None in this release. There were no breaking changes based on the commit messages provided.
- Gradle Release Plugin has been updated to a new version: '1.1.7-SNAPSHOT'.
- Updated build.gradle by commenting out the version and adding dependencies necessary for post-release tasks.
- PublishReposilite dependency in task "afterReleaseBuild" has been commented out, which may disrupt build processes depending on it.
Based on the commit messages, here is the changelog:
- None
- Updated version in gradle.properties for consistency
- Bump version to 1.1.6 in gradle.properties
- None
- Added versioning information in
gradle.properties. - Added Spring Boot web starter as a test implementation dependency.
- Changelog generation script added, along with an update in build configuration for publishing.
- Fixed Python command in changelog generation task for better compatibility.
- Updated changelog generation command now uses 'mise' for better compatibility.
- Dependency management plugin and Spring Boot version updated, changed implementation to
compileOnlyfor web starter.
- Bumped org.projectlombok:lombok from version 1.18.34 to 1.18.36.
- Bumped org.springframework.boot from version 3.3.4 to version 3.3.5, and then to version 3.4.0. This substantial version update may cause breaking changes.
- README document was updated, which may affect users who refer to it for usage or installation instructions.