Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,12 @@ class AuthUIConfigurationBuilder {
"At least one provider must be configured"
}

// No unsupported providers (allow predefined providers and custom OIDC providers starting with "oidc.")
// No unsupported providers (allow predefined providers and custom OIDC/SAML providers)
val supportedProviderIds = Provider.entries.map { it.id }.toSet()
val customPrefixes = listOf("oidc.", "saml.")
val unknownProviders = providers.filter { provider ->
provider.providerId !in supportedProviderIds && !provider.providerId.startsWith("oidc.")
provider.providerId !in supportedProviderIds &&
customPrefixes.none { provider.providerId.startsWith(it) }
}
Comment thread
demolaf marked this conversation as resolved.
require(unknownProviders.isEmpty()) {
"Unknown providers: ${unknownProviders.joinToString { it.providerId }}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ class AuthUIConfigurationTest {
}

@Test
fun `validation accepts custom OIDC providers`() {
fun `validation accepts custom OIDC and SAML providers`() {
val linkedInProvider = AuthProvider.GenericOAuth(
providerName = "LinkedIn",
providerId = "oidc.linkedin",
Expand All @@ -348,17 +348,30 @@ class AuthUIConfigurationTest {
contentColor = null,
)

val samlProvider = AuthProvider.GenericOAuth(
providerName = "Corp SSO",
providerId = "saml.corp-sso",
scopes = listOf(),
customParameters = mapOf(),
buttonLabel = "Sign in with Corp SSO",
buttonIcon = null,
buttonColor = null,
contentColor = null,
)

val config = authUIConfiguration {
context = applicationContext
providers {
provider(linkedInProvider)
provider(oktaProvider)
provider(samlProvider)
}
}

assertThat(config.providers).hasSize(2)
assertThat(config.providers).hasSize(3)
assertThat(config.providers[0].providerId).isEqualTo("oidc.linkedin")
assertThat(config.providers[1].providerId).isEqualTo("oidc.okta")
assertThat(config.providers[2].providerId).isEqualTo("saml.corp-sso")
}

@Test
Expand Down
Loading