MBA-714: Create AuthenticationService Module Structure and Core Framework #22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
MBA-714: Create AuthenticationService Module Structure and Core Framework
Summary
This PR implements the foundational structure for a new AuthenticationService module to support NIST 800-53 compliant authentication in the USPTO Patent BulkDownloader project. This is a skeleton/framework implementation - it establishes the module structure, core interfaces, and placeholder classes but does not include actual authentication logic implementations.
Key Architectural Decision: Chose a lightweight approach WITHOUT Spring Security to maintain consistency with the existing plain Java architecture (Java 8, no Spring dependencies). Uses jBCrypt for password hashing instead.
What's Included:
AuthenticationServicewith proper parent POM integrationgov.uspto.auth.core/(AuthenticationContext, AuthenticationProvider, AuthenticationResult, Principal, Credential, AuthenticationException)What's NOT Included:
Review & Testing Checklist for Human
AuthenticationContext.javaThreadLocal usage carefully. In bulk processing scenarios with thread pools, is the cleanup mechanism (clear()) sufficient to prevent memory leaks?gov.uspto.auth/. Does this organization make sense for future microservices authentication implementation?mvn clean installfrom the project root to ensure the new module integrates properly with the existing build (note: there are 3 pre-existing test failures in PatentDocument module unrelated to this PR)Test Plan
cd AuthenticationService && mvn clean installsrc/test/java/gov/uspto/auth/core/to understand the framework behaviorNotes
Areas Flagged for Team Clarification:
storage/package is unclear - implemented basic file-based storage interface but needs team input on actual requirementsDependency Rationale:
NIST 800-53 Controls Addressed (framework only, implementations pending):
IA-1, IA-2, IA-4, IA-5, IA-9, IA-11, IA-12, AC-2, AC-7, AU-2
Link to Devin run: https://app.devin.ai/sessions/d5678f1ae3c8437da1860dc858cebc2e
Requested by: Jake Cosme (@jakexcosme)