Skip to content

Commit

Permalink
Clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
n0900 committed Oct 7, 2024
1 parent 6c9f0e2 commit c1f4f92
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 24 deletions.
Original file line number Diff line number Diff line change
@@ -1,26 +1,11 @@
package at.asitplus.wallet.lib.oidc

import at.asitplus.openid.RequestParameters
import kotlinx.serialization.DeserializationStrategy
import at.asitplus.openid.RequestParametersSerializer
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JsonContentPolymorphicSerializer
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.jsonObject

@Serializable
sealed interface RequestParametersFrom {
@Serializable(with = RequestParametersSerializer::class)
val parameters: RequestParameters
}

object RequestParametersFromSerializer :
JsonContentPolymorphicSerializer<RequestParametersFrom>(RequestParametersFrom::class) {
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<RequestParametersFrom> {
val parameters = element.jsonObject["parameters"]?.jsonObject
return parameters?.let {
when {
"signatureQualifier" in it -> SignatureRequestParametersFrom.serializer()
else -> AuthenticationRequestParametersFrom.serializer()
}
} ?: throw Exception("Invalid parameters")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,29 +66,26 @@ class RequestParser(

is SignatureRequestParameters ->
SignatureRequestParametersFrom.Uri(it, result)
.also { Napier.d { "It did make a difference for URI" } }
}
}
// }
}.onFailure { it.printStackTrace() }.getOrNull()
?: catching { // maybe it is already a JSON string
// val params = AuthenticationRequestParameters.deserialize(input).getOrThrow()
// AuthenticationRequestParametersFrom.Json(input, params)
when (val params = jsonSerializer.decodeFromString(RequestParametersSerializer, input)) {
is AuthenticationRequestParameters ->
AuthenticationRequestParametersFrom.Json(input, params)

is SignatureRequestParameters ->
SignatureRequestParametersFrom.Json(input, params)
.also { Napier.d { "It did make a difference for Json" } }
}
}.getOrNull()
?: throw OAuth2Exception(Errors.INVALID_REQUEST)
.also { Napier.w("Could not parse authentication request: $input") }

Napier.d { "it is of type ${parsedParams::class}" }
val extractedParams =
parsedParams.let { extractRequestObject(it.parameters as AuthenticationRequestParameters) ?: it }
(parsedParams.parameters as? AuthenticationRequestParameters)?.let {
extractRequestObject(it)
} ?: parsedParams
.also { Napier.i("Parsed authentication request: $it") }
extractedParams
}
Expand Down Expand Up @@ -119,7 +116,6 @@ class RequestParser(

is SignatureRequestParameters ->
SignatureRequestParametersFrom.JwsSigned(jws, params)
.also { Napier.d { "It did make a difference for JwsSigned" } }
}
} else null
.also { Napier.w("parseRequestObjectJws: Signature not verified for $jws") }
Expand Down

0 comments on commit c1f4f92

Please sign in to comment.