{"id":18320874,"url":"https://github.com/bazaarvoice/jersey-hmac-auth","last_synced_at":"2025-08-02T19:07:17.357Z","repository":{"id":13820344,"uuid":"16516859","full_name":"bazaarvoice/jersey-hmac-auth","owner":"bazaarvoice","description":"HMAC authentication for server and client","archived":false,"fork":false,"pushed_at":"2023-12-21T19:00:10.000Z","size":260,"stargazers_count":31,"open_issues_count":30,"forks_count":33,"subscribers_count":72,"default_branch":"master","last_synced_at":"2023-12-21T20:26:26.680Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bazaarvoice.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2014-02-04T16:02:09.000Z","updated_at":"2024-04-14T17:53:43.250Z","dependencies_parsed_at":"2023-12-21T20:32:24.318Z","dependency_job_id":null,"html_url":"https://github.com/bazaarvoice/jersey-hmac-auth","commit_stats":null,"previous_names":[],"tags_count":20,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fjersey-hmac-auth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fjersey-hmac-auth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fjersey-hmac-auth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fjersey-hmac-auth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bazaarvoice","download_url":"https://codeload.github.com/bazaarvoice/jersey-hmac-auth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411238,"owners_count":20934650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-05T18:17:44.444Z","updated_at":"2025-04-05T22:32:06.334Z","avatar_url":"https://github.com/bazaarvoice.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jersey-hmac-auth\n\nJersey-based HMAC authentication for the client and server.\n\nThis library makes it easy to add HMAC authentication to REST API's that are implemented using the \n[Jersey](https://jersey.java.net) library. Note that this also works for Jersey-based frameworks, like\n[Dropwizard](http://dropwizard.io/). \n\nHMAC authentication provides a way for you to ensure the integrity and authenticity of API requests. You grant \nAPI access to permitted callers by giving each one an API key and a secret key that they use when generating requests.\nYou can use this library to add support for HMAC authentication on the client and server.\n\nOn the client side, e.g. in an SDK library that interfaces with the API, the client must build requests following the\nauthentication contract that jersey-hmac-auth implements. You can do this in any language. However, the jersey-hmac-auth\nlibrary provides support in Java for client libraries that use the Jersey \n[Client](https://jersey.java.net/nonav/apidocs/1.17/jersey/com/sun/jersey/api/client/Client.html) for making HTTP requests.\n\n## Getting Started\n\n### Server Side\n\n* [Jersey 2.x](server2) - `org.glassfish.jersey`\n* [Jersey 1.x](server) - `com.sun.jersey`\n* [Jersey 2.x Sample](sample-jersey2)\n\n### Client Side\n\n* [Jersey 2.x](client2) - `org.glassfish.jersey`\n* [Jersey 1.x](client) - `com.sun.jersey`\n\n## HMAC Versions\n\nThe HMAC [version](https://github.com/bazaarvoice/jersey-hmac-auth/blob/master/common/src/main/java/com/bazaarvoice/auth/hmac/common/Version.java) so far have only been used to distinguished between using POST/PUT data in signature or not.\n\nThe server _may_ support any number of versions, however client must supply a version and appropriate include or not include data in signature. \n\n* **Version 1** - Has mixed implementations for including content data in signature (deprecated)\n* **Version 2** - Will not include content data in signature\n* **Version 3** - Will include content data in signature\n\n\n## User Guide\n\nSee the [User Guide](https://github.com/bazaarvoice/jersey-hmac-auth/wiki) for more details.\n\n\n## Contributing\n\nTo build and run tests locally:\n\n```sh\n$ git clone git@github.com:bazaarvoice/jersey-hmac-auth.git\n$ cd jersey-hmac-auth\n$ mvn clean install\n```\n\nTo submit a new request or issue, please visit the [Issues](https://github.com/bazaarvoice/jersey-hmac-auth/issues) page.\n\nPull requests are always welcome.\n\n## Continuous Integration\n\n[![Build Status](https://travis-ci.org/bazaarvoice/jersey-hmac-auth.png?branch=master)](https://travis-ci.org/bazaarvoice/jersey-hmac-auth)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazaarvoice%2Fjersey-hmac-auth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbazaarvoice%2Fjersey-hmac-auth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazaarvoice%2Fjersey-hmac-auth/lists"}