Skip to content

Commit bffe259

Browse files
committed
Adjust filter usage
1 parent 7a301d3 commit bffe259

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/CredentialConfigurationFilter.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package eu.europa.ec.eudi.wallet.issue.openid4vci
1919
import eu.europa.ec.eudi.openid4vci.CredentialConfiguration
2020
import eu.europa.ec.eudi.openid4vci.MsoMdocCredential
2121
import eu.europa.ec.eudi.openid4vci.SdJwtVcCredential
22+
import io.ktor.util.reflect.instanceOf
2223
import kotlin.reflect.KClass
2324

2425
/**
@@ -60,14 +61,22 @@ internal fun interface CredentialConfigurationFilter {
6061
FormatFilter(SdJwtVcCredential::class)
6162

6263

64+
internal val SdJwtOrMsoMdocFormatFilter: CredentialConfigurationFilter =
65+
CredentialConfigurationFilter {
66+
it.instanceOf(SdJwtVcCredential::class) || it.instanceOf(MsoMdocCredential::class)
67+
}
68+
6369
/**
6470
* Filter for [CredentialConfiguration] instances based on the document type.
6571
* @param docType document type
6672
* @return [CredentialConfigurationFilter] instance
6773
*/
6874
@JvmSynthetic
6975
internal fun DocTypeFilter(docType: String): CredentialConfigurationFilter =
70-
Compose(MsoMdocFormatFilter, SdJwtFormatFilter, CredentialConfigurationFilter { conf -> conf.docType == docType })
76+
Compose(
77+
MsoMdocFormatFilter,
78+
SdJwtFormatFilter,
79+
CredentialConfigurationFilter { conf -> conf.docType == docType })
7180

7281
/**
7382
* Filter for [CredentialConfiguration] instances based on the proof type.

wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOpenId4VciManager.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,17 @@ internal class DefaultOpenId4VciManager(
7575
DocTypeFilter(docType),
7676
ProofTypeFilter(config.proofTypes)
7777
)
78+
7879
val credentialConfigurationId =
7980
credentialIssuerMetadata.credentialConfigurationsSupported.filterValues { conf ->
8081
credentialConfigurationFilter(conf)
81-
}.keys.firstOrNull() ?: throw IllegalStateException("No suitable configuration found")
82+
}.keys.takeUnless { it.isEmpty() } ?: throw IllegalStateException("No suitable configuration found")
8283

8384
val credentialOffer = CredentialOffer(
8485
credentialIssuerIdentifier = credentialIssuerId,
8586
credentialIssuerMetadata = credentialIssuerMetadata,
8687
authorizationServerMetadata = authorizationServerMetadata.first(),
87-
credentialConfigurationIdentifiers = listOf(credentialConfigurationId)
88+
credentialConfigurationIdentifiers = credentialConfigurationId.toList()
8889
)
8990

9091
val offer = DefaultOffer(credentialOffer, credentialConfigurationFilter)

0 commit comments

Comments
 (0)