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

hyperscale-stack / security / 38214798495
98%

Build:
DEFAULT BRANCH: master
Ran 12 Oct 2026 06:55AM UTC
Jobs 1
Files 125
Run time 1min
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

12 Oct 2026 06:53AM UTC coverage: 96.652% (+1.0%) from 95.618%
38214798495

push

github

web-flow
feat(oidc): add an OpenID Connect relying party and an SSRF-safe outbound client

Applications need to log users in through external OpenID Providers -
an identity broker federating enterprise IdPs, or an application behind
one - and obtain a verified identity, while the URLs they fetch often
come from tenants. The core gains outbound, a stdlib-only sub-package
whose NewClient(Policy) judges the address actually dialed (DNS
rebinding safe), refuses non-public, numeric and non-canonical
destinations before the CheckURL hook, follows no redirect, uses no
proxy and bounds time, headers and bodies; refused addresses are never
named in errors.

The oidc/client module (package oidcclient, core + go-jose only) is a
relying party, one Client per connection: discovery with an exact
issuer match, Authorization Code with PKCE S256, state and nonce in the
query or form_post mode, client_secret_basic/post or a public client.
A login is bound to its browser by a binding secret in an HttpOnly
__Host- cookie from which the nonce, the PKCE verifier and the key of a
MAC over every transaction field derive, so the store holds no secret
and an altered transaction fails (a self-run login can still be
relaxed by a store writer: documented). Transactions are consumed once;
Complete requires the callback URL to be the connection's redirect URI
(RFC 9700 §4.4.2.2) and checks RFC 9207 iss when advertised. ID Tokens
are validated per OIDC Core §3.1.3.7 with asymmetric algorithms only, a
bounded JWK Set cache and strict JSON; UserInfo checks sub.

Memory, SQL and Redis transaction stores share the storetest conformance
suite; the client interoperates with zitadel/oidc, an opt-in Chrome test
checks the SameSite cookies, and examples/oidc-client links accounts on
(connection, issuer, subject). go-oidc was evaluated and rejected. The
code flow against the library's own provider is left to #86.
Refs #85.

2406 of 2430 new or added lines in 27 files covered. (99.01%)

7708 of 7975 relevant lines covered (96.65%)

1177.89 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
97.13
oidc/client/storetest/conformance.go
6
94.78
oidc/client/jwk.go
4
95.88
oidc/client/store/sql/store.go
2
98.44
oidc/client/discovery.go
2
98.18
oidc/client/token.go
2
96.49
oidc/client/userinfo.go
Jobs
ID Job ID Ran Files Coverage
1 38214798495.1 12 Oct 2026 06:55AM UTC 125
96.65
GitHub Action Run
Source Files on build 38214798495
  • Tree
  • List 125
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 35452f1e on github
  • Prev Build on master (#38188759504)
  • Next Build on master (#38221610547)
  • Delete
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