Releases: devondragon/SpringUserFramework
3.5.1
What's Changed
- Feature/password validation fixes by @devondragon in #226
- Add Claude Code GitHub Workflow by @devondragon in #227
Full Changelog: 3.5.0...3.5.1
3.5.0
What's Changed
- Bump org.projectlombok:lombok from 1.18.38 to 1.18.40 by @dependabot[bot] in #212
- Bump org.projectlombok:lombok from 1.18.40 to 1.18.42 by @dependabot[bot] in #213
- Bump org.assertj:assertj-core from 3.27.4 to 3.27.5 by @dependabot[bot] in #216
- Bump org.springframework.boot from 3.5.5 to 3.5.6 by @dependabot[bot] in #214
- Bump com.google.guava:guava from 33.4.8-jre to 33.5.0-jre by @dependabot[bot] in #215
- Add Password Policy Functionality by @Edamijueda in #217
- Bump com.github.ben-manes.versions from 0.52.0 to 0.53.0 by @dependabot[bot] in #221
- Bump com.h2database:h2 from 2.3.232 to 2.4.240 by @dependabot[bot] in #219
- Bump com.icegreen:greenmail from 2.1.5 to 2.1.6 by @dependabot[bot] in #220
- Bump org.assertj:assertj-core from 3.27.5 to 3.27.6 by @dependabot[bot] in #222
- Bump com.icegreen:greenmail from 2.1.6 to 2.1.7 by @dependabot[bot] in #223
- Bump version to 3.5.0-SNAPSHOT; add VS Code Java home settings; use A… by @devondragon in #225
Full Changelog: 3.4.1...3.5.0
3.4.1
What's Changed
- Fix NPE in audit logging when user ID is null by @devondragon in #211
Full Changelog: 3.4.0...3.4.1
3.4.0
What's Changed
- Bump org.springframework.boot from 3.5.3 to 3.5.4 by @dependabot[bot] in #195
- Bump org.testcontainers:testcontainers from 1.19.3 to 1.21.3 by @dependabot[bot] in #196
- Bump springBootVersion from 3.5.3 to 3.5.4 by @dependabot[bot] in #197
- Bump org.assertj:assertj-core from 3.24.2 to 3.27.3 by @dependabot[bot] in #198
- Bump io.rest-assured:rest-assured from 5.3.2 to 5.5.5 by @dependabot[bot] in #199
- Bump org.awaitility:awaitility from 4.2.0 to 4.3.0 by @dependabot[bot] in #200
- Bump com.tngtech.archunit:archunit-junit5 from 1.2.0 to 1.4.1 by @dependabot[bot] in #201
- Bump com.icegreen:greenmail from 2.0.0 to 2.1.4 by @dependabot[bot] in #202
- Bump org.assertj:assertj-core from 3.27.3 to 3.27.4 by @dependabot[bot] in #203
- Bump org.mariadb.jdbc:mariadb-java-client from 3.5.4 to 3.5.5 by @dependabot[bot] in #205
- Bump com.icegreen:greenmail from 2.1.4 to 2.1.5 by @dependabot[bot] in #204
- Bump io.rest-assured:rest-assured from 5.5.5 to 5.5.6 by @dependabot[bot] in #206
- Bump springBootVersion from 3.5.4 to 3.5.5 by @dependabot[bot] in #207
- Bump org.springframework.boot from 3.5.4 to 3.5.5 by @dependabot[bot] in #208
- Small-fixes-improvements by @devondragon in #209
Full Changelog: 3.3.0...3.4.0
3.3.0
What's Changed
- Bump org.mariadb.jdbc:mariadb-java-client from 3.5.3 to 3.5.4 by @dependabot[bot] in #191
- Bump com.vanniktech.maven.publish from 0.33.0 to 0.34.0 by @dependabot[bot] in #192
- Feature/test improvements by @devondragon in #193
- Fix/hibernate entity management issue, and other improvements by @devondragon in #194
Features
Comprehensive Test Infrastructure and Service Tests
Established a comprehensive testing foundation including modular test configurations, custom annotations, test data builders, and a mock email service. This setup is crucial for facilitating both unit and integration tests within the library.
Implemented test data builders for User, Role, and Token entities to streamline the creation of test data.
Added testing support for OAuth2/OIDC with configured mock providers.
Authored detailed test plans and phase-specific task lists targeting a test coverage increase from 27% to 80%+.
Support for Parallel Test Execution
Enabled JUnit 5's parallel execution capabilities to significantly improve test performance by leveraging multiple CPU cores.
Expected test execution time reduced by 30-50%.
End-to-End Testing Infrastructure
Established a framework for end-to-end (E2E) testing which includes database setup using Testcontainers and email testing using GreenMail.
Initiated examples of user registration and password reset journey tests which validate integration across system boundaries.
Dependency and Version Updates
Updated org.mariadb.jdbc:mariadb-java-client to version 3.5.4 to ensure compatibility with the latest database features and security patches.
Updated the Gradle wrapper to version 8.14.3 for enhanced build performance and new functionalities.
Fixes
Improved Handling of Authentication Types
Enhanced AuthenticationEventListener to correctly handle various authentication types, including OAuth2User and DSUserDetails, solving issues related to improper principal extraction and null user scenarios in OAuth2 authentication flows.
Fixed deprecated API usage in WebSecurityConfig by replacing RoleHierarchyImpl.fromHierarchy() with the new constructor and setHierarchy() method.
Hibernate Entity Management
Addressed a critical issue related to Hibernate's immutable collection proxy by refactoring User entity's role storage from List to Set. This change prevents UnsupportedOperationException during entity saves in specific integration scenarios.
Patch Vulnerabilities and Improve Compatibility
Resolved the compilation error by aligning with the latest vanniktech maven publish plugin (0.34.0), ensuring smooth publishing to Maven Central.
Refactoring
Improved Readability and Consistency in Test Code
Refactored test data builders for improved readability and consistent code style, enhancing maintainability and developer understanding.
Refactored UserServiceTest to leverage centralized TestFixtures for cleaner setup and more organized test logic.
Testing
Extensive Test Coverage
Added a comprehensive suite of unit and integration tests for DSUserDetailsService and AuthorityService, covering user role loading, OAuth2 flows, and role hierarchy management.
Refined test classes to ensure appropriate usage of mocking and context initialization, leading to robust validation of expected behaviors across various scenarios.
Test Documentation
Authored detailed documentation outlining testing conventions, best practices, and guidelines for leveraging custom test annotations.
Documented the new test infrastructure setup extensively to guide future test development and optimization.
Other Changes
File Renaming and Cleanup
Streamlined test and source files by fixing naming discrepancies and correcting file paths where necessary for improved project organization.
Deleted outdated and redundant documentation files such as TESTPLAN.md, TESTNEXTTASKS.md, and FAILING_TESTS_ANALYSIS.md, integrating relevant content into a unified test improvement document.
Overall, these changes enhance the library's testability, reliability, and developer experience, setting a robust foundation for future development and maintenance.
Full Changelog: 3.2.3...3.3.0
3.2.2
What's Changed
- Bump com.google.guava:guava from 33.4.6-jre to 33.4.7-jre by @dependabot in #177
- Bump com.google.guava:guava from 33.4.7-jre to 33.4.8-jre by @dependabot in #178
- Bump springBootVersion from 3.4.4 to 3.4.5 by @dependabot in #179
- Bump org.springframework.boot from 3.4.4 to 3.4.5 by @dependabot in #180
- Refactor conditional annotation in FileAuditLogFlushScheduler to use … by @devondragon in #183
Full Changelog: 3.2.1...3.2.2
3.2.1
What's Changed
- Devondragon contributing guide by @devondragon in #168
- Bump com.google.guava:guava from 33.4.5-jre to 33.4.6-jre by @dependabot in #169
- Bump org.mariadb.jdbc:mariadb-java-client from 3.5.2 to 3.5.3 by @dependabot in #170
- Update dependencies and enhance logging in authentication process by @devondragon in #174
- Add user account deletion handling and event publishing for cleanup by @devondragon in #176
Full Changelog: 3.2.0...3.2.1
3.1.1
[3.1.1] - 2025-02-24
Features
- Version Update to Develop Branch: The project version has been incremented to
3.1.1-SNAPSHOT. This is a preparatory step for future developments, ensuring that ongoing changes do not interfere with the stable release version. This change was made in thegradle.propertiesfile. (commit d24ae77c)
Fixes
- Dependency Updates: The dependencies have been updated to ensure compatibility and incorporate the latest security and performance enhancements:
- Spring Boot has been upgraded from version
3.4.1to3.4.3. - The plugin
com.github.ben-manes.versionshas been updated from0.51.0to0.52.0.
These updates were applied within thebuild.gradlefile, reflecting changes in both the plugins and extension configurations. (commit a498695e, commit fb7aeb6)
- Spring Boot has been upgraded from version
3.1.0
[3.1.0] - 2025-02-24
Changelog
Features
- User Profile Management: Added new classes for user profile management, including
BaseUserProfile,UserProfileService,BaseAuthenticationListener, andBaseSessionProfile. This allows for enhanced management of user-specific data within the session context of a Spring Boot application. [commit 363013c] - AuthorityService Integration in Tests: Integrated a mock of
AuthorityServiceinUserServiceTestto facilitate improved unit testing of service interactions. [commit 8f4ca29] - Role and Authority Enhancement: Introduced
AuthorityServiceandLoginHelperServicefor better management of user roles and authorities, especially for OAuth2-based users. This helps streamline authentication and authority management across the system. [commit 1e08c5c]
Fixes
- Changelog Generation Enhancements: Enhanced the changelog generation script to include commit diffs and automatic categorization of changes, which should improve the clarity and utility of generated changelogs. [commit 8699934]
- OAuth2 User Handling: Addressed multiple issues related to role and authority handling for OAuth2 users, ensuring proper authority assignment and role retrieval during user authentication and login processes. [commit 1e08c5c]
- Build and Configuration Updates: Updated Python interpreter path in VSCode settings and added method security configuration to improve project setup and security management. [commit e50a5f2]
Breaking Changes
- There are no outright breaking changes in this release, but the introduction of new role and authority management features requires validation against existing security configurations to ensure compatibility.
Refactoring
- User Configuration Improvements: Refactored user configuration for tighter integration with Spring Boot, including the addition of an auto-configuration registrar to streamline component discovery and setup. [commit 1fce50d]
Documentation
- Framework Documentation Update: Updated README and created a new PROFILE.md document detailing the user profile extension framework, offering guidance on implementation and integration within applications. [commit 6e482fa]
Testing
- No explicit testing updates beyond integration of service mocks.
Other Changes
- Dependency Updates: Several dependency updates managed by dependabot, including updates to the MariaDB Java client, Jakarta validation API, and Thymeleaf layout dialect, ensuring the use of latest stable libraries. [commits 6364b56, 2ef01f1, 606e02f]
- Script Migration: Migrated the user schema SQL script to a dedicated MariaDB script directory for better organization and separation from other resources. [commit 00cd0b7]
- Gradle Release Versioning: Updated the project version to
3.0.2-SNAPSHOTand subsequently to3.1.0-SNAPSHOTas part of the release process, ensuring versioning reflects ongoing developments. [commits eb07d88, 363013c]
3.0.1
What's Changed
- make controller path mappings configurable by @Edamijueda in #139
- Issue 135 make controller path mappings configurable by @devondragon in #143
- Migrate schema.sql from resources to db-scripts directory by @devondragon in #146
New Contributors
- @Edamijueda made their first contribution in #139
Full Changelog: 3.0.0...3.0.1