|
@ -5,7 +5,8 @@ use serde_json::Value; |
|
|
|
|
|
|
|
|
use crate::{ |
|
|
use crate::{ |
|
|
api::{core::now, ApiResult, EmptyResult}, |
|
|
api::{core::now, ApiResult, EmptyResult}, |
|
|
auth::decode_file_download, |
|
|
auth::{decode_file_download, BaseURL}, |
|
|
|
|
|
config::extract_url_host, |
|
|
error::Error, |
|
|
error::Error, |
|
|
util::{Cached, SafeString}, |
|
|
util::{Cached, SafeString}, |
|
|
CONFIG, |
|
|
CONFIG, |
|
@ -62,9 +63,15 @@ fn web_index_head() -> EmptyResult { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
#[get("/app-id.json")] |
|
|
#[get("/app-id.json")] |
|
|
fn app_id() -> Cached<(ContentType, Json<Value>)> { |
|
|
fn app_id(base_url: BaseURL) -> Cached<(ContentType, Json<Value>)> { |
|
|
let content_type = ContentType::new("application", "fido.trusted-apps+json"); |
|
|
let content_type = ContentType::new("application", "fido.trusted-apps+json"); |
|
|
|
|
|
|
|
|
|
|
|
// TODO_MAYBE: add an extractor for getting the origin, so we only have to do 1 lookup.
|
|
|
|
|
|
let origin = CONFIG.domain_origin(&extract_url_host(&base_url.base_url)) |
|
|
|
|
|
// This should never fail, because every host with a domain entry
|
|
|
|
|
|
// should have a origin entry.
|
|
|
|
|
|
.expect("Configured domain has no origin entry"); |
|
|
|
|
|
|
|
|
Cached::long( |
|
|
Cached::long( |
|
|
( |
|
|
( |
|
|
content_type, |
|
|
content_type, |
|
@ -83,7 +90,7 @@ fn app_id() -> Cached<(ContentType, Json<Value>)> { |
|
|
// This leaves it unclear as to whether the path must be empty,
|
|
|
// This leaves it unclear as to whether the path must be empty,
|
|
|
// or whether it can be non-empty and will be ignored. To be on
|
|
|
// or whether it can be non-empty and will be ignored. To be on
|
|
|
// the safe side, use a proper web origin (with empty path).
|
|
|
// the safe side, use a proper web origin (with empty path).
|
|
|
&CONFIG.domain_origin(), |
|
|
&origin, |
|
|
"ios:bundle-id:com.8bit.bitwarden", |
|
|
"ios:bundle-id:com.8bit.bitwarden", |
|
|
"android:apk-key-hash:dUGFzUzf3lmHSLBDBIv+WaFyZMI" ] |
|
|
"android:apk-key-hash:dUGFzUzf3lmHSLBDBIv+WaFyZMI" ] |
|
|
}] |
|
|
}] |
|
|