BUILD: Move owid-java to the key selection fix, exclude PublicKeyFetch - #124
Merged
Merged
Conversation
The 51Degrees/owid-java fork took SWAN-community/owid-java#6 on 5 September 2026, which adds PublicKeySchedule and DatedPublicKey and selects the creator's signing key by the start of its period rather than the moment it was generated. The submodule moves from 694f6333 to 764996e0, whose tree is identical to SWAN main at b92f1cd2. pipeline.did compiles the submodule source with -Xlint:all -Werror at source and target 1.8, and on JDK 21 the new HTTP-only PublicKeyFetch class trips the deprecation of URL(String). The module does not use that class, because DidClient fetches the cloud's published key list from id/key through its own HttpTransport, so it is excluded alongside Endpoints and the pom comment says why. mvn -pl pipeline.did test on JDK 21: 127 tests, 0 failures, 2 skipped. Fixture check: the real 4 September identifier verifies under the key starting 31 August 2026 and answers Invalid on the schedule shifted a week.
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.
Summary
Moves the
owid-javasubmodule from 694f6333 to 764996e0, the head of the 51Degrees fork after it took SWAN-community/owid-java main at b92f1cd2 (the tree is identical), and excludes the new HTTP-onlyPublicKeyFetchclass from thepipeline.didbuild in the same wayEndpointsis already excluded.Why
On 4 September 2026 the OWID ports were found to select a creator's signing key by the moment the key was generated rather than by the start of its period. The 51Degrees cloud writes thirteen weeks of keys in one run, so an identifier dated 4 September selected the key starting 7 September and genuine identifiers were reported as forged. The rule was corrected in the OWID specification (SWAN-community/owid#7) and in every port on 5 September 2026. The Java fix is SWAN-community/owid-java#6, which adds
PublicKeySchedule(the key in force at a date is the one with the latest start at or before it,current()is the key in force now andlast()is documented as not that),DatedPublicKey, a datedPublicKeyFetch, and writes version 2 and 3 dates as minutes since 1 January 2020.pipeline.didcompiles the submodule source into the module with-Xlint:all -Werrorat source and target 1.8. On JDK 21, which the CI matrix runs (Ubuntu_Java_21 and Windows_Java_21),new URL(String)insidePublicKeyFetchis a deprecation warning and the build fails.PublicKeyFetchis the network fetch of a creator's key, which this module does not use:DidClientfetches the cloud's published key list fromid/keythrough its ownHttpTransportand selects from it. So the class is excluded, with the pom comment updated to say so. Nothing else inowid-javamain references it.Verification
mvn -pl pipeline.did teston JDK 21.0.11: 127 tests, 0 failures, 0 errors, 2 skipped (DidClientLiveTests), BUILD SUCCESS. Before the exclusion the same command failed withURL(java.lang.String) in java.net.URL has been deprecatedunder-Werror.pipeline.did/target/classes: the real identifier the cloud issued on 4 September 2026 with the real thirty key schedule fromid/keyverifies under the key starting 31 August 2026, and the same schedule with every start moved a week later answers Invalid.Notes
URI.create(url).toURL()so consumers compiling with-Werroron current JDKs do not need the exclusion. Not raised there yet.Produced with AI assistance and checked against the outputs above.