Skip to content

Commit 91f852d

Browse files
authored
Merge pull request #272 from okta/OKTA504342-TG1-TLD
TG1-TLD update changes - Add new TLDs to URL validator
2 parents 8addb86 + e2525de commit 91f852d

File tree

2 files changed

+90
-38
lines changed

2 files changed

+90
-38
lines changed

config-check/src/main/java/com/okta/commons/configcheck/ConfigurationValidator.java

Lines changed: 63 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,15 @@ private ConfigurationValidator() {}
4040
/**
4141
* Asserts the {@code url} is a well formed HTTPS URL and does not contain common typos. The checks include:
4242
* <ul>
43-
* <li>Contains {yourOktaDomain}</li>
44-
* <li>Hostname ends with .com.com</li>
45-
* <li>Contains -admin.okta.com</li>
46-
* <li>Contains -admin.oktapreview.com</li>
47-
* <li>Contains -admin.okta-emea.com</li>
43+
* <li>Contains {yourOktaDomain}</li>
44+
* <li>Hostname ends with .com.com</li>
45+
* <li>Contains -admin.okta.com</li>
46+
* <li>Contains -admin.oktapreview.com</li>
47+
* <li>Contains -admin.okta-emea.com</li>
48+
* <li>Contains -admin.okta-gov.com</li>
49+
* <li>Contains -admin.okta.mil</li>
50+
* <li>Contains -admin.okta-miltest.com</li>
51+
* <li>Contains -admin.trex-gov.com</li>
4852
* </ul>
4953
*
5054
* @param url The url to be validated
@@ -56,11 +60,15 @@ public static void assertOrgUrl(String url) {
5660

5761
/** Asserts the {@code url} is a well formed HTTPS URL and does not contain common typos. The checks include:
5862
* <ul>
59-
* <li>Contains {yourOktaDomain}</li>
60-
* <li>Hostname ends with .com.com</li>
61-
* <li>Contains -admin.okta.com</li>
62-
* <li>Contains -admin.oktapreview.com</li>
63-
* <li>Contains -admin.okta-emea.com</li>
63+
* <li>Contains {yourOktaDomain}</li>
64+
* <li>Hostname ends with .com.com</li>
65+
* <li>Contains -admin.okta.com</li>
66+
* <li>Contains -admin.oktapreview.com</li>
67+
* <li>Contains -admin.okta-emea.com</li>
68+
* <li>Contains -admin.okta-gov.com</li>
69+
* <li>Contains -admin.okta.mil</li>
70+
* <li>Contains -admin.okta-miltest.com</li>
71+
* <li>Contains -admin.trex-gov.com</li>
6472
* </ul>
6573
*
6674
* @param url The url to be validated
@@ -78,11 +86,15 @@ public static void assertOrgUrl(String url, boolean allowNonHttpsForTesting) {
7886
* Returns a {@link ValidationResponse} checking to make sure the {@code url} is a well formed HTTPS URL and does
7987
* not contain common typos. The checks include:
8088
* <ul>
81-
* <li>Contains {yourOktaDomain}</li>
82-
* <li>Hostname ends with .com.com</li>
83-
* <li>Contains -admin.okta.com</li>
84-
* <li>Contains -admin.oktapreview.com</li>
85-
* <li>Contains -admin.okta-emea.com</li>
89+
* <li>Contains {yourOktaDomain}</li>
90+
* <li>Hostname ends with .com.com</li>
91+
* <li>Contains -admin.okta.com</li>
92+
* <li>Contains -admin.oktapreview.com</li>
93+
* <li>Contains -admin.okta-emea.com</li>
94+
* <li>Contains -admin.okta-gov.com</li>
95+
* <li>Contains -admin.okta.mil</li>
96+
* <li>Contains -admin.okta-miltest.com</li>
97+
* <li>Contains -admin.trex-gov.com</li>
8698
* </ul>
8799
*
88100
* @param url The url to be validated
@@ -96,13 +108,17 @@ public static ValidationResponse validateOrgUrl(String url) {
96108
* Returns a {@link ValidationResponse} checking to make sure the {@code url} is a well formed HTTPS URL and does
97109
* not contain common typos. The checks include:
98110
* <ul>
99-
* <li>Contains {yourOktaDomain}</li>
100-
* <li>Hostname ends with .com.com</li>
101-
* <li>Contains -admin.okta.com</li>
102-
* <li>Contains -admin.oktapreview.com</li>
103-
* <li>Contains -admin.okta-emea.com</li>
111+
* <li>Contains {yourOktaDomain}</li>
112+
* <li>Hostname ends with .com.com</li>
113+
* <li>Contains -admin.okta.com</li>
114+
* <li>Contains -admin.oktapreview.com</li>
115+
* <li>Contains -admin.okta-emea.com</li>
116+
* <li>Contains -admin.okta-gov.com</li>
117+
* <li>Contains -admin.okta.mil</li>
118+
* <li>Contains -admin.okta-miltest.com</li>
119+
* <li>Contains -admin.trex-gov.com</li>
104120
* </ul>
105-
* *
121+
* *
106122
* @param url The url to be validated
107123
* @param allowNonHttpsForTesting Allow orgUrl to be non-https, likely used for testing.
108124
* @return a ValidationResponse containing the validation status and message (when invalid)
@@ -145,11 +161,15 @@ public static ValidationResponse validateApiToken(String token) {
145161
/**
146162
* Asserts the {@code url} is a well formed HTTPS URL and does not contain common typos. The checks include:
147163
* <ul>
148-
* <li>Contains {yourOktaDomain}</li>
149-
* <li>Hostname ends with .com.com</li>
150-
* <li>Contains -admin.okta.com</li>
151-
* <li>Contains -admin.oktapreview.com</li>
152-
* <li>Contains -admin.okta-emea.com</li>
164+
* <li>Contains {yourOktaDomain}</li>
165+
* <li>Hostname ends with .com.com</li>
166+
* <li>Contains -admin.okta.com</li>
167+
* <li>Contains -admin.oktapreview.com</li>
168+
* <li>Contains -admin.okta-emea.com</li>
169+
* <li>Contains -admin.okta-gov.com</li>
170+
* <li>Contains -admin.okta.mil</li>
171+
* <li>Contains -admin.okta-miltest.com</li>
172+
* <li>Contains -admin.trex-gov.com</li>
153173
* </ul>
154174
*
155175
* @param url The url to be validated
@@ -163,11 +183,15 @@ public static void assertIssuer(String url) {
163183
* Returns a {@link ValidationResponse} checking the {@code url} is a well formed HTTPS URL and
164184
* does not contain common typos. The checks include:
165185
* <ul>
166-
* <li>Contains {yourOktaDomain}</li>
167-
* <li>Hostname ends with .com.com</li>
168-
* <li>Contains -admin.okta.com</li>
169-
* <li>Contains -admin.oktapreview.com</li>
170-
* <li>Contains -admin.okta-emea.com</li>
186+
* <li>Contains {yourOktaDomain}</li>
187+
* <li>Hostname ends with .com.com</li>
188+
* <li>Contains -admin.okta.com</li>
189+
* <li>Contains -admin.oktapreview.com</li>
190+
* <li>Contains -admin.okta-emea.com</li>
191+
* <li>Contains -admin.okta-gov.com</li>
192+
* <li>Contains -admin.okta.mil</li>
193+
* <li>Contains -admin.okta-miltest.com</li>
194+
* <li>Contains -admin.trex-gov.com</li>
171195
* </ul>
172196
*
173197
* @param url The url to be validated
@@ -253,13 +277,17 @@ private static ValidationResponse validateHttpsUrl(String url, String keyPrefix,
253277
} else if (host.endsWith(".com.com")){
254278
response.setMessage(formattedErrorMessage(keyPrefix + ".invalid", url));
255279
} else if (host.endsWith("-admin.okta.com")
256-
|| host.endsWith("-admin.oktapreview.com")
257-
|| host.endsWith("-admin.okta-emea.com")){
258-
response.setMessage(formattedErrorMessage(keyPrefix + ".containsAdmin", url));
280+
|| host.endsWith("-admin.oktapreview.com")
281+
|| host.endsWith("-admin.okta-emea.com")
282+
|| host.endsWith("-admin.okta-gov.com")
283+
|| host.endsWith("-admin.okta.mil")
284+
|| host.endsWith("-admin.okta-miltest.com")
285+
|| host.endsWith("-admin.trex-gov.com")) {
286+
response.setMessage(formattedErrorMessage(keyPrefix + ".containsAdmin", url));
259287
}
260288
} catch (MalformedURLException e) {
261289
response.setMessage(formattedErrorMessage(keyPrefix + ".invalid", url))
262-
.setException(e);
290+
.setException(e);
263291
}
264292
}
265293

config-check/src/test/groovy/com/okta/commons/configcheck/ConfigurationValidatorTest.groovy

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import static org.hamcrest.Matchers.containsString
3434
* Tests for {link ConfigurationValidator}.
3535
*/
3636
class ConfigurationValidatorTest {
37-
37+
3838
@Test
3939
void nullBaseUrl() {
4040
def e = expect {ConfigurationValidator.assertOrgUrl(null)}
@@ -82,6 +82,18 @@ class ConfigurationValidatorTest {
8282

8383
e = expect {ConfigurationValidator.assertOrgUrl("https://example-admin.okta-emea.com")}
8484
assertThat(e.message, containsString("Your Okta domain should not contain -admin"))
85+
86+
e = expect {ConfigurationValidator.assertOrgUrl("https://example-admin.okta-gov.com")}
87+
assertThat(e.message, containsString("Your Okta domain should not contain -admin"))
88+
89+
e = expect {ConfigurationValidator.assertOrgUrl("https://example-admin.okta.mil")}
90+
assertThat(e.message, containsString("Your Okta domain should not contain -admin"))
91+
92+
e = expect {ConfigurationValidator.assertOrgUrl("https://example-admin.okta-miltest.com")}
93+
assertThat(e.message, containsString("Your Okta domain should not contain -admin"))
94+
95+
e = expect {ConfigurationValidator.assertOrgUrl("https://example-admin.trex-gov.com")}
96+
assertThat(e.message, containsString("Your Okta domain should not contain -admin"))
8597
}
8698

8799
@Test
@@ -160,6 +172,18 @@ class ConfigurationValidatorTest {
160172

161173
e = expect {ConfigurationValidator.assertIssuer("https://example-aDmIn.okTa-emea.com/oauth/default")}
162174
assertThat(e.message, containsString("Your Okta Issuer URL should not contain -admin"))
175+
176+
e = expect {ConfigurationValidator.assertIssuer("https://example-admin.okta-gov.com/oauth/default")}
177+
assertThat(e.message, containsString("Your Okta Issuer URL should not contain -admin"))
178+
179+
e = expect {ConfigurationValidator.assertIssuer("https://example-admin.okta.mil/oauth/default")}
180+
assertThat(e.message, containsString("Your Okta Issuer URL should not contain -admin"))
181+
182+
e = expect {ConfigurationValidator.assertIssuer("https://example-admin.okta-miltest.com/oauth/default")}
183+
assertThat(e.message, containsString("Your Okta Issuer URL should not contain -admin"))
184+
185+
e = expect {ConfigurationValidator.assertIssuer("https://example-admin.trex-gov.com/oauth/default")}
186+
assertThat(e.message, containsString("Your Okta Issuer URL should not contain -admin"))
163187
}
164188

165189
@Test
@@ -234,7 +258,7 @@ class ConfigurationValidatorTest {
234258
// just make sure it doesn't throw
235259
ConfigurationValidator.assertClientSecret("some-other-text")
236260
}
237-
261+
238262
static def expect = { Closure callMe ->
239263
try {
240264
callMe.call()
@@ -246,5 +270,5 @@ class ConfigurationValidatorTest {
246270
return e
247271
}
248272
}
249-
273+
250274
}

0 commit comments

Comments
 (0)