Don't require a prefix when configuring byte arrays

This commit is contained in:
Eike Kettner 2020-01-05 15:28:57 +01:00
parent 993a3d05e2
commit 9020d9aa3b
2 changed files with 4 additions and 3 deletions

View File

@ -27,9 +27,9 @@ object Implicits {
ConfigReader[String].emap(reason(str => {
if (str.startsWith("hex:")) ByteVector.fromHex(str.drop(4)).toRight("Invalid hex value.")
else if (str.startsWith("b64:")) ByteVector.fromBase64(str.drop(4)).toRight("Invalid Base64 string.")
else ByteVector.fromHex(str).toRight("Invalid hex value.")
else ByteVector.encodeUtf8(str).left.map(ex => s"Invalid utf8 string: ${ex.getMessage}")
}))
def reason[A: ClassTag](f: String => Either[String, A]): String => Either[FailureReason, A] =
in => f(in).left.map(str => CannotConvert(in, implicitly[ClassTag[A]].runtimeClass.toString, str))
}
}

View File

@ -187,7 +187,8 @@ The `server-secret` is used to sign the token. If multiple REST
servers are deployed, all must share the same server secret. Otherwise
tokens from one instance are not valid on another instance. The secret
can be given as Base64 encoded string or in hex form. Use the prefix
`hex:` and `b64:`, respectively.
`hex:` and `b64:`, respectively. If no prefix is given, the UTF8 bytes
of the string are used.
The `session-valid` deterimens how long a token is valid. This can be
just some minutes, the web application obtains new ones