Add OAuth token revocation support

Add RFC 7009 revocation to the native HTTP client and wire Google and
Keycloak to their provider revocation endpoints.

Flush cached Git-over-HTTP validations when core revokes a token, using
targeted invalidation when possible and a full flush when the account
cannot be mapped safely.

Depends-On: https://gerrit-review.googlesource.com/c/gerrit/+/630424
Change-Id: I74514da03cd5a75e26ec7549c1f0a9ebec9c032d
14 files changed
tree: 8df9a1d53510c0b47a8e5a573e69b1a0373ffc8b
  1. .settings/
  2. contrib/
  3. src/
  4. tools/
  5. .bazelignore
  6. .bazelrc
  7. .bazelversion
  8. .gitignore
  9. .travis.yml
  10. BUILD
  11. external_plugin_deps.MODULE.bazel
  12. LICENSE
  13. MODULE.bazel
  14. MODULE.bazel.lock
  15. oauth_plugin_deps.lock.json
  16. oauth_third_party_runtime_jars.allowlist.txt
  17. README.md
README.md

Gerrit OAuth2 authentication provider

With this plugin Gerrit can use OAuth2 protocol for authentication. Supported OAuth providers:

Auth0, Authentik, Amazon Cognito, LemonLDAP::NG and Tuleap were previously shipped as dedicated providers. They are standard OpenID Connect providers, so they have been removed in favour of the generic Discovery provider; see Documentation/config-discovery.md for how to migrate their configuration.

See Documentation/providers.md for a per-provider capability matrix, and the Wiki for what it can do for you.

Prebuilt artifacts

Prebuilt binary artifacts are available on release page. Make sure to pick the right JAR for your Gerrit version.

Build

To build the plugin with Bazel, install Bazel and run the following:

  git clone https://gerrit.googlesource.com/plugins/oauth
  cd oauth && bazel build oauth

Install

Copy the bazel-bin/oauth.jar to $gerrit_site/plugins and re-run init to configure it:

  java -jar gerrit.war init -d <site>
  [...]
  *** OAuth Authentication Provider
  ***
  Use Bitbucket OAuth provider for Gerrit login ? [Y/n]? n
  Use Google OAuth provider for Gerrit login ? [Y/n]?
  Application client id          : <client-id>
  Application client secret      : 
                confirm password : 
  Link to OpenID accounts? [true]: 
  Use GitHub OAuth provider for Gerrit login ? [Y/n]? n

Reporting bugs

Make sure to read the FAQ before reporting issues.

License

Apache License 2.0