• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hyperscale-stack / security
95%
master: 98%

Build:
Build:
LAST BUILD BRANCH: dependabot/go_modules/github.com/chromedp/cdproto-0.158.4
DEFAULT BRANCH: master
Repo Added 16 Sep 2020 12:05PM UTC
Token eXsCYvUeMzR6iIXtqrlWZXFVqTZ43wOX2 regen
Build 259 Last
Files 224
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH feature/80-oauth2-code-replay-revocation
branch: feature/80-oauth2-code-replay-revocation
CHANGE BRANCH
x
Reset
Sync Branches
  • feature/80-oauth2-code-replay-revocation
  • ci/real-db-stores
  • dependabot/github_actions/actions/checkout-6
  • dependabot/github_actions/actions/checkout-7
  • dependabot/github_actions/actions/setup-go-7
  • dependabot/github_actions/softprops/action-gh-release-3
  • dependabot/go_modules/connectrpc.com/connect-1.21.0
  • dependabot/go_modules/connectrpc.com/connect-1.21.1
  • dependabot/go_modules/connectrpc.com/grpchealth-1.5.0
  • dependabot/go_modules/github.com/alicebob/miniredis/v2-2.39.0
  • dependabot/go_modules/github.com/alicebob/miniredis/v2-2.40.0
  • dependabot/go_modules/github.com/chromedp/cdproto-0.157.9
  • dependabot/go_modules/github.com/chromedp/cdproto-0.158.0
  • dependabot/go_modules/github.com/chromedp/cdproto-0.158.4
  • dependabot/go_modules/github.com/chromedp/chromedp-0.20.1
  • dependabot/go_modules/github.com/chromedp/chromedp-0.21.0
  • dependabot/go_modules/github.com/go-jose/go-jose/v4-4.1.5
  • dependabot/go_modules/github.com/redis/go-redis/v9-9.19.0
  • dependabot/go_modules/github.com/redis/go-redis/v9-9.20.0
  • dependabot/go_modules/github.com/redis/go-redis/v9-9.20.1
  • dependabot/go_modules/github.com/redis/go-redis/v9-9.21.0
  • dependabot/go_modules/github.com/redis/go-redis/v9-9.22.0
  • dependabot/go_modules/github.com/redis/go-redis/v9-9.23.0
  • dependabot/go_modules/github.com/rs/zerolog-1.35.0
  • dependabot/go_modules/github.com/rs/zerolog-1.35.1
  • dependabot/go_modules/github.com/stretchr/testify-1.12.1
  • dependabot/go_modules/github.com/zitadel/oidc/v3-3.51.16
  • dependabot/go_modules/go.opentelemetry.io/otel-1.44.0
  • dependabot/go_modules/go.opentelemetry.io/otel-1.45.0
  • dependabot/go_modules/go.opentelemetry.io/otel-1.46.0
  • dependabot/go_modules/go.opentelemetry.io/otel-1.47.0
  • dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.44.0
  • dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.45.0
  • dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.46.0
  • dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.47.0
  • dependabot/go_modules/go.opentelemetry.io/otel/trace-1.44.0
  • dependabot/go_modules/go.opentelemetry.io/otel/trace-1.45.0
  • dependabot/go_modules/go.opentelemetry.io/otel/trace-1.46.0
  • dependabot/go_modules/go.opentelemetry.io/otel/trace-1.47.0
  • dependabot/go_modules/golang.org/x/crypto-0.45.0
  • dependabot/go_modules/golang.org/x/crypto-0.46.0
  • dependabot/go_modules/golang.org/x/crypto-0.47.0
  • dependabot/go_modules/golang.org/x/crypto-0.48.0
  • dependabot/go_modules/golang.org/x/crypto-0.49.0
  • dependabot/go_modules/golang.org/x/crypto-0.50.0
  • dependabot/go_modules/golang.org/x/crypto-0.51.0
  • dependabot/go_modules/golang.org/x/crypto-0.52.0
  • dependabot/go_modules/golang.org/x/crypto-0.53.0
  • dependabot/go_modules/golang.org/x/crypto-0.54.0
  • dependabot/go_modules/golang.org/x/crypto-0.55.0
  • dependabot/go_modules/golang.org/x/crypto-0.56.0
  • dependabot/go_modules/golang.org/x/crypto-0.57.0
  • dependabot/go_modules/google.golang.org/grpc-1.81.1
  • dependabot/go_modules/google.golang.org/grpc-1.82.0
  • dependabot/go_modules/google.golang.org/grpc-1.82.1
  • dependabot/go_modules/google.golang.org/grpc-1.83.0
  • dependabot/go_modules/google.golang.org/grpc-1.83.1
  • dependabot/go_modules/google.golang.org/grpc-1.83.2
  • dependabot/go_modules/google.golang.org/grpc-1.84.0
  • dependabot/go_modules/modernc.org/sqlite-1.51.0
  • dependabot/go_modules/modernc.org/sqlite-1.52.0
  • dependabot/go_modules/modernc.org/sqlite-1.53.0
  • dependabot/go_modules/modernc.org/sqlite-1.54.0
  • dependabot/go_modules/modernc.org/sqlite-1.56.0
  • dependabot/go_modules/modernc.org/sqlite-1.57.0
  • dependabot/go_modules/modernc.org/sqlite-1.58.0
  • dependabot/go_modules/modernc.org/sqlite-1.60.1
  • dependabot/go_modules/modernc.org/sqlite-1.61.0
  • dependabot/go_modules/tools/osv-scanner/golang.org/x/vuln-1.9.0
  • feat/audit2-attempt-limiter
  • feature/63-oauth2-error-hook
  • feature/64-oauth2-expires-in-clock
  • feature/78-oauth2-refresh-rotation-profile
  • feature/79-oauth2-pkce-syntax
  • feature/81-oauth2-introspection-authz
  • feature/82-oauth2-refresh-family-revocation
  • feature/83-oauth2-oidc-extension-points
  • feature/84-oidc-provider
  • feature/85-oidc-client
  • feature/86-oidc-interop
  • feature/87-saml-sp
  • feature/88-saml-adversarial-interop
  • feature/94-oauth2-empty-client-secret
  • feature/connectrpc
  • feature/oauth2-server
  • feature/refactoring
  • fix/audit-ci-deps
  • fix/audit-core-transport
  • fix/audit-jwt
  • fix/audit-oauth2-client-policy
  • fix/audit-oauth2-endpoints
  • fix/audit-oidc-client
  • fix/audit-oidc-provider
  • fix/audit-saml-sp
  • fix/audit-session-password-basic
  • fix/audit-sql-stores
  • fix/audit2-core
  • fix/audit2-jose
  • fix/audit2-jwt
  • fix/audit2-oauth2-front
  • fix/audit2-oidc-client
  • fix/audit2-oidc-provider
  • fix/audit2-saml
  • fix/audit2-stores
  • fix/audit2-supply-chain
  • master

10 Oct 2026 02:22AM UTC coverage: 94.768% (+0.3%) from 94.444%
38016983323

Pull #93

github

euskadi31
test(oauth2): pin the replay wire answer and tighten the code-replay contract

Review follow-ups for the authorization-code replay revocation.

An unproven replay — another client, a missing, wrong or malformed
verifier, another redirect_uri, an expired code, a client no longer
allowed the grant — now has its answer pinned to the bare
ErrCodeAlreadyUsed ("authorization code already consumed"), the answer
of any replay and of an unknown code, so the response tells nothing
about which check failed. The former pins only checked the invalid_grant
code, which a grant returning the validation error would have passed.
The revocation a replay triggers is now checked to be bounded by the
detached revocation timeout, not only detached from the request, and
the replay guard also refuses a typed-nil CodeReplayError, which used to
panic.

The storage contract now says that a given CodeHash is saved at most
once — the Redis store overwrites, so a consumed code saved again
becomes redeemable again — and that a decorator of
ConsumeAuthorizationCode returns the store's error unchanged or wrapped
with %w, since normalizing it to ErrCodeAlreadyUsed silently disables
replay revocation. The docs describe both outcomes of a replay racing
the first exchange — it fails that exchange or revokes its tokens — say
that a late replay is refused like any replay, and cite RFC 9700
§4.2.4. The Redis comments explain what the null-flag test checks and
the non-string script reply, and the test doubles lose their dead
nolint directives. Refs #80.
Pull Request #93: fix(oauth2): revoke tokens issued from a replayed authorization code

230 of 236 new or added lines in 11 files covered. (97.46%)

4836 of 5103 relevant lines covered (94.77%)

75.68 hits per line

Relevant lines Covered
Build:
Build:
5103 RELEVANT LINES 4836 COVERED LINES
75.68 HITS PER LINE
Source Files on feature/80-oauth2-code-replay-revocation
  • Tree
  • List 95
  • Changed 12
  • Source Changed 0
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
38016983323 feature/80-oauth2-code-replay-revocation test(oauth2): pin the replay wire answer and tighten the code-replay contract Review follow-ups for the authorization-code replay revocation. An unproven replay — another client, a missing, wrong or malformed verifier, another redirect_uri, an e... Pull #93 10 Oct 2026 02:27AM UTC euskadi31 github
94.77
See All Builds (259)

Badge your Repo: security

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc