{"id":37020859,"url":"https://github.com/mzlnk/oauth2-exchange","last_synced_at":"2026-01-14T02:26:21.398Z","repository":{"id":57735892,"uuid":"442731010","full_name":"mzlnk/oauth2-exchange","owner":"mzlnk","description":"OAuth2 Exchange is a Java library that provides a bunch of functionalities for exchanging authorization code for an access token in OAuth2 Authorization Code Flow. ","archived":false,"fork":false,"pushed_at":"2022-03-10T21:15:58.000Z","size":298,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-07-26T10:15:18.834Z","etag":null,"topics":["java-17","oauth2","oauth2-authorization","oauth2-authorization-code-flow","spring-boot","spring-boot-starter"],"latest_commit_sha":null,"homepage":"https://github.com/mzlnk/oauth2-exchange","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mzlnk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-29T10:01:06.000Z","updated_at":"2022-03-10T18:25:11.000Z","dependencies_parsed_at":"2022-08-23T19:00:46.204Z","dependency_job_id":null,"html_url":"https://github.com/mzlnk/oauth2-exchange","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/mzlnk/oauth2-exchange","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzlnk%2Foauth2-exchange","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzlnk%2Foauth2-exchange/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzlnk%2Foauth2-exchange/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzlnk%2Foauth2-exchange/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mzlnk","download_url":"https://codeload.github.com/mzlnk/oauth2-exchange/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzlnk%2Foauth2-exchange/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java-17","oauth2","oauth2-authorization","oauth2-authorization-code-flow","spring-boot","spring-boot-starter"],"created_at":"2026-01-14T02:26:20.842Z","updated_at":"2026-01-14T02:26:21.391Z","avatar_url":"https://github.com/mzlnk.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OAuth2 Exchange Library for Java\r\n\r\n[![Licence: MIT](https://img.shields.io/badge/Licence-MIT-blue.svg)](https://shields.io/)\r\n[![Version: 0.1.1](https://img.shields.io/badge/version-0.1.1-blue.svg)](https://shields.io/)\r\n[![Java : 17](https://img.shields.io/badge/Java-17-orange.svg)](https://jdk.java.net/17/)\r\n[![Open Source](https://badges.frapsoft.com/os/v2/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)\r\n\r\n## About\r\nOAuth2 Exchange is a Java library that provides a bunch of functionalities for exchanging authorization code for an access token\r\nin OAuth2 Authorization Code Flow. It consists of templates and ready-to-use implementations for most common authorization providers \r\n(like Google or Facebook). The mentioned templates make a proper HTTP call to issue an access token based on provided authorization code. \r\nTherefore, you can save your time as you do not need to search through plenty of API docs or to implement a custom HTTP client just to \r\nexchange a code for a token - the library do it under the hood via a single method call ;)\r\n\r\nAccording to the [OAuth2 overview](https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2) found on DigitalOcean, \r\nthe library manages the step 4 (issuing a token from authorization code) and step 5 (receiving token response):\r\n\r\n![OAuth2 Authorization Code Flow diagram](https://assets.digitalocean.com/articles/oauth/auth_code_flow.png)\r\n\r\nApart from the core library which can be used in any Java project, there is also a dedicated starter for Spring Boot provided. It wraps the core library\r\nand automatically configures proper templates based on provided credentials via application properties. Therefore, you do not need to bother about declaring \r\nnecessary beans and other related stuff in your Spring Boot application ;)\r\n\r\nYou can find out more about implementation details and how to get started with a library on [GitHub wiki pages](https://github.com/mzlnk/oauth2-exchange/wiki/Welcome-to-the-OAuth2-Exchange-Wiki!) or official [Java docs](https://www.javadoc.io/doc/io.mzlnk.oauth2.exchange/oauth2-exchange-core).\r\n\r\n## Development\r\n\r\nThe whole project is currently in development, so you can expect plenty of updates over time. \r\n\r\n| type   | current version |\r\n| ------ | --------------- |\r\n| stable | 0.1.1           |\r\n| latest | 0.2.0-SNAPSHOT  |\r\n\r\n\r\n### Supported auth providers\r\n\r\nCurrently, the oauth2-exchange library provides *ready-to-use* support for the following auth providers:\r\n- [Facebook](https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/)\r\n- [GitHub](https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps)\r\n- [Google](https://developers.google.com/identity/protocols/oauth2/web-server)\r\n- [Keycloak](https://www.keycloak.org/docs/latest/server_admin/)\r\n- [Microsoft](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow)\r\n- [Okta](https://developer.okta.com/docs/reference/api/oidc/#_2-okta-as-the-identity-platform-for-your-app-or-api)\r\n\r\n\r\n### Snapshots\r\n\r\nEvery successfull build from `develop` branch is automatically deployed in form of snapshot to a public Sonatype repository.\r\n\r\n### See a bug?\r\n\r\nHave noticed a bug in a library? Do not hesitate to report it by creating an GitHub issue!\r\n\r\n### Want to contribute?\r\n\r\nIf you want to contribute to the source code:\r\n- find an issue you want to work on (or create a new one if you want to create something new)\r\n- fork the project\r\n- implement the feature/fix (do not forget about test coverage!)\r\n- create a pull request to `develop` branch\r\n\r\n## How to install\r\n\r\n### Standalone library\r\n\r\n#### Using Maven\r\n\r\nIf you want to use the core library itself in your Maven project - just include the dependency in your `pom.xml` file:\r\n```xml\r\n\u003cdependency\u003e\r\n    \u003cgroupId\u003eio.mzlnk.oauth2.exchange\u003c/groupId\u003e\r\n    \u003cartifactId\u003eoauth2-exchange-core\u003c/artifactId\u003e\r\n    \u003cversion\u003e0.1.1\u003c/version\u003e\r\n\u003c/dependency\u003e\r\n```\r\n\r\n#### Using Gradle\r\n\r\nIf you want to use the core library itself in your Gradle project - just include the dependency `build.gradle` file:\r\n```text\r\nimplementation 'io.mzlnk.oauth2.exchange:oauth2-exchange-core:0.1.1'\r\n```\r\n\r\n#### Using standalone JAR file\r\n\r\nIf you want to manually add the core library in your Java project - you can always download the proper JAR file from [Releases](https://github.com/mzlnk/oauth2-exchange/releases) page.\r\n\r\n\r\n### Starter for Spring Boot\r\n\r\n#### Using Maven\r\n\r\nIf you want to use the Spring Boot starter in your Maven project - just include the dependency in your `pom.xml` file:\r\n```xml\r\n\u003cdependency\u003e\r\n    \u003cgroupId\u003eio.mzlnk.oauth2.exchange\u003c/groupId\u003e\r\n    \u003cartifactId\u003eoauth2-exchange-spring-boot-starter\u003c/artifactId\u003e\r\n    \u003cversion\u003e0.1.1\u003c/version\u003e\r\n\u003c/dependency\u003e\r\n```\r\n\r\n#### Using Gradle\r\n\r\nIf you want to use the core library itself in your Gradle project - just include the dependency `build.gradle` file:\r\n```text\r\nimplementation 'io.mzlnk.oauth2.exchange:oauth2-exchange-spring-boot-starter:0.1.1'\r\n```\r\n\r\n## Documentation\r\n\r\nIf you want to get to know how the whole library works and how to use it in your project - you can check out [GitHub wiki pages](https://github.com/mzlnk/oauth2-exchange/wiki/Welcome-to-the-OAuth2-Exchange-Wiki!)\r\nwhich include guides and tutorials. There are also official [Java docs](https://www.javadoc.io/doc/io.mzlnk.oauth2.exchange/oauth2-exchange-core) for core library.\r\n\r\n## Credits\r\n\r\nThis starter is under MIT licence so feel free to use it for your personal or commercial use ;)\r\n\r\nCreated by Marcin Zielonka\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzlnk%2Foauth2-exchange","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmzlnk%2Foauth2-exchange","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzlnk%2Foauth2-exchange/lists"}