object CSRF
- Source
- CSRF.scala
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- CSRF
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Type Members
- class CSRFBuilder[F[_], G[_]] extends AnyRef
- type CSRFCheck[F[_], G[_]] = (Request[G], F[Response[G]]) ⇒ F[Response[G]]
- type CSRFCheckFailed = CSRFCheckFailed.type
- abstract type CSRFToken
Value Members
- val CSRFTokenLength: Int
- val SigningAlgo: String
- def apply[F[_], G[_]](key: SecretKey, headerCheck: (Request[G]) ⇒ Boolean)(implicit arg0: Sync[F], arg1: Applicative[G]): CSRFBuilder[F, G]
-
def
buildSigningKey[F[_]](array: Array[Byte])(implicit F: Sync[F]): F[SecretKey]
Build a new HMACSHA1 Key for our CSRF Middleware from key bytes.
Build a new HMACSHA1 Key for our CSRF Middleware from key bytes. This operation is unsafe, in that any amount less than 20 bytes will throw an exception when loaded into
Mac
. Any keys larger than 64 bytes are just hashed.For more information, refer to: https://tools.ietf.org/html/rfc2104#section-3
Use for loading a key from a config file, after having generated one safely
- def checkCSRFDefault[F[_], G[_]](implicit F: Sync[F]): (CSRF[F, G]) ⇒ CSRFCheck[F, G]
- def checkCSRFinHeaderAndForm[F[_], G[_]](fieldName: String, nt: ~>[G, F])(implicit arg0: Concurrent[G], F: Sync[F]): (CSRF[F, G]) ⇒ CSRFCheck[F, G]
-
def
defaultOriginCheck[F[_]](r: Request[F], host: String, sc: Scheme, port: Option[Int]): Boolean
Check origin matches our proposed origin.
-
def
generateSigningKey[F[_]]()(implicit F: Sync[F]): F[SecretKey]
Generate a signing Key for the CSRF token
-
def
isEqual(s1: String, s2: String): Boolean
A Constant-time string equality
- def proxyOriginCheck[F[_]](r: Request[F], host: Host, xff: X-Forwarded-For): Boolean
-
def
tokensEqual(s1: CSRFToken, s2: CSRFToken): Boolean
A Constant-time string equality
- def unlift(s: CSRFToken): String
- def withDefaultOriginCheck[F[_], G[_]](key: SecretKey, host: String, scheme: Scheme, port: Option[Int])(implicit arg0: Sync[F], arg1: Applicative[G]): CSRFBuilder[F, G]
- def withDefaultOriginCheckFormAware[F[_], G[_]](fieldName: String, nt: ~>[G, F])(key: SecretKey, host: String, scheme: Scheme, port: Option[Int])(implicit arg0: Sync[F], arg1: Concurrent[G]): CSRFBuilder[F, G]
- def withGeneratedKey[F[_], G[_]](headerCheck: (Request[G]) ⇒ Boolean)(implicit arg0: Sync[F], arg1: Applicative[G]): F[CSRFBuilder[F, G]]
- def withKeyBytes[F[_], G[_]](keyBytes: Array[Byte], headerCheck: (Request[G]) ⇒ Boolean)(implicit arg0: Sync[F], arg1: Applicative[G]): F[CSRFBuilder[F, G]]
- object CSRFCheckFailed extends Exception with NoStackTrace with Product with Serializable