refactor!: make Ogiri a Java-friendly, Maven-tested session library - #59
Open
mosobande wants to merge 16 commits into
Open
refactor!: make Ogiri a Java-friendly, Maven-tested session library#59mosobande wants to merge 16 commits into
mosobande wants to merge 16 commits into
Conversation
mosobande
marked this pull request as ready for review
September 6, 2026 22:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Purpose
Make Ogiri a small, Java-friendly session library that composes with Spring Security instead of shipping two authentication architectures. The implementation remains Kotlin internally; Java callers use ordinary constructors, getters,
Principaland Spring Security interfaces without a Kotlin compiler.Implemented
UserDetailsServiceand password encoder, without a hand-builtAuthenticationManager. Derive the public sign-in route from endpoint configuration and load actual user authorities. Keep application-owned authorization and additional authentication providers intact.META-INF/ogiri/schema-postgresql.sql. The dependency no longer claims an application's FlywayV4version or auto-provisions its schema. Verify the SQL extracted from the built JAR against a PostgreSQL Maven consumer using Hibernatevalidate.Verification
Final delivery head:
219c12b39905cc960678d3a4d1a73ce60f258970.Final PR Build and CodeQL analysis passed. The CodeQL alert gate reports no new alerts in code changed by this PR. No checks were bypassed or security alerts dismissed.
The source implementation was verified before its native commits were pushed in run 34063485027. Its downloaded JUnit XML reports show:
These are matrix executions, not 72 distinct tests. All five Javadoc artifacts contain generated HTML; core metadata includes scalar and nested settings; the JPA artifact has no automatically discovered Flyway SQL. The final PR Build reruns consumer, PostgreSQL and artifact gates from a fresh checkout.
Reproduce the local consumer path:
Compatibility and release boundaries
This is an unreleased, breaking v4 migration, not a v3 patch. Existing v3 credentials and sub-token semantics do not carry over; arrange migration and re-authentication. Keep applied database migrations. Users of an older unreleased v4 snapshot that already applied
V4__create_ogiri_sessions.sqlmust retain that exact version/content in application history before upgrading. Do not mix old and new v4 nodes during a rolling deployment because subject-lock encoding changed.Supported target: Java 17+, Spring Boot 3.5, servlet applications; H2 and PostgreSQL verified. The default identity adapter assumes one realm and immutable usernames. Tenant, mutable-login and opaque-account-ID applications provide explicit subject/status/authority resolvers. Registration, account recovery, MFA and OAuth/OIDC remain application or identity-provider responsibilities.
This PR does not merge itself, create a release tag, validate Central/signing credentials, or publish to Maven Central. Release dependency analysis, signing and publication remain release gates. No production throughput percentage, MySQL/Boot 4 compatibility claim, full penetration-test claim or security certification is made. Temporary execution workflows are not part of this PR's final tree.