Skip to content

BUILD: Move owid-java to the key selection fix, exclude PublicKeyFetch - #124

Merged
Automation51D merged 1 commit into
mainfrom
fix/owid-key-selection-by-period-start
Sep 6, 2026
Merged

BUILD: Move owid-java to the key selection fix, exclude PublicKeyFetch#124
Automation51D merged 1 commit into
mainfrom
fix/owid-key-selection-by-period-start

Conversation

@jwrosewell

Copy link
Copy Markdown
Contributor

Summary

Moves the owid-java submodule 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-only PublicKeyFetch class from the pipeline.did build in the same way Endpoints is 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 and last() is documented as not that), DatedPublicKey, a dated PublicKeyFetch, and writes version 2 and 3 dates as minutes since 1 January 2020.

pipeline.did compiles the submodule source into the module with -Xlint:all -Werror at source and target 1.8. On JDK 21, which the CI matrix runs (Ubuntu_Java_21 and Windows_Java_21), new URL(String) inside PublicKeyFetch is a deprecation warning and the build fails. PublicKeyFetch is the network fetch of a creator's key, which this module does not use: DidClient fetches the cloud's published key list from id/key through its own HttpTransport and selects from it. So the class is excluded, with the pom comment updated to say so. Nothing else in owid-java main references it.

Verification

  • mvn -pl pipeline.did test on JDK 21.0.11: 127 tests, 0 failures, 0 errors, 2 skipped (DidClientLiveTests), BUILD SUCCESS. Before the exclusion the same command failed with URL(java.lang.String) in java.net.URL has been deprecated under -Werror.
  • Cross-port fixture check compiled against pipeline.did/target/classes: the real identifier the cloud issued on 4 September 2026 with the real thirty key schedule from id/key verifies under the key starting 31 August 2026, and the same schedule with every start moved a week later answers Invalid.

Notes

  • A follow up for SWAN-community/owid-java would be to build the URL with URI.create(url).toURL() so consumers compiling with -Werror on current JDKs do not need the exclusion. Not raised there yet.
  • No other module in this repository references owid-java.

Produced with AI assistance and checked against the outputs above.

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.
@Automation51D
Automation51D merged commit c80fd79 into main Sep 6, 2026
1 check passed
@Automation51D
Automation51D deleted the fix/owid-key-selection-by-period-start branch September 6, 2026 03:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants