Merge pull request #5198 from nextcloud/issue-5181-login-local-host

Allows login to locally hosted instances
This commit is contained in:
Julius Linus 2025-07-28 11:47:12 -05:00 committed by GitHub
commit e1da30c61d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -25,6 +25,7 @@ import androidx.work.WorkManager
import autodagger.AutoInjector
import com.google.android.material.snackbar.Snackbar
import com.google.gson.JsonParser
import com.nextcloud.talk.BuildConfig
import com.nextcloud.talk.R
import com.nextcloud.talk.activities.BaseActivity
import com.nextcloud.talk.activities.MainActivity
@ -104,7 +105,7 @@ class BrowserLoginActivity : BaseActivity() {
binding = ActivityWebViewLoginBinding.inflate(layoutInflater)
okHttpClient = OkHttpClient.Builder()
.cookieJar(CookieJar.NO_COOKIES)
.connectionSpecs(listOf(ConnectionSpec.COMPATIBLE_TLS))
.setDebuggableConnectionSpecs()
.sslSocketFactory(socketFactory, trustManager)
.hostnameVerifier { _: String?, _: SSLSession? -> true }
.build()
@ -118,6 +119,14 @@ class BrowserLoginActivity : BaseActivity() {
lifecycle.addObserver(lifecycleEventObserver)
}
// CLEARTEXT is insecure, so this checks if the app is in debug mode, before enabling it
private fun OkHttpClient.Builder.setDebuggableConnectionSpecs(): OkHttpClient.Builder =
if (BuildConfig.DEBUG) {
this.connectionSpecs(listOf(ConnectionSpec.COMPATIBLE_TLS, ConnectionSpec.CLEARTEXT))
} else {
this.connectionSpecs(listOf(ConnectionSpec.COMPATIBLE_TLS))
}
private fun handleIntent() {
val extras = intent.extras!!
baseUrl = extras.getString(KEY_BASE_URL)