From c8e437fcb1d6c3739419537014ff9bf9841e8cac Mon Sep 17 00:00:00 2001 From: usbharu Date: Mon, 23 Sep 2024 12:56:02 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20SignatureBase.kt=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signature-Inputヘッダーを生成しやすいように --- .../dev/usbharu/httpsignature/v2/SignatureBase.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt b/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt index 66fe13f..d9acca9 100644 --- a/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt +++ b/src/main/kotlin/dev/usbharu/httpsignature/v2/SignatureBase.kt @@ -15,7 +15,13 @@ class SignatureBase() { val signatureBase = list.values.joinToString(postfix = "\n") { component -> "${component.componentIdentifier}: ${component.componentValue}\n" } - val signatureParams = listOfNotNull( + val signatureParams = "\"@signature-params\":" + generateSignatureParameterString(signatureParameter) + + return signatureBase + signatureParams + } + + fun generateSignatureParameterString(signatureParameter: SignatureParameter): String { + return listOfNotNull( list.keys.joinToString(" ", "(", ")"), signatureParameter.algorithm?.let { algorithm -> "alg=\"${algorithm.value}\"" }, signatureParameter.keyId?.let { keyId -> "keyid=\"$keyId\"" }, @@ -23,8 +29,6 @@ class SignatureBase() { signatureParameter.expires?.let { expires -> "expires=$expires" }, signatureParameter.nonce?.let { nonce -> "nonce=\"$nonce\"" }, signatureParameter.tag?.let { tag -> "tag=\"$tag\"" }, - ).joinToString(";", prefix = "\"@signature-params\": ") - - return signatureBase + signatureParams + ).joinToString(";") } }