Class ApiKeyExtension<G>
java.lang.Object
dev.relism.flash.ext.security.apikey.ApiKeyExtension<G>
- All Implemented Interfaces:
dev.relism.flash.ext.security.AuthenticationMechanism,dev.relism.flash.extension.FlashExtension
public final class ApiKeyExtension<G>
extends Object
implements dev.relism.flash.extension.FlashExtension, dev.relism.flash.ext.security.AuthenticationMechanism
API keys sent as
Authorization: Bearer <prefix>_<id>.<secret>. The prefix makes a key
recognisable at a glance and to secret scanners; the id is what the store is queried by; only a
SHA-256 of the secret is ever stored — a KDF would add nothing to 192 random bits.
app.install(new SecurityExtension())
.install(new ApiKeyExtension<>("gk", keys::find));
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondev.relism.flash.ext.security.Principalauthenticate(dev.relism.flash.models.Request req) voidconfigure(dev.relism.flash.extension.FlashRegistrar<?> app, dev.relism.flash.extension.FlashContext ctx) generate()A new key: 72 bits of id, 192 bits of secret.dev.relism.flash.ext.security.SecuritySchemescheme()
-
Constructor Details
-
ApiKeyExtension
- Parameters:
prefix- identifies this application's keys; letters and digits only
-
-
Method Details
-
generate
A new key: 72 bits of id, 192 bits of secret. -
authenticate
public dev.relism.flash.ext.security.Principal authenticate(dev.relism.flash.models.Request req) - Specified by:
authenticatein interfacedev.relism.flash.ext.security.AuthenticationMechanism
-
scheme
public dev.relism.flash.ext.security.SecurityScheme scheme()- Specified by:
schemein interfacedev.relism.flash.ext.security.AuthenticationMechanism
-
configure
public void configure(dev.relism.flash.extension.FlashRegistrar<?> app, dev.relism.flash.extension.FlashContext ctx) - Specified by:
configurein interfacedev.relism.flash.extension.FlashExtension
-