Release Notes
Release Notes
Each security-for-flow milestone ships with a dedicated release-notes
document covering scope, new SPIs, breaking changes, and
mutation-coverage numbers. The latest published release on Maven
Central is 00.79.41.
Security-hardening tick: 21 findings closed (1 Medium, 16 Low, 3 Info) — GitHub identity anchored to the immutable account id, the OIDC nonce/CSRF defence made reachable through the API, annotation inheritance across class hierarchies, and three new shared homes against consistency drift. Additive.
Security-hardening tick: 10 findings closed plus opt-in deny-by-default authorization (
JS-SEC-024, backward-compatible, off by default). A second workflow-backed exit review found and fixed 10 further interaction findings. Additive.Security-hardening tick: all 28 findings of the 2026-07-02 source-review audit closed (0 Critical, 0 High). Secure-by-default session rotation, fail-closed empty-constraint evaluators, JWT/OIDC/DPoP spec-fidelity fixes, corrected JavaDoc guarantees. Additive.
OAuth2 deep-hardening (Etappe 3, final): JWE decoding (RFC 7516), mTLS (RFC 8705), PAR (RFC 9126), JAR (RFC 9101), the FIPS profile and the demo pass — completing the 00.76→00.79 identity trilogy. Additive.
Token-Binding + Logout-Hardening (Etappe 2): replay-protection stores (
JtiStore / NonceStore), DPoP sender-constrained tokens (RFC 9449, new jSentinel-dpop) and OIDC back-/front-channel logout hardening. Additive.Identity Interop + Stable-API: the coordinated stable-API promotion of the JWT / OAuth2 / OIDC surfaces (47 types), six IdP vendor profiles (Keycloak, Entra, Auth0, Okta, Google, GitHub) and a no-mock OIDC test harness. Additive.
OpenID Connect Relying-Party: ID-token validation (
nonce / azp / at_hash / acr step-up), discovery, UserInfo, RP-initiated logout and claims-to-subject mapping — wired through .oidc(...). Three new modules on the 00.77 OAuth2 base; additive.OAuth2 Relying-Party flows: Authorization-Code + PKCE (S256-only), client auth incl.
private_key_jwt, refresh-token rotation with reuse-detection, introspection, revocation and the Device Authorization Grant — wired through .oauth2(...). Three new modules on the jSentinel-jwt base; additive.Security-hardening tick: a full review of all 25 library modules (14 findings fixed in-cycle, no critical / no auth-bypass), the SpotBugs / FindSecBugs gate hoisted reactor-wide, all 46 Dependabot alerts closed, optional
typ-header validation (RFC 8725), and two PRODUCTION fail-fast hardenings. Additive.Standardized JWT validation: a new opt-in
jSentinel-jwt module (Nimbus) with a JOSE-free JwtValidator SPI, a disciplined JWKS client, a mandatory algorithm allow-list with hard algorithm-confusion defence, and a .jwt(...) bootstrap across all three adapters. Additive; the base for OAuth2 / OIDC.Production-review hardening tick #2: 39 findings (R006–R044) closed — secret-leak redaction, concurrency races, fail-closed
@SecureRoute, OWASP-minimum KDF floors, adapter consistency and SLF4J migration. Additive; no new feature or module.Core hardening + a SpotBugs / FindSecBugs static-analysis gate: type-safe
TokenHasher, hardened JSON parsers, an instantiable JSentinelContext, and four urgent event-bus / Eclipse-Store fixes. Additive; no new module.The Security Event Bus: ~34 typed
JSentinelEvent records in signed (Ed25519) envelopes with replay protection, per-(tenant, producer) sequencing, producer policy, Eclipse-Store-backed stores and a REST/SSE bridge. Audit becomes a consumer. Four new modules; purely additive.Storage-Pair architecture:
JSentinelStorageFactory.openAt(...) returns a JSentinelStoragePair that opens framework + app Eclipse-Store under one parent dir with one two-phase shutdown. Plus the HealthView admin demo, currentRuntime() accessor, a BouncyCastle bump and the javadoc-jar fix. Additive, no new module.Maintenance + DX tooling: a
JSentinelRuntime tooling API (summary / toMap / toJson / healthCheck) for /health endpoints, plus framework-feedback fixes (InternalError cause, audit-sink WARN logs, PasswordPolicy.minLength()). Additive, no new module.Declarative token propagation:
@PropagateToken, TokenCredentialStore SPI, pluggable OutboundTokenStrategy (pass-through / token-exchange / client-credentials), and a .propagation(...) sub-builder. Three new modules; additive over 00.73.The jSentinel rebrand: Maven coordinates →
com.svenruppert.jsentinel, artifacts → jSentinel-*, packages → com.svenruppert.jsentinel.*, and the Security* service types → JSentinel*. First release under the jSentinel name — plus the fluent-bootstrap completion.Developer-experience release: typed fluent bootstrap (VaadinSecurity / RestSecurity / StandaloneSecurity), dependency-free @SecurityAutoService processor, Vaadin starter (@SecureRoute + SecuredUi), secret-free diagnostics. 22 modules. No new security primitives.
Credential-security stack (ships in the 00.72 line): JDK-only PBKDF2 core, optional Argon2id / bcrypt / scrypt, post-KDF HMAC pepper, compare-and-swap CredentialStore, atomic password change, single-use reset, breached-password checks (HIBP), abuse detection, ASVS / NIST / CWE traceability.
2026-05-31 · Konzept-V00.70 closed: multi-tenancy, 11 persistence-store SPIs + Eclipse Store reference, SecurityVersion drift detection, Policy API, @Secured method-security processor, role hierarchy, account lifecycle, API keys, rate limiting, Phase-8 Vaadin components.
2026-05-14 · Konzept-V00.60 closed: audit / brute-force / session / action SPIs stable, fourth adapter
security-standalone, Vaadin Browserless tests, mutation push across the reactor.2026-05-08 · Multi-module split:
security-core / security-vaadin / security-rest, REST adapter, two-tier demo demo-vaadin-rest-client, first-run bootstrap, central LogoutService.Versioning policy
The project uses MM.mm.pp numeric versions (e.g. 00.60.00,
00.51.00). The leading double-zero is intentional — it documents the
pre-1.0 phase of public consumption. SPIs are stable in the sense
declared per release; experimental ones are marked
@ExperimentalJSentinelApi.
Maven coordinates always carry the full triplet, e.g.:
<dependency>
<groupId>com.svenruppert.jsentinel</groupId>
<artifactId>jSentinel-core</artifactId>
<version>00.79.41</version>
</dependency>