diff --git a/pom.xml b/pom.xml
index e22c12053..eb51c66b6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -298,12 +298,6 @@
${javafx.version}
pom
-
- org.openjfx
- javafx-web
- ${javafx.version}
- pom
-
org.xeustechnologies
jcl-core
diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/account/add/MicrosoftAddController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/account/add/MicrosoftAddController.kt
index b7a1e41f1..85c2018b6 100644
--- a/src/main/java/de/bixilon/minosoft/gui/eros/main/account/add/MicrosoftAddController.kt
+++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/account/add/MicrosoftAddController.kt
@@ -13,29 +13,24 @@
package de.bixilon.minosoft.gui.eros.main.account.add
-import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
-import de.bixilon.kutil.http.QueryUtil.fromQuery
import de.bixilon.minosoft.config.profile.profiles.eros.ErosProfileManager
import de.bixilon.minosoft.data.accounts.types.microsoft.MicrosoftAccount
import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController
-import de.bixilon.minosoft.gui.eros.dialog.ErosErrorReport.Companion.report
import de.bixilon.minosoft.gui.eros.main.account.AccountController
import de.bixilon.minosoft.gui.eros.util.JavaFXUtil
-import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil.toResourceLocation
-import de.bixilon.minosoft.util.account.microsoft.MicrosoftOAuthUtils
-import javafx.concurrent.Worker
import javafx.fxml.FXML
-import javafx.scene.web.WebView
+import javafx.scene.control.TextField
+import javafx.scene.text.TextFlow
import javafx.stage.Modality
-import java.net.URL
class MicrosoftAddController(
private val accountController: AccountController,
private val account: MicrosoftAccount? = null,
) : JavaFXWindowController() {
- @FXML private lateinit var webView: WebView
+ @FXML private lateinit var textFX: TextFlow
+ @FXML private lateinit var codeFX: TextField
fun show() {
@@ -49,44 +44,10 @@ class MicrosoftAddController(
super.init()
val profile = ErosProfileManager.selected.general.accountProfile
- JavaFXUtil.resetWebView()
- webView.engine.isJavaScriptEnabled = true
- webView.isContextMenuEnabled = false
- webView.engine.loadContent("Loading...")
- webView.engine.loadWorker.stateProperty().addListener { _, _, new ->
- if (new == Worker.State.SUCCEEDED) {
- val location = webView.engine.location
- if (!location.startsWith("ms-xal-" + ProtocolDefinition.MICROSOFT_ACCOUNT_APPLICATION_ID)) {
- return@addListener
- }
- JavaFXUtil.resetWebView()
-
- DefaultThreadPool += {
- try {
- // ms-xal-00000000402b5328://auth/?code=M.R3_BL2.9c86df10-b29b-480d-9094-d8accb31e4a5
- val account = MicrosoftOAuthUtils.loginToMicrosoftAccount(URL(location).query.fromQuery()["code"]!!)
- profile.entries[account.id] = account
- profile.selected = account
- JavaFXUtil.runLater { accountController.refreshList() }
- } catch (exception: Exception) {
- exception.printStackTrace()
- exception.report()
- }
-
- JavaFXUtil.runLater { stage.scene.window.hide() }
- }
- }
- }
- requestOauthFlowToken()
- }
-
- private fun requestOauthFlowToken() {
- webView.engine.load(ProtocolDefinition.MICROSOFT_ACCOUNT_OAUTH_FLOW_URL)
}
companion object {
private val LAYOUT = "minosoft:eros/main/account/add/microsoft.fxml".toResourceLocation()
-
private val TITLE = "minosoft:main.account.add.microsoft.title".toResourceLocation()
}
}
diff --git a/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt b/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt
index f7b2221ac..639a089cc 100644
--- a/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt
+++ b/src/main/java/de/bixilon/minosoft/util/account/microsoft/MicrosoftOAuthUtils.kt
@@ -90,10 +90,11 @@ object MicrosoftOAuthUtils {
"TokenType" to "JWT",
).postJson(ProtocolDefinition.MICROSOFT_ACCOUNT_XBOX_LIVE_AUTHENTICATE_URL)
- response.body!!
- if (response.statusCode != 200) {
+
+ if (response.statusCode != 200 || response.body == null) {
throw LoginException(response.statusCode, "Could not authenticate with xbox live token", response.body.toString())
}
+
return Pair(response.body["Token"].unsafeCast(), response.body["DisplayClaims"].asJsonObject()["xui"].asJsonList()[0].asJsonObject()["uhs"].unsafeCast())
}
diff --git a/src/main/resources/assets/minosoft/eros/main/account/add/microsoft.fxml b/src/main/resources/assets/minosoft/eros/main/account/add/microsoft.fxml
index 93f642b6d..f36874179 100644
--- a/src/main/resources/assets/minosoft/eros/main/account/add/microsoft.fxml
+++ b/src/main/resources/assets/minosoft/eros/main/account/add/microsoft.fxml
@@ -1,6 +1,5 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+