Compare commits

...

1 Commits

Author SHA1 Message Date
David Perez
bb33db6f34 PM-26577: Request 'https' scheme for Duo, WebAuthn, and SSO when applicable 2026-03-09 13:20:55 -05:00
8 changed files with 51 additions and 59 deletions

View File

@@ -169,6 +169,7 @@
<data android:scheme="https" />
<data android:host="bitwarden.com" />
<data android:host="bitwarden.eu" />
<data android:host="bitwarden.pw" />
<data android:pathPattern="/duo-callback" />
<data android:pathPattern="/sso-callback" />
<data android:pathPattern="/webauthn-callback" />

View File

@@ -23,23 +23,23 @@ private fun EnvironmentUrlDataJson.authTabData(
kind: String,
): AuthTabData = when (this.environmentRegion) {
EnvironmentRegion.UNITED_STATES -> {
// TODO: PM-26577 Update this to use a "HttpsScheme"
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://$kind-callback",
AuthTabData.HttpsScheme(
host = "bitwarden.com",
path = "$kind-callback",
)
}
EnvironmentRegion.EUROPEAN_UNION -> {
// TODO: PM-26577 Update this to use a "HttpsScheme"
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://$kind-callback",
AuthTabData.HttpsScheme(
host = "bitwarden.eu",
path = "$kind-callback",
)
}
EnvironmentRegion.INTERNAL -> {
// TODO: PM-26577 Update this to use a "HttpsScheme"
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://$kind-callback",
AuthTabData.HttpsScheme(
host = "bitwarden.pw",
path = "$kind-callback",
)
}

View File

@@ -7548,7 +7548,7 @@ class AuthRepositoryTest {
Instant.parse("2023-10-27T12:00:00Z"),
ZoneOffset.UTC,
)
private const val DEEPLINK_SCHEME = "bitwarden"
private const val DEEPLINK_SCHEME = "https"
private const val UNIQUE_APP_ID = "testUniqueAppId"
private const val NAME = "Example Name"
private const val EMAIL = "test@bitwarden.com"

View File

@@ -9,25 +9,24 @@ class EnvironmentUrlDataJsonExtensionsTest {
@Test
fun `duoAuthTabData should return the correct AuthTabData for all environments`() {
// TODO: PM-26577 Update these to use a "HttpsScheme"
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://duo-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.com",
path = "duo-callback",
),
EnvironmentUrlDataJson.DEFAULT_US.duoAuthTabData,
)
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://duo-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.eu",
path = "duo-callback",
),
EnvironmentUrlDataJson.DEFAULT_EU.duoAuthTabData,
)
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://duo-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.pw",
path = "duo-callback",
),
DEFAULT_INTERNAL_ENVIRONMENT_URL_DATA.duoAuthTabData,
)
@@ -42,25 +41,24 @@ class EnvironmentUrlDataJsonExtensionsTest {
@Test
fun `webAuthnAuthTabData should return the correct AuthTabData for all environments`() {
// TODO: PM-26577 Update these to use a "HttpsScheme"
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://webauthn-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.com",
path = "webauthn-callback",
),
EnvironmentUrlDataJson.DEFAULT_US.webAuthnAuthTabData,
)
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://webauthn-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.eu",
path = "webauthn-callback",
),
EnvironmentUrlDataJson.DEFAULT_EU.webAuthnAuthTabData,
)
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://webauthn-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.pw",
path = "webauthn-callback",
),
DEFAULT_INTERNAL_ENVIRONMENT_URL_DATA.webAuthnAuthTabData,
)
@@ -75,25 +73,24 @@ class EnvironmentUrlDataJsonExtensionsTest {
@Test
fun `ssoAuthTabData should return the correct AuthTabData for all environments`() {
// TODO: PM-26577 Update these to use a "HttpsScheme"
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://sso-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.com",
path = "sso-callback",
),
EnvironmentUrlDataJson.DEFAULT_US.ssoAuthTabData,
)
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://sso-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.eu",
path = "sso-callback",
),
EnvironmentUrlDataJson.DEFAULT_EU.ssoAuthTabData,
)
assertEquals(
AuthTabData.CustomScheme(
callbackUrl = "bitwarden://sso-callback",
callbackScheme = "bitwarden",
AuthTabData.HttpsScheme(
host = "bitwarden.pw",
path = "sso-callback",
),
DEFAULT_INTERNAL_ENVIRONMENT_URL_DATA.ssoAuthTabData,
)

View File

@@ -189,9 +189,9 @@ class EnterpriseSignOnViewModelTest : BaseViewModelTest() {
assertEquals(
EnterpriseSignOnEvent.NavigateToSsoLogin(
uri = ssoUri,
authTabData = AuthTabData.CustomScheme(
callbackUrl = "bitwarden://sso-callback",
callbackScheme = "bitwarden",
authTabData = AuthTabData.HttpsScheme(
host = "bitwarden.com",
path = "sso-callback",
),
),
eventFlow.awaitItem(),

View File

@@ -430,9 +430,9 @@ class TwoFactorLoginViewModelTest : BaseViewModelTest() {
assertEquals(
TwoFactorLoginEvent.NavigateToDuo(
uri = mockkUri,
authTabData = AuthTabData.CustomScheme(
callbackUrl = "bitwarden://duo-callback",
callbackScheme = "bitwarden",
authTabData = AuthTabData.HttpsScheme(
host = "bitwarden.com",
path = "duo-callback",
),
),
awaitItem(),
@@ -519,9 +519,9 @@ class TwoFactorLoginViewModelTest : BaseViewModelTest() {
assertEquals(
TwoFactorLoginEvent.NavigateToWebAuth(
uri = mockkUri,
authTabData = AuthTabData.CustomScheme(
callbackUrl = "bitwarden://webauthn-callback",
callbackScheme = "bitwarden",
authTabData = AuthTabData.HttpsScheme(
host = "bitwarden.com",
path = "webauthn-callback",
),
),
awaitItem(),

View File

@@ -41,10 +41,7 @@ val EnvironmentUrlDataJson.appLinksScheme: String
EnvironmentRegion.UNITED_STATES,
EnvironmentRegion.EUROPEAN_UNION,
EnvironmentRegion.INTERNAL,
-> {
// TODO: PM-26577 Update this to use "https"
"bitwarden"
}
-> "https"
EnvironmentRegion.SELF_HOSTED -> "bitwarden"
}

View File

@@ -339,8 +339,7 @@ class EnvironmentUrlsDataJsonExtensionsTest {
@Test
fun `appLinksScheme should return the correct scheme for US environment`() {
// TODO: PM-26577 Update this to use "https"
val expectedScheme = "bitwarden"
val expectedScheme = "https"
assertEquals(
expectedScheme,
@@ -350,8 +349,7 @@ class EnvironmentUrlsDataJsonExtensionsTest {
@Test
fun `appLinksScheme should return the correct scheme for EU environment`() {
// TODO: PM-26577 Update this to use "https"
val expectedScheme = "bitwarden"
val expectedScheme = "https"
assertEquals(
expectedScheme,
@@ -361,8 +359,7 @@ class EnvironmentUrlsDataJsonExtensionsTest {
@Test
fun `appLinksScheme should return the correct scheme for internal environment`() {
// TODO: PM-26577 Update this to use "https"
val expectedScheme = "bitwarden"
val expectedScheme = "https"
assertEquals(
expectedScheme,