redbubble / finagle-hawk

HTTP Holder-Of-Key Authentication Scheme for Finagle

GitHub

Build status

HAWK Support for Finagle/Finch

HTTP Holder-Of-Key Authentication Scheme (Hawk) support for Finagle.

Note that it currently doesn't support Response Payload Validation.

Almost all of this library is Finagle agnostic, only HawkAuthenticateRequestFilter is tied to Finagle.

If you like this, you might like other open source code from Redbubble:

  • rb-scala-utils - Miscellaneous utilities (common code) for building Scala-based services, using Finch (on which this project depends).
  • finch-template - A template project for Finch-based services.
  • rb-graphql-template - A template for Scala HTTP GraphQL services.
  • finch-sangria - A simple wrapper for using Sangria from within Finch;

Setup

You will need to add something like the following to your build.sbt:

resolvers += Resolver.jcenterRepo

libraryDependencies += "com.redbubble" %% "finagle-hawk" % "0.3.1"

Usage

val creds = Credentials(KeyId("Key ID"), Key("8e2dd2949b0e30c544336f73f94e2df3"), Sha256)

object AuthenticationFilter extends HawkAuthenticateRequestFilter(creds)

val authenticatedService = AuthenticationFilter andThen service

Release

For contributors, a cheat sheet to making a new release:

$ git commit -m "New things" && git push
$ git tag -a v0.0.3 -m "v0.0.3"
$ git push --tags
$ ./sbt publish

Contributing

Issues and pull requests are welcome. Code contributions should be aligned with the above scope to be included, and include unit tests.