Changelog
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.
[3.1.0] - 2026-03-28
Security
- Replace truncated
DUMMY_HASHconstant with a runtime-generated BCrypt hash to close timing oracle on unknown-user login path
Added
- JaCoCo coverage gates for
ogiri-jdbc(85% baseline) andogiri-jpa(0% baseline, no tests yet) - Three new Redis integration tests covering cache miss, targeted eviction, and empty-keyspace
evictAll - Route authorization gap documented in
OgiriSecurityAutoConfigurationKDoc anddocs/quickstart.md
Changed
- Sub-bearer logic extracted from
OgiriTokenServiceintoSubTokenService(delegation, no API change) OgiriBaseTokenEntity.expiryAtis now a required constructor parameter (no silentInstant.now()default)- Testcontainers pinned to 1.20.4 in
ogiri-redisto restore Docker Desktop 29.x compatibility
[3.0.1] - 2026-03-01
Fixed
- Redis deserialization:
JavaTimeModulenow registered viaconfigure {}without replacing the ObjectMapper's polymorphic type resolver
Removed
ogiri-clientTypeScript package (already retired; auth primitives are inlined in the React sample)
[3.0.0] - 2026-02-27
Breaking
OgiriTokenServiceoptional collaborators (auditHook,rateLimitHook,lookupCache) moved from constructor params to setter injection (setAuditHook(),setRateLimitHook(),setLookupCache()). The constructor now requires only the six mandatory collaborators.
Added
NoOpOgiriAuditHookandNoOpOgiriRateLimitHook— public singleton no-ops for use in tests and explicit resets
[2.1.0] - 2026-02-24
Breaking
OgiriTokenServiceconstructorObjectProvider<Hook>params replaced with nullable direct references (auditHook: OgiriAuditHook? = null, etc.)
Added
ogiri-jdbc— SpringJdbcClient-based token repository adapterogiri-caffeine— optional in-process Caffeine lookup cacheogiri-redis— optional distributed Redis lookup cacheOgiriTokenLookupCacheSPI wired intoOgiriTokenService
[2.0.0] - 2026-02-10 (ogiri-security-client)
Breaking
OgiriClientremoved; replaced byOgiriAuth(auth primitives) andOgiriFetchClient(optional fetch wrapper)
Added
ogiri-security-client/axiossub-entrypoint withcreateAxiosInterceptors(auth)OgiriAuth.subscribe()for auth state listenersOgiriAuth.headerInjector()for BYO HTTP clients
[1.4.1] - 2026-01-14
Fixed
- Auth cookies cleared on 401 responses when
ogiri.cookies.enabled=true, preventing stale-cookie 401 loops
[1.4.0] - 2026-01-08
Breaking
- Default token length increased from 16 to 32 characters
- Default
rotateStaleSecondschanged from 0 to 3600 (secure by default) deleteExpiredBatchremoved fromOgiriTokenRepository(now internal to the service)
Security
- Cache keys now use SHA-256 hashes instead of plaintext tokens
- Constant-time dummy password check added to
verifyUserto prevent user-enumeration via timing
Changed
- Batch token fetching via
findByUserIdAndClientIneliminates N+1 queries inbuildAuthHeader
[1.3.1] - 2026-01-08
Breaking
OgiriTokenRepositorymethod names aligned to Spring Data conventions (e.g.findAllByUserId→findByUserIdOrderByUpdatedAtDesc);findByUserIdAndClientnow returnsOptional<T>
Deprecated
AbstractJpaTokenRepositoryAdapter— use direct interface extension instead
[1.3.0] - 2025-01-08
Added
ogiri-jpamodule:OgiriBaseTokenEntity(@MappedSuperclass),AbstractJpaTokenRepositoryAdapter, andOgiriJpaAutoConfigurationBCryptPasswordEncoderauto-configuration when noPasswordEncoderbean is presentOgiriMissingBeanFailureAnalyzerfor actionable startup errors
[1.2.1] - 2025-01-07
Added
- Secure cookie support and batched token cleanup
Fixed
- Bearer token auth returns 401 instead of 500 when authentication fails
[1.2.0] - 2025-12-12
Breaking
- Core classes renamed:
BaseToken→OgiriBaseToken,TokenRepository→OgiriTokenRepository,TokenService→OgiriTokenService,GeneratedTokens→OgiriGeneratedTokens
[1.1.1] - 2025-12-11
Added
- GitHub Pages deployment with
mikeversioning
[1.1.0] - 2025-12-09
Added
OgiriUser.getOgiriUserId()for conflict-free Java interopOgiriSubTokenRegistration.validate()and sub-token helpers (getSubToken,revokeSubToken,renewSubTokenAndGetHeaders)
[1.0.0] - 2025-12-05
Added
- Initial release: token authentication, sub-token support, Spring Boot auto-configuration, JPA/JDBC/NoSQL repository interface, configurable token rotation
License
Apache License 2.0