WS auth, currently times-out for some reason

This commit is contained in:
Syer10
2025-10-17 12:54:49 -04:00
parent f0a9f7aff1
commit d98ae70c91
10 changed files with 332 additions and 34 deletions

View File

@@ -9,21 +9,36 @@ package ca.gosyer.jui.domain.migration.interactor
import ca.gosyer.jui.domain.build.BuildKonfig
import ca.gosyer.jui.domain.migration.service.MigrationPreferences
import ca.gosyer.jui.domain.reader.service.ReaderPreferences
import ca.gosyer.jui.domain.server.model.Auth
import ca.gosyer.jui.domain.server.service.ServerPreferences
import me.tatarka.inject.annotations.Inject
@Inject
class RunMigrations(
private val migrationPreferences: MigrationPreferences,
private val readerPreferences: ReaderPreferences,
private val serverPreferences: ServerPreferences,
) {
fun runMigrations() {
val code = migrationPreferences.version().get()
if (code <= 0) {
readerPreferences.modes().get().forEach {
readerPreferences.getMode(it).direction().delete()
}
val oldVersion = migrationPreferences.version().get()
if (oldVersion < BuildKonfig.MIGRATION_CODE) {
migrationPreferences.version().set(BuildKonfig.MIGRATION_CODE)
return
// Fresh install
if (oldVersion == 0) {
readerPreferences.modes().get().forEach {
readerPreferences.getMode(it).direction().delete()
}
return
}
if (oldVersion < 6) {
val authPreference = serverPreferences.auth()
@Suppress("DEPRECATION")
if (authPreference.get() == Auth.DIGEST) {
authPreference.set(Auth.NONE)
}
}
}
}
}

View File

@@ -23,9 +23,7 @@ import io.ktor.client.plugins.HttpTimeout
import io.ktor.client.plugins.api.Send
import io.ktor.client.plugins.api.createClientPlugin
import io.ktor.client.plugins.auth.providers.BasicAuthCredentials
import io.ktor.client.plugins.auth.providers.DigestAuthCredentials
import io.ktor.client.plugins.auth.providers.basic
import io.ktor.client.plugins.auth.providers.digest
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
import io.ktor.client.plugins.defaultRequest
import io.ktor.client.plugins.logging.LogLevel
@@ -151,7 +149,7 @@ private fun getHttpClient(
}
}
when (auth) {
Auth.NONE -> Unit
Auth.NONE, Auth.DIGEST -> Unit
Auth.BASIC -> AuthPlugin {
basic {
@@ -167,16 +165,6 @@ private fun getHttpClient(
}
}
Auth.DIGEST -> AuthPlugin {
digest {
credentials {
DigestAuthCredentials(
authUsername,
authPassword,
)
}
}
}
Auth.SIMPLE -> install(SimpleAuthPlugin) {
this.simpleSessionPreference = simpleSessionPreference
}

View File

@@ -14,6 +14,7 @@ import kotlinx.serialization.Serializable
enum class Auth {
NONE,
BASIC,
@Deprecated("")
DIGEST,
SIMPLE,
UI,

View File

@@ -7,7 +7,7 @@
package ca.gosyer.jui.domain.updates.interactor
import ca.gosyer.jui.domain.build.BuildKonfig
import ca.gosyer.jui.domain.server.Http
import ca.gosyer.jui.domain.server.HttpNoAuth
import ca.gosyer.jui.domain.updates.model.GithubRelease
import ca.gosyer.jui.domain.updates.service.UpdatePreferences
import com.diamondedge.logging.logging
@@ -24,7 +24,7 @@ import me.tatarka.inject.annotations.Inject
@Inject
class UpdateChecker(
private val updatePreferences: UpdatePreferences,
private val client: Http,
private val client: HttpNoAuth,
) {
suspend fun await(
manualFetch: Boolean,

View File

@@ -8,7 +8,7 @@ class UserPreferences(
) {
fun uiRefreshToken(): Preference<String> = preferenceStore.getString("ui_refresh_token", "")
fun uiAccessToken(): Preference<String> = preferenceStore.getString("ui_refresh_token", "")
fun uiAccessToken(): Preference<String> = preferenceStore.getString("ui_access_token", "")
fun simpleSession(): Preference<String> = preferenceStore.getString("simple_session", "")
}