Commit Graph
2329 Commits
Author SHA1 Message Date
Simon EngmannandJan Larwig ab9ce42dfc Propagate errors during route building
This fixes cases such as invalid paths being silently discarded after
creation by throwing a visible error in such cases.
Due to the way gorilla/mux's fluent API is designed, it is necessary to
manually call `.GetError()` to check for errors while building routes.

Signed-off-by: Simon Engmann <simon.engmann@sovity.de>
2026-03-23 11:19:39 +01:00
e2682f7595 fix: improve logging when session refresh token is missing (#3327)
* Improve logging for session refresh token status

Signed-off-by: Yosri Barhoumi <med.yosri.brh@gmail.com>

* doc: add changelog entry for #3327

Signed-off-by: Jan Larwig <jan@larwig.com>

* test: fix existing test cases for new behaviour

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Yosri Barhoumi <med.yosri.brh@gmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-23 10:54:32 +01:00
Jan LarwigandGitHub 5ca3012652 doc: update PR template with additional checklist items 2026-03-23 10:36:19 +01:00
44236f0314 fix: do not log error for backend logout 204 (#3381)
* Don't log error for backend logout 204

Signed-off-by: artificiosus <artificiosus@users.noreply.github.com>

* doc: add changelog entry for #3381

Signed-off-by: Jan Larwig <jan@larwig.com>

* refactor: use http.StatusOK and http.StatusNoContent instead of integers

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: artificiosus <artificiosus@users.noreply.github.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-23 10:27:49 +01:00
a4d89036ec fix: handle Unix socket RemoteAddr in IP resolution (#3374)
* fix: handle Unix socket RemoteAddr in IP resolution

When oauth2-proxy listens on a Unix socket, Go sets RemoteAddr to "@"
instead of the usual "host:port" format. This caused net.SplitHostPort
to fail on every request, flooding logs with errors:

  Error obtaining real IP for trusted IP list: unable to get ip and
  port from http.RemoteAddr (@)

Fix by handling the "@" RemoteAddr at the source in getRemoteIP,
returning nil without error since Unix sockets have no meaningful
client IP. Also simplify the isTrustedIP guard and add a nil check
in GetClientString to prevent calling String() on nil net.IP.

Fixes #3373

Signed-off-by: h1net <ben@freshdevs.com>

* docs: add changelog entry and Unix socket trusted IPs documentation

Add changelog entry for #3374. Document that trusted IPs cannot match
against RemoteAddr for Unix socket listeners since Go sets it to "@",
and that IP-based trust still works via X-Forwarded-For with reverse-proxy.

Signed-off-by: Ben Newbery <ben.newbery@gmail.com>
Signed-off-by: h1net <ben@freshdevs.com>

* doc: fix changelog entry for #3374

Signed-off-by: Jan Larwig <jan@larwig.com>

* doc: add trusted ip a section to versioned docs as well

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: h1net <ben@freshdevs.com>
Signed-off-by: Ben Newbery <ben.newbery@gmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-23 10:22:36 +01:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
9f09d54ba4 chore(deps): update actions/upload-artifact action to v7 (#3358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-23 09:39:22 +01:00
Jan LarwigandGitHub 0ecc35ea41 chore(deps): update gomod and golangci/golangci-lint to v2.11.4 (#3382)
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-03-23 09:38:12 +01:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Jan Larwig
96c9ec6986 release v7.15.0 (#3378)
* add new docs version 7.15.x

* update to release version v7.15.0

* doc: changelog for v7.15.0 and extended docs for additional claims

* ci: fix trivy failure for release PR

---------

Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
v7.15.0
2026-03-19 01:10:21 +08:00
9ae0b325a6 feat: add support for setting a unix binding's socket file mode (#3376)
fix: linter issues and set default unix socket permissions to 0660

Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Tristan <tristan@mangadex.org>
2026-03-19 00:08:50 +08:00
cdbdb1128d feat: add same site option for csrf cookies (#3347)
* the attribute version is obsolete, it will be ignored, please remove it to avoid potential confusion

Signed-off-by: Joost <439100+jvnoije@users.noreply.github.com>

* Add cookie-csrf-samesite option

Most of the code is copied form pull request #1947

Signed-off-by: Joost <439100+jvnoije@users.noreply.github.com>

* Update CHANGELOG.md

Signed-off-by: Joost <439100+jvnoije@users.noreply.github.com>

* Removed release information (review comment)

Signed-off-by: Joost <439100+jvnoije@users.noreply.github.com>

* All cookie variables in a struct

Signed-off-by: Joost <439100+jvnoije@users.noreply.github.com>

* doc: add changelog entry for #3347

Signed-off-by: Jan Larwig <jan@larwig.com>

* revert: unnecessary removal of docker compose version

Signed-off-by: Jan Larwig <jan@larwig.com>

* doc: sort csrf flags

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Joost <439100+jvnoije@users.noreply.github.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-18 23:14:36 +08:00
51ecc50372 feat: add --config-test flag for validating configuration (#3338)
* feat: add --config-test flag for validating configuration without starting the proxy

Signed-off-by: MayorFaj <mayorfaj@gmail.com>

* doc: fix alpha config and add changelog entry for #3338

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: MayorFaj <mayorfaj@gmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-18 23:00:07 +08:00
fe5c6becec doc: add missing redis-ca-path documentation (#3341)
Signed-off-by: Ganesh Jagadeesan <itsjpg@gmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-18 22:46:31 +08:00
779cc5f350 fix: filter empty strings from allowed groups (#3365)
* fix: filter empty strings from allowed groups

When parsing allowed groups from configuration (e.g., via environment
variable OAUTH2_PROXY_ALLOWED_GROUPS), viper may include empty
strings in the parsed slice when trailing commas are present
(e.g., "group2," becomes ["group2", ""]).

The setAllowedGroups function now filters out empty strings before
adding them to the AllowedGroups map, ensuring that only valid group
names are checked during authorization.

Fixes #3123

Signed-off-by: Br1an67 <932039080@qq.com>

* refactor: minor change

Signed-off-by: Jan Larwig <jan@larwig.com>

* doc: add changelog entry for 3365

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Br1an67 <932039080@qq.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-18 22:44:11 +08:00
ff357daa04 fix: use CSRFExpire instead of Expire for CSRF cookie validation (#3369)
* fix: use CSRFExpire instead of Expire for CSRF cookie validation

Signed-off-by: Br1an67 <932039080@qq.com>

* doc: add changelog entry for #3369

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Br1an67 <932039080@qq.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-18 22:30:07 +08:00
7c96234233 feat: add support for specifying allowed OIDC JWT signing algorithms (#2753) (#2851)
* feat: add support for specifying allowed OIDC JWT signing algorithms (#2753)

TODO:
- [X] update docs
- [X] add support in yaml (modern) config
- [X] add more test(s)?

Add (legacy for now) configuration flag "oidc-enabled-signing-alg" (cfg:
oidc_enabled_signing_algs) that allows setting what signing algorithms
are specified by provider in JWT header ("alg" header claim).

In particular useful when skip_oidc_discovery = true, as verifier
defaults to only accept "RS256" in alg field in such circumstances.

Signed-off-by: Jan Larwig <jan@larwig.com>

* doc: update changelog and alpha config

Signed-off-by: Jan Larwig <jan@larwig.com>

* feat: add signing algorithm intersection handling with oidc discovery and additional tests

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-18 22:24:27 +08:00
30853098c7 feat: possibility to inject id_token in redirect url during sign out (#3278)
* feat: possibility to inject id_token in redirect url during sign out

Signed-off-by: Alban Fonrouge <alban.fonrouge@visma.com>

* doc: changelog for #3278

Signed-off-by: Jan Larwig <jan@larwig.com>

* test: fix assertion for TestIdTokenPlaceholderInSignOut

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Alban Fonrouge <alban.fonrouge@visma.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-18 20:19:10 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
8cb06b7ada chore(deps): update docker-compose (#3320)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-17 21:10:44 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7e225eed2c chore(deps): update dependency @easyops-cn/docusaurus-search-local to ^0.55.0 (#3356)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-17 21:09:14 +08:00
Jan LarwigandGitHub 274d7dec46 ci: harden workflows; add trivy scanning; (#3372)
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-03-17 21:07:53 +08:00
e59f7c1549 feat: allow arbitrary claims from the IDToken and IdentityProvider UserInfo endpoint to be added to the session state (#2685)
* feat: support additional claims

Signed-off-by: afsu <suaf2020@163.com>
Signed-off-by: af su <saf@zjuici.com>

* docs: clarify that AdditionalClaims may come from id_token or userinfo endpoint

Signed-off-by: afsu <suaf2020@163.com>
Signed-off-by: af su <saf@zjuici.com>

* feat: include AdditionalClaims in /oauth2/userinfo response (#834)

Signed-off-by: afsu <suaf2020@163.com>
Signed-off-by: af su <saf@zjuici.com>

* refactor: extract coerceClaim logic into util

Signed-off-by: afsu <suaf2020@163.com>
Signed-off-by: af su <saf@zjuici.com>

* doc: add changelog entry for #2685

Signed-off-by: Jan Larwig <jan@larwig.com>

* refactor: added more verbose comments to some struct fields and minor code cleanup

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: afsu <suaf2020@163.com>
Signed-off-by: af su <saf@zjuici.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: af su <saf@zjuici.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-14 12:04:33 +08:00
c6355ee402 docs: add statusRewrites to Traefik Errors middleware example (#3360)
Add statusRewrites (401 -> 302) to the ForwardAuth with Errors
middleware configuration and a troubleshooting note explaining that
without it, browsers may show a "Found." link instead of
auto-redirecting to the identity provider.

Fixes #3359

Signed-off-by: Nick Nikolakakis <nonicked@protonmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-14 11:09:25 +08:00
6d272214e1 docs: fix plural typo in gitlab provider flag (#3363)
* doc: fix plural typo in gitlab provider flag

Signed-off-by: Mridul Yadav <mridul@Mriduls-MacBook-Air.local>

* doc: fix plural typo in gitlab provider flag in versioned docs

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Mridul Yadav <mridul@Mriduls-MacBook-Air.local>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Mridul Yadav <mridul@Mriduls-MacBook-Air.local>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-14 10:58:26 +08:00
566b3aac9f ci: distribute windows binary with .exe extension (#3332)
* Ensure Windows binary has .exe extension

Signed-off-by: Jan Larwig <jan@larwig.com>

* doc: add changelog for #3332

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-14 10:36:24 +08:00
Br1anandGitHub 5f446c3e00 fix(devcontainer): bump Go version to 1.25 in devcontainer base image (#3366)
The devcontainer was using Go 1.23 but go.mod requires Go 1.25.0.
This caused 'go mod tidy' to fail in the devcontainer environment.

Signed-off-by: Jan Larwig <jan@larwig.com>
2026-03-14 10:08:19 +08:00
75ff537915 fix: backend logout URL call on sign out (#3172) (#3352)
* Fix backend logout URL call on sign out (#3172)

Signed-off-by: Vivek Sejpal <vsejpal@gmail.com>

* doc: changelog entry for #3352

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Vivek Sejpal <vsejpal@gmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-03-14 10:05:57 +08:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
88075737a6 chore(deps): update alpine docker tag to v3.23.3 (#3329)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 15:00:04 +01:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Jan Larwig
b5c8df7988 release v7.14.3 (#3351)
* update to release version v7.14.3

* doc: release note v7.14.3

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
v7.14.3
2026-02-26 15:03:07 +01:00
Jan LarwigandGitHub 788f3d0e1d ci: ensure we always use the latest patch version of golang (#3350)
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-02-26 14:48:35 +01:00
Jan LarwigandGitHub 06f1234b69 ci: ensure we always use the latest patch version of golang (#3349)
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-02-26 14:43:52 +01:00
Joel SpeedandGitHub a279fece02 Merge pull request #3183 from Richard87/do-not-override-idle-timeout
fix: dont override parameters set in redis uri
2026-02-19 10:37:57 +00:00
Richard Hagen 7822698ab1 fix: update CHANGELOG to include new fix for URL parameters configuration
Signed-off-by: Richard Hagen <richard.hagen@gmail.com>
2026-02-19 10:20:26 +01:00
Richard Hagen 7747a88404 fix: add tests for configure options and URL overrides when empty
Signed-off-by: Richard Hagen <richard.hagen@gmail.com>
2026-02-19 10:16:47 +01:00
Richard87 178532741f fix: dont override parameters set in redis uri
Signed-off-by: Richard Hagen <richard.hagen@gmail.com>
2026-02-19 10:16:47 +01:00
Jan LarwigandGitHub e7724f3a74 ci: ensure release branches originate from the local repository and reduce residual risk of command injection (#3337)
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-02-12 21:18:45 +01:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Jan Larwig
3a55dadbe8 release v7.14.2 (#3317)
* update to release version v7.14.2

* doc: changelog entry for v7.14.2

Signed-off-by: Jan Larwig <jan@larwig.com>

* doc: fix nginx example docker-compose

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
v7.14.2
2026-01-18 01:19:17 +01:00
Jan LarwigandGitHub d5ea33bea7 ci: avoid running qlty coverage report for PRs (#3316)
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-18 01:05:54 +01:00
Stefan MarkmannandGitHub dcc7970a5f docs: fix how to use skip-provider-button with proper auth redirect handling (#3315)
* docs(nginx): Clarify auth_request redirect pattern with named location

Update the nginx integration documentation to recommend using a named location
(@oauth2_signin) for the error_page directive instead of the previous
'error_page 401 =403' approach.

The named location pattern ensures the browser receives a proper 302 redirect,
which is required for --skip-provider-button=true to work correctly.

The previous pattern (error_page 401 =403 /oauth2/sign_in) returned a 403
status with a Location header. Browsers do not auto-follow redirects on 403
responses, causing users to see a 'Found.' link instead of being automatically
redirected to the IdP.

Changes:
- Updated main nginx example to use @oauth2_signin named location
- Added 'Understanding the error_page redirect pattern' section
- Added warning about the limitations of 'error_page 401 =403'
- Updated local test environment (contrib/local-environment/nginx.conf)

Refs: #334
Signed-off-by: Stefan Markmann <stefan@markmann.net>

* docs: clarify browser vs API routes for nginx auth_request redirects

Add new "Browser vs API Routes" section explaining:
- Use 302 redirect to /oauth2/sign_in only for browser-facing routes
- Use 401/403 without redirect for API/machine clients

This ensures:
- Browsers get a redirect and smooth login flow
- API clients fail fast with appropriate HTTP status codes
- /oauth2/auth remains a pure boolean oracle (2xx/401)

Signed-off-by: Stefan Markmann <stefan@markmann.net>
Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Stefan Markmann <stefan@markmann.net>
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-18 00:55:46 +01:00
cf5d34acf6 revert: "fix: skip provider button auth only redirect (#3309)" (#3314)
This reverts commit 9c61c49ec2.

The original fix broke nginx deployments using `auth_request`. When `/oauth2/auth` returns 302,
nginx's `auth_request` module treats this as an internal error:

    [error] auth request unexpected status: 302 while sending to client

nginx then returns **500 Internal Server Error** to the browser.

> If the subrequest returns a 2xx response code, the access is allowed. If it returns 401 or 403,
> the access is denied with the corresponding error code. Any other response code returned by the
> subrequest is considered an error.
https://nginx.org/en/docs/http/ngx_http_auth_request_module.html

The nginx `auth_request` module has strict semantics (non-negotiable):

| Subrequest status | nginx behavior |
|---|---|
| 2xx | Allow request |
| 401 / 403 | Deny → trigger `error_page` |
| **Any other status** | **Internal error → 500** |

The `/oauth2/auth` endpoint is used as a **policy oracle** (yes/no decision),
not as a browser-facing endpoint. It cannot return redirects.

Any nginx deployment with:
- `skip-provider-button=true`
- Using `auth_request` directive

Will receive 500 errors instead of the expected authentication flow.

The correct fix for #334 is a **documentation update**, not a code change:

```nginx
error_page 401 = @oauth2_signin;

location @oauth2_signin {
    return 302 /oauth2/sign_in?rd=$scheme://$host$request_uri;
}
```

This keeps `/oauth2/auth` as a pure 401/2xx oracle and lets nginx perform the proper 302 redirect to the browser.

- Original Issue: #334
- Regression introduced in PR: #3309

Signed-off-by: Stefan Markmann <stefan@markmann.net>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-01-18 00:36:08 +01:00
Jan LarwigandGitHub 7bf586c898 Merge pull request #3313 from oauth2-proxy/release/v7.14.1
release v7.14.1
v7.14.1
2026-01-17 16:22:29 +01:00
Jan Larwig 8f52b14eda doc: changelog entry for v7.14.1
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-17 16:15:54 +01:00
github-actions[bot] 3ed3baf59f update to release version v7.14.1 2026-01-17 15:08:04 +00:00
Jan LarwigandGitHub 56b5c08596 Merge pull request #3312 from oauth2-proxy/chore/gomod
chore(deps): update go1.25.6 and dependencies
2026-01-17 16:07:31 +01:00
Jan Larwig 5020c33124 ci: fix qlty coverage upload
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-17 16:01:19 +01:00
Jan Larwig cc0b48d5ec ci: fix linter warnings for preallocation
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-17 16:01:14 +01:00
Jan Larwig 844e4e3b0c chore(deps): upgrade to go1.25.6; upgrade all go dependencies
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-17 15:25:59 +01:00
59f4e42a5a fix: static upstreams failing validation due to passHostHeader and proxyWebSockets defaults being set incorrectly (#3302)
* fix: static upstream validation failure

Signed-off-by: Sourav Agrawal <souravagr01@gmail.com>

* fix: enforcement of defaults compatible with static upstreams

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Sourav Agrawal <souravagr01@gmail.com>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-01-17 15:15:19 +01:00
9c61c49ec2 fix: skip provider button auth only redirect (#3309)
* fix: Return 302 redirect from AuthOnly when skip-provider-button is true

When SkipProviderButton is enabled and a user needs to login, the AuthOnly
endpoint now returns a 302 redirect directly to the OAuth provider instead
of returning 401.

This fixes an issue with nginx auth_request architecture where 401 triggers
error_page handling, which can break redirect flows because nginx overrides
the status code (e.g., to 403), and browsers don't follow Location headers
for non-3xx responses.

Fixes: #334
Signed-off-by: Stefan Markmann <stefan@markmann.net>

* update docs and changelog

Signed-off-by: Stefan Markmann <stefan@markmann.net>

* test: Add specific OAuth redirect assertions per code review feedback

Improve TestAuthOnlyEndpointRedirectWithSkipProviderButton to verify
that the Location header actually redirects to the OAuth provider's
authorize endpoint with required parameters (client_id, redirect_uri,
state), not just that a Location header exists.

Signed-off-by: Stefan Markmann <stefan@markmann.net>

* refactor: Flatten AuthOnly error handling structure

Move the SkipProviderButton check outside of the nested err != nil block
using an if-else structure. This makes the special case more visible and
reduces nesting depth without changing behavior.

Signed-off-by: Stefan Markmann <stefan@markmann.net>

* doc: backport to v7.14.x

Signed-off-by: Jan Larwig <jan@larwig.com>

---------

Signed-off-by: Stefan Markmann <stefan@markmann.net>
Signed-off-by: Jan Larwig <jan@larwig.com>
Co-authored-by: Jan Larwig <jan@larwig.com>
2026-01-17 14:35:44 +01:00
Jan LarwigandGitHub 707e6c4a1c Merge pull request #3308 from oauth2-proxy/release/v7.14.0
release v7.14.0
v7.14.0
2026-01-17 11:15:40 +01:00
Jan Larwig 1f29953b7b docs: add todo for revamping the usage / naming of PassHostHeader
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-17 11:06:24 +01:00
Jan Larwig 3bc1a5373a doc: extend the alpha config changelog notice
Signed-off-by: Jan Larwig <jan@larwig.com>
2026-01-17 11:06:24 +01:00