diff --git a/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt b/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt index 61e3e49b..5db1f5a2 100644 --- a/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt +++ b/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt @@ -2,7 +2,10 @@ package at.mocode.frontend.core.auth.data import com.sun.net.httpserver.HttpServer import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import kotlinx.coroutines.withTimeoutOrNull +import java.awt.Desktop import java.net.InetSocketAddress import java.net.URI @@ -59,7 +62,9 @@ actual suspend fun launchOidcFlow( // Browser öffnen try { - java.awt.Desktop.getDesktop().browse(URI(authUrl)) + withContext(Dispatchers.IO) { + Desktop.getDesktop().browse(URI(authUrl)) + } } catch (e: Exception) { server.stop(0) return OidcCallbackResult.Error("browser_error", "Browser konnte nicht geöffnet werden: ${e.message}")