Watch
1
0
Fork
You've already forked jeap-spring-boot-jwe-starter
0
mirror of https://github.com/jeap-admin-ch/jeap-spring-boot-jwe-starter.git synced 2026-08-17 13:05:00 +00:00
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-13 08:03:45 +02:00
.mvn update parent dependencies 2026-06-18 14:17:34 +02:00
docs JEAP-7097 Reject JWEs with unknown crit header parameters or missing IV/auth tag, evict retired key versions from the decrypter cache, strengthen the eager-install test, add decrypter unit tests 2026-07-07 20:34:28 +02:00
jeap-spring-boot-jwe-crypto Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
jeap-spring-boot-jwe-key-management Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
jeap-spring-boot-jwe-security-it Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
jeap-spring-boot-jwe-starter Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
jeap-spring-boot-jwe-test Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
jeap-spring-boot-jwe-web Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
.gitignore JEAP-7098 Initial revision 2026-06-11 08:29:44 +02:00
AGENTS.md JEAP-7094 Add JWE servlet filter 2026-06-26 10:03:11 +02:00
CHANGELOG.md Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
CONTRIBUTING.md JEAP-7098 Implement key management and public key endpoint 2026-06-15 08:26:36 +02:00
LICENSE JEAP-7098 Implement key management and public key endpoint 2026-06-15 08:26:36 +02:00
mvnw JEAP-7098 Initial revision 2026-06-11 08:29:44 +02:00
mvnw.cmd JEAP-7098 Initial revision 2026-06-11 08:29:44 +02:00
pom.xml Version 1.16.0: Update parent from 8.9.1 to 8.10.0 2026-08-13 08:01:14 +02:00
publiccode.yml Update version/date in publiccode.yml 2026-08-13 08:03:45 +02:00
README.md JEAP-7107 Complete docs: troubleshooting guide, security considerations, Vault-rotation diagram, jEAP integration guide, jeap-jwe-client docs link; bump version to 1.2.2-SNAPSHOT 2026-07-06 14:10:56 +02:00
SECURITY.md JEAP-7098 Implement key management and public key endpoint 2026-06-15 08:26:36 +02:00
setPomVersions.sh JEAP-7098 Implement key management and public key endpoint 2026-06-15 08:26:36 +02:00
THIRD-PARTY-LICENSES.md Updating THIRD-PARTY-LICENSES.md 2026-08-13 08:02:32 +02:00

jEAP Spring Boot JSON Web Encryption (JWE) Starter

The jeap-spring-boot-jwe-starter provides transparent JWE-based end-to-end encryption support for jEAP Spring Boot services. It automatically exposes the backend public keys as a JWKS endpoint, manages Vault-backed RSA key material including refresh and rotation support, and decrypts incoming application/jose requests before they reach Spring MVC controllers. For protected endpoints, the starter also encrypts JSON responses as JWE, supports configurable exclusions such as actuator and JWKS endpoints, and provides structured error responses for invalid or missing encryption protocol data. It is designed to use established JOSE libraries and standard algorithms such as RSA-OAEP-256 and A256GCM, without requiring application controllers to implement encryption logic themselves.

Angular frontends: use the companion library jeap-jwe-client (source) — an npm module providing an Angular HttpInterceptor that integrates with this starter and transparently encrypts requests and decrypts responses. See Client integration for the protocol details.

Modules

Module Purpose
jeap-spring-boot-jwe-crypto Crypto utilities (Nimbus). RSA key factory, 4096-bit validation, JWK Set conversion. No Spring dependency.
jeap-spring-boot-jwe-key-management Key-store abstraction (JweKeyStore), in-memory cache, key sources (static test + Vault transit), loader, and periodic refresher with exponential backoff.
jeap-spring-boot-jwe-web Servlet stack: JWKS endpoint, the JWE servlet filter (request decryption / response encryption), mandatory-encryption enforcement with RFC 7807 errors, and the protocol-metadata endpoint.
jeap-spring-boot-jwe-starter Auto-configuration, configuration properties (jeap.jwe.*), bean wiring.
jeap-spring-boot-jwe-test Shared test infrastructure (reusable 4096-bit RSA test keys). Test scope only.
jeap-spring-boot-jwe-security-it Integration tests proving the starter coexists with jeap-spring-boot-security-starter (Bearer-token auth + transparent JWE). Test sources only; keeps the jeap-security dependency out of the published starter.

Dependency direction: cryptokey-managementwebstarter. The …-security-it module is a test-only leaf depending on …-starter.

Documentation

Topic File
Architecture overview docs/architecture.md
Quick setup docs/getting-started.md
Configuration reference docs/configuration.md
Servlet filter docs/servlet-filter.md
Client integration docs/client-integration.md
Key management internals docs/key-management.md
JWKS endpoint docs/jwks-endpoint.md
Vault integration docs/vault-integration.md
Observability (metrics) docs/observability.md
Security considerations docs/security-considerations.md
Troubleshooting docs/troubleshooting.md
Testing without Vault docs/testing.md

See

Changes

This library is versioned using Semantic Versioning and all changes are documented in CHANGELOG.md following the format defined in Keep a Changelog.

Note

This repository is part the open source distribution of jEAP. See github.com/jeap-admin-ch/jeap for more information.

License

This repository is Open Source Software licensed under the Apache License 2.0.