Skip to content

Implement RFC 8555 Section 7.3.3 terms of service changes.#41

Merged
jjrdk merged 3 commits intomasterfrom
features/terms-of-service-change
Apr 11, 2026
Merged

Implement RFC 8555 Section 7.3.3 terms of service changes.#41
jjrdk merged 3 commits intomasterfrom
features/terms-of-service-change

Conversation

@jjrdk
Copy link
Copy Markdown
Owner

@jjrdk jjrdk commented Apr 11, 2026

Add support for handling terms of service changes

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds RFC 8555 §7.3.3 handling so the ACME server can reject newOrder requests when Terms of Service have changed since an account last agreed, and allows clients to re-agree via account update.

Changes:

  • Reject /new-order with userActionRequired (HTTP 403) when TOS.LastUpdate is newer than the account’s stored ToS acceptance timestamp.
  • Include Link: <tos-url>; rel="terms-of-service" on userActionRequired problem responses.
  • Add ACME conformance scenarios/steps and update README to document the behavior.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/opencertserver.certserver.tests/StepDefinitions/AcmeConformance.cs Adds step definitions for ToS-change scenarios (reject order + re-agree via account update).
tests/opencertserver.certserver.tests/Features/AcmeConformance.feature Adds new RFC 8555 §7.3.3 conformance scenarios.
tests/opencertserver.certserver.tests/Features/AcmeConformance.feature.cs Updates generated Reqnroll bindings for the new feature scenarios.
src/opencertserver.acme.server/Filters/AcmeProtocolResponseFilter.cs Adds Link header emission for userActionRequired errors and maps status code to 403.
src/opencertserver.acme.server/Endpoints/OrderEndpoints.cs Enforces ToS update checks on /new-order and throws UserActionRequiredException.
src/opencertserver.acme.abstractions/Model/Account.cs Updates ToS agreement recording to always refresh the acceptance timestamp.
src/opencertserver.acme.abstractions/Exceptions/UserActionRequiredException.cs Introduces a dedicated exception for userActionRequired with optional ToS URL.
README.md Documents ToS change behavior and re-agreement flow.
Files not reviewed (1)
  • tests/opencertserver.certserver.tests/Features/AcmeConformance.feature.cs: Language not supported

Comment thread src/opencertserver.acme.server/Endpoints/OrderEndpoints.cs
Comment thread tests/opencertserver.certserver.tests/StepDefinitions/AcmeConformance.cs Outdated
@jjrdk jjrdk force-pushed the features/terms-of-service-change branch from 8eaddb2 to a49ce71 Compare April 11, 2026 21:58
jjrdk and others added 2 commits April 11, 2026 23:59
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@jjrdk jjrdk merged commit 998d680 into master Apr 11, 2026
7 checks passed
@jjrdk jjrdk deleted the features/terms-of-service-change branch April 11, 2026 22:06
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