webview: match host

pull/653/merge
Varun Patil 2023-05-23 20:03:11 -07:00
parent e5745d0c05
commit 23c784f2cd
1 changed files with 8 additions and 2 deletions

View File

@ -42,6 +42,7 @@ import gallery.memories.databinding.ActivityMainBinding
private var mNeedRefresh = false private var mNeedRefresh = false
private val memoriesRegex = Regex("/apps/memories/.*$") private val memoriesRegex = Regex("/apps/memories/.*$")
private var host: String? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -118,8 +119,9 @@ import gallery.memories.databinding.ActivityMainBinding
// Intercept local APIs // Intercept local APIs
binding.webview.webViewClient = object : WebViewClient() { binding.webview.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean { override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
// TODO: check host as well val pathMatches = request.url.path?.matches(memoriesRegex) == true
if (request.url.path?.matches(memoriesRegex) == true) { val hostMatches = request.url.host.equals(host)
if (pathMatches && hostMatches) {
return false return false
} }
@ -178,6 +180,10 @@ import gallery.memories.databinding.ActivityMainBinding
// Load app interface if authenticated // Load app interface if authenticated
if (authHeader != null && memoriesUrl != null) { if (authHeader != null && memoriesUrl != null) {
// Get host name
host = Uri.parse(memoriesUrl).host
// Set authorization header
binding.webview.loadUrl(memoriesUrl, mapOf( binding.webview.loadUrl(memoriesUrl, mapOf(
"Authorization" to authHeader "Authorization" to authHeader
)) ))