Find TLS protocol configuration in properties and YAML
io.moderne.cryptography.pqc.FindTlsPropertyConfigurationArtifactio.moderne.recipe:rewrite-cryptographyInventories Spring Boot configuration files that set an embedded server's TLS protocol floor or cipher suites — server.ssl.enabled-protocols, server.ssl.protocol and server.ssl.ciphers, plus any key named in additionalPropertyKeys — and classifies each value by whether TLS 1.3, and therefore JEP 527 hybrid key exchange, remains reachable. A pinned server.ssl.ciphers list with no RFC 8446 suite blocks TLS 1.3 even when the protocol floor allows it. Rows land in the same TLS configuration inventory data table as the Java surface. Keys are matched with relaxed binding, so enabled-protocols, enabledProtocols and ENABLED_PROTOCOLS all match; values may be a single token, a comma-separated string, or a YAML sequence in either flow or block style. Configuration a source scan cannot see — config servers, ConfigMap overlays, environment variables — is out of scope, so an absent row is not evidence of a modern floor.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe io.moderne.cryptography.pqc.FindTlsPropertyConfigurationIf the recipe isn’t available locally, install it with:
mod config recipes jar install io.moderne.recipe:rewrite-cryptography:RELEASEOptions
| Name | Type | Description |
|---|---|---|
additionalPropertyKeys | List | Configuration keys beyond server.ssl.enabled-protocols and server.ssl.protocol whose values name TLS protocol versions. Matched with Spring relaxed binding, so my.tls.enabled-protocols also matches my.tls.enabledProtocols.e.g. my.service.tls-protocols |
Data tables
Structured output this recipe can produce.
- TLS configuration inventoryTLS protocol version and cipher suite configuration detected in Java sources and in Spring Boot `.properties`/`.yaml` files, classified by whether TLS 1.3 — and therefore JEP 527 / BouncyCastle 1.81 hybrid key exchange — remains reachable. Non-JSSE TLS stacks (Netty, OkHttp, Tomcat and Jetty server configuration, `-D` flags in build files and launch scripts) are out of scope, so an absent row is not evidence that a module has no legacy TLS floor.
io.moderne.cryptography.pqc.table.TlsConfigurationInventoryTable - Cryptography inventoryEvery cryptographic finding this module detects, joined into one sparse table so that a consumer does not have to match the per-detector tables on source location. A row carries the columns of whichever detectors reported at its location and leaves the others empty; the `Finding type` column names those detectors. The per-detector tables (`Cipher inventory`, `PQC readiness`, `TLS configuration inventory`, `TLS named groups inventory`) are still emitted unchanged, and carry the same findings unjoined.
io.moderne.cryptography.table.CryptographyInventoryTable - Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats