Skip to content

Commit 12f1aab

Browse files
authored
chore: Add support for new government and cloud TLD domains (#111)
1 parent 56b6aa9 commit 12f1aab

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

Okta.Xamarin/Okta.Xamarin/OktaConfigValidator.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,11 @@ public void Validate(IOktaConfig config)
7979

8080
if (config.OktaDomain.IndexOf("-admin.oktapreview.com", StringComparison.OrdinalIgnoreCase) >= 0 ||
8181
config.OktaDomain.IndexOf("-admin.okta.com", StringComparison.OrdinalIgnoreCase) >= 0 ||
82-
config.OktaDomain.IndexOf("-admin.okta-emea.com", StringComparison.OrdinalIgnoreCase) >= 0)
82+
config.OktaDomain.IndexOf("-admin.okta-emea.com", StringComparison.OrdinalIgnoreCase) >= 0 ||
83+
config.OktaDomain.IndexOf("-admin.trex-govcloud.com", StringComparison.OrdinalIgnoreCase) >= 0 ||
84+
config.OktaDomain.IndexOf("-admin.okta-gov.com", StringComparison.OrdinalIgnoreCase) >= 0 ||
85+
config.OktaDomain.IndexOf("-admin.okta.mil", StringComparison.OrdinalIgnoreCase) >= 0 ||
86+
config.OktaDomain.IndexOf("-admin.okta-miltest.com", StringComparison.OrdinalIgnoreCase) >= 0)
8387
{
8488
throw new ArgumentException(
8589
$"Your Okta domain should not contain -admin. Current value: {config.OktaDomain}. You can copy your domain from the Okta Developer Console. Follow these instructions to find it: https://bit.ly/finding-okta-domain", nameof(config.OktaDomain));

Okta.Xamarin/Tests/Okta.Xamarin.Test/OktaConfigShould.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@ public void ConfigValidatorPassesWhenValid()
2727
new OktaConfig("testoktaid", "https://okta.okta.com", "appid:/redirect", "appid:/logout")
2828
{ ClockSkew = TimeSpan.FromSeconds(100), Scope = "test1 test2" });
2929

30+
// Test new TLD support
31+
validator.Validate(
32+
new OktaConfig("testoktaid", "https://dev-00000.trex-govcloud.com", "com.test:/redirect", "com.test:/logout"));
33+
34+
validator.Validate(
35+
new OktaConfig("testoktaid", "https://dev-00000.okta-gov.com", "com.test:/redirect", "com.test:/logout"));
36+
37+
validator.Validate(
38+
new OktaConfig("testoktaid", "https://dev-00000.okta.mil", "com.test:/redirect", "com.test:/logout"));
39+
40+
validator.Validate(
41+
new OktaConfig("testoktaid", "https://dev-00000.okta-miltest.com", "com.test:/redirect", "com.test:/logout"));
42+
3043
// The validator throws an exception when the config is invalid, so if we got here without an exception then the configs are valid.
3144
}
3245

@@ -67,6 +80,19 @@ public void ConfigValidatorCatchesInvalidDomain()
6780
Assert.Throws<ArgumentException>(() =>
6881
validator.Validate(new OktaConfig("testoktaid", "https://dev-00000-admin.oktapreview.com", "com.test:/redirect", "com.test:/logout")));
6982

83+
// Test that admin domains are caught for new TLDs
84+
Assert.Throws<ArgumentException>(() =>
85+
validator.Validate(new OktaConfig("testoktaid", "https://dev-00000-admin.trex-govcloud.com", "com.test:/redirect", "com.test:/logout")));
86+
87+
Assert.Throws<ArgumentException>(() =>
88+
validator.Validate(new OktaConfig("testoktaid", "https://dev-00000-admin.okta-gov.com", "com.test:/redirect", "com.test:/logout")));
89+
90+
Assert.Throws<ArgumentException>(() =>
91+
validator.Validate(new OktaConfig("testoktaid", "https://dev-00000-admin.okta.mil", "com.test:/redirect", "com.test:/logout")));
92+
93+
Assert.Throws<ArgumentException>(() =>
94+
validator.Validate(new OktaConfig("testoktaid", "https://dev-00000-admin.okta-miltest.com", "com.test:/redirect", "com.test:/logout")));
95+
7096
Assert.Throws<ArgumentException>(() =>
7197
validator.Validate(new OktaConfig("testoktaid", "https://{yourOktaDomain}", "com.test:/redirect", "com.test:/logout")));
7298

0 commit comments

Comments
 (0)