{"id":22199275,"url":"https://github.com/babbel/okhttp-aws-signer","last_synced_at":"2025-07-27T02:31:59.390Z","repository":{"id":48778840,"uuid":"151228117","full_name":"babbel/okhttp-aws-signer","owner":"babbel","description":"AWS V4 signing algorithm for OkHttp requests","archived":false,"fork":false,"pushed_at":"2023-07-14T13:34:15.000Z","size":114,"stargazers_count":30,"open_issues_count":5,"forks_count":1,"subscribers_count":64,"default_branch":"master","last_synced_at":"2023-08-06T21:53:43.691Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/babbel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2018-10-02T09:06:07.000Z","updated_at":"2023-07-29T03:58:06.000Z","dependencies_parsed_at":"2023-01-18T20:31:33.223Z","dependency_job_id":null,"html_url":"https://github.com/babbel/okhttp-aws-signer","commit_stats":null,"previous_names":[],"tags_count":3,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babbel%2Fokhttp-aws-signer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babbel%2Fokhttp-aws-signer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babbel%2Fokhttp-aws-signer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/babbel%2Fokhttp-aws-signer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/babbel","download_url":"https://codeload.github.com/babbel/okhttp-aws-signer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227750210,"owners_count":17814129,"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-12-02T15:13:49.477Z","updated_at":"2024-12-02T15:13:52.775Z","avatar_url":"https://github.com/babbel.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Okhttp AWS Signer\n\nThis is a kotlin library that implements the AWS V4 signing algorithm described [here](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html) for the [OkHttp](https://square.github.io/okhttp/) requests. It has no dependency on the Amazon sdks.\n\n## Getting the library \n\nCurrently the easiest way to get the library is by using [JitPack](https://jitpack.io/)\n\n```groovy\ndependencies {\n    implementation 'com.github.babbel:okhttp-aws-signer:\u003ctag\u003e'\n}\n```\n\nYou can also create a fat JAR by executing the gradle task `shadowJar`. This task comes from the [shadow](https://github.com/johnrengelman/shadow) plugin.\n\n## Usage\n\nYou'll need to first setup the signer object:\n\n```kotlin\nval signer = OkHttpAwsV4Signer(region, serviceName)\n```\n\n`region` is the region you have your services running, i.e., `eu-west-1`.\n\n`serviceName` should be the name of the service your calling, i.e., `execute-api`.\n\nOnce you have a request you can easily sign it with:\n\n```kotlin\nval newRequest = signer.sign(request, accessKeyId, accessKey)\n```\n\nThe signing algorithm requires that the `host` and the `x-amz-date` headers be present in the request prior to signing. Please make sure to include them. The `x-amz-date` header must be formatted with the pattern `\"yyyyMMdd'T'HHmmss'Z'\"`.\n\n## Developing\n\nAll changes are welcomed in the form of PRs. Please explain the change in the PR's description. We'll make our best to be swift in getting it through.\n\nThe gradle wrapper is not versioned under the repo, but can be easily downloaded by executing the task `wrapper` inside the file `wrapper.gradle`. A typical execution of this looks like:\n\n```bash\ngradle wrapper -b wrapper.gradle\n```\n\nTo run the tests, please execute:\n\n```bash\n./gradlew clean test \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabbel%2Fokhttp-aws-signer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbabbel%2Fokhttp-aws-signer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbabbel%2Fokhttp-aws-signer/lists"}