diff --git a/modules/security/src/main/FingerPrint.scala b/modules/security/src/main/FingerPrint.scala index 78492a137be6..6b61cbfbe050 100644 --- a/modules/security/src/main/FingerPrint.scala +++ b/modules/security/src/main/FingerPrint.scala @@ -17,13 +17,18 @@ object FingerHash { import org.apache.commons.codec.binary.Hex FingerHash { Base64.getEncoder encodeToString { - Hex decodeHex print.value.replace("-", "").toArray + Hex decodeHex normalize(print).toArray } take length } some } catch { case _: Exception => none } + private def normalize(fp: FingerPrint): String = { + val str = fp.value.replace("-", "") + if (str.size % 2 == 1) s"${str}0" else str + } + val impersonate = FingerHash("imperson") implicit val fingerHashIso = Iso.string[FingerHash](FingerHash.apply, _.value)