Skip to content

Commit 6ea0ce1

Browse files
committed
fix loading config when ztAPIs == null
1 parent 42552ea commit 6ea0ce1

File tree

3 files changed

+33
-6
lines changed

3 files changed

+33
-6
lines changed

ziti/src/main/kotlin/org/openziti/IdentityConfig.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ import javax.net.ssl.SSLContext
4343
/**
4444
* List of ziti controller addresses.
4545
*/
46-
@SerialName("ztAPIs") val controllers: Collection<String> = listOf(controller),
46+
@SerialName("ztAPIs") val apiEndpoints: Collection<String>? = listOf(controller),
4747

4848
/**
4949
* Identity credentials.
@@ -69,7 +69,7 @@ import javax.net.ssl.SSLContext
6969
/**
7070
* @inheritDoc
7171
*/
72-
override fun controllers(): Collection<String> = controllers
72+
override fun controllers(): Collection<String> = apiEndpoints ?: listOf(controller)
7373

7474
/**
7575
* @inheritDoc

ziti/src/main/kotlin/org/openziti/identity/Enroller.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ internal class Enroller(
144144

145145
return IdentityConfig(
146146
controller = api.baseUri,
147-
controllers = controllers,
147+
apiEndpoints = controllers,
148148
id = IdentityConfig.Id(
149149
key = kp.private.toPEM(),
150150
cert = cert,
@@ -182,7 +182,7 @@ internal class Enroller(
182182

183183
return IdentityConfig(
184184
controller = api.baseUri,
185-
controllers = controllers,
185+
apiEndpoints = controllers,
186186
id = IdentityConfig.Id(
187187
key = key,
188188
cert = cert,

ziti/src/test/kotlin/org/openziti/IdentityConfigTest.kt

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class IdentityConfigTest {
3030
val idCfg = IdentityConfig.load(f.absolutePath)
3131

3232
assertEquals("https://bender:1280", idCfg.controller)
33-
assertTrue(idCfg.controllers.contains("https://bender:1280"))
33+
assertTrue(idCfg.controllers().contains("https://bender:1280"))
3434

3535
val cfgFromString = IdentityConfig.load(json)
3636
assertEquals(idCfg, cfgFromString)
@@ -56,7 +56,34 @@ class IdentityConfigTest {
5656
val idCfg = IdentityConfig.load(f.absolutePath)
5757

5858
assertEquals("https://bender:1280", idCfg.controller)
59-
assertTrue(idCfg.controllers.contains("https://bender:1280"))
59+
assertTrue(idCfg.controllers().contains("https://bender:1280"))
60+
61+
val cfgFromString = IdentityConfig.load(json)
62+
assertEquals(idCfg, cfgFromString)
63+
}
64+
65+
@Test
66+
fun `loadOld with ztAPIs == null`() {
67+
val json = """{
68+
"ztAPI":"https://bender:1280",
69+
"ztAPIs":null,
70+
"id":{
71+
"cert":"-----BEGIN CERTIFICATE-----\nMIIDjzCCAXegAwIBAgIDAMi2MA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNVBAYTAlVT\nMRIwEAYDVQQHEwlDaGFybG90dGUxEzARBgNVBAoTCk5ldEZvdW5kcnkxEDAOBgNV\nBAsTB0FEVi1ERVYxIzAhBgNVBAMTGmludGVybWVkaWF0ZS1jYS1xdWlja3N0YXJ0\nMB4XDTI1MDIxODE5NDIyNVoXDTI2MDIxODE5NDMyNVowKDERMA8GA1UEChMIT3Bl\nblppdGkxEzARBgNVBAMTCkRsdzBRM09tb1EwWTATBgcqhkjOPQIBBggqhkjOPQMB\nBwNCAAR0DtFWsxJVi6yJxcH8OAHsKp3WLoTTnwhTZcYTjVARxYKZMGWsziVAAuuZ\nPb1NV4skL1LvITGQgK1wAjUwU4s5o0gwRjAOBgNVHQ8BAf8EBAMCBLAwEwYDVR0l\nBAwwCgYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUea/7+V+MNel79c7p6J2SBya1fnww\nDQYJKoZIhvcNAQELBQADggIBAKea6m0qpUcG0Ce05XdS9pcO0I8lZuCaXVqh0pVo\nj0PtWmrVu/euXaCsV2ENJricGV49FtQmiHS4eo1wt34LddKjUNtsCqHRsguBSlEl\nHqqdZgC07kymR3rJ12sK3/HPuF53HmlTZtxo9O4HNEtJjhszG3XPsUDTWoKBDCZE\n9ZN68jOIILrRY1OLPDF7u8KaECAHzVJt5qmxlMcyo6GKnnbYbtFTwWa0qfBxK1N2\ngmxNjNcAUJGdm0Xb1bL+YzFRo4mQP66/lDL0U3rXfjox1ra0zTu9gB2OxRw2r5Uu\nFYB0zwRbjvRp6wOffFBn8Z6i9sbP+a4vp7Tbny/KbGi4I02ViMcgWN1m7VGcpuKV\nAynV6PCL9JTJlqlpBUrShqqNzxGIEzUJMhFdEys+DVKirlf0NzoStR/jp5KQKOoi\nwFHx872xKaPatvZRPKxIdkVyNpaK/YI6bOOd50lULBeJs4XCWGVxeMRHAH+/EoMq\nBItCywy9Qsab5PS7qN+2XYe+NsBS/5jSknbzJx+zWczZMV2xBGp95bM6PyANoSkM\ne2dRTVwwjpBciOzvr5ZUy0Xr/iheOZuDap46+s8fC0V988Rbe9dyo9TgzsJ2MRMu\nsRN1HNNLmoQAI42brAHQJeWmao428L4rBm2AHkQHrDqYMwX8oUElLA/g4PdT3iZf\nLwP4\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIF2TCCA8GgAwIBAgIQMgjOt/XGqGSMmMEgTIhxezANBgkqhkiG9w0BAQsFADBa\nMQswCQYDVQQGEwJVUzESMBAGA1UEBxMJQ2hhcmxvdHRlMRMwEQYDVQQKEwpOZXRG\nb3VuZHJ5MRAwDgYDVQQLEwdBRFYtREVWMRAwDgYDVQQDEwdyb290LWNhMB4XDTI1\nMDIxODE5NDEyNFoXDTM1MDIxNjE5NDIyMlowbTELMAkGA1UEBhMCVVMxEjAQBgNV\nBAcTCUNoYXJsb3R0ZTETMBEGA1UEChMKTmV0Rm91bmRyeTEQMA4GA1UECxMHQURW\nLURFVjEjMCEGA1UEAxMaaW50ZXJtZWRpYXRlLWNhLXF1aWNrc3RhcnQwggIiMA0G\nCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDRx87QdwtweFZ0hsRhMyFSbZPVdaC3\nmjTD8lDGugilDOV2nIjv7WdfcTMgct3/g0f8mHGPauKs/uL+cArAAyapP6t1DYC5\ntmG6+LuqFjlb+bcY5oYvPBLeBi8UEk95258+74URRLE5bK6JiH95rs/fdIjsVhpo\nsPfQDZq3RXYByfCk98UGoah+7YsEK07LDn+ykXrBmCogN2mWU6ZxImnbiJXt/J7S\nAG6pDkFqrhJnSkGErx5Q8vIv7qDr3FtVALcx29ndZUFUG0580f3E7ZSony2OAEvG\nnN1R2/el2FZEbINYGn95oYN/AyNtzq0aYKHfXoi30DI9sjzbEQkeEaiAaNm+GqdX\nRWIPemUDPglaMu8Jo9UK+HPWGkkw8AdclmVk3KBB2CM78fcPmDmQ772to6hrUNVi\nD/rlhVwypVq7HAnXvCF7crxiNndhh9zGhUOsFFpS/aecVIKaeN2kUK9oTMGoYMxR\nUzYF+YvGN+3UeBtMaGcmUaSw2VA4QqE+1UNmudYm6pgykQ6ai/rF6GvUKuDJxisU\n43nHxzWRSwZikM3i0EhNnmhqf94vVuIcuIJucAH4ZdHFelh045l9DLgWi2KcKfqv\nGxpbgn95LhAPlINGo04NK8xGnVT8EQWC/eKsSh4kC9mBLlSkqG8m5xjxhdyJgFER\nt8DSMRHCyHgHvQIDAQABo4GHMIGEMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8E\nCDAGAQH/AgEBMB0GA1UdDgQWBBR5r/v5X4w16Xv1zunonZIHJrV+fDAfBgNVHSME\nGDAWgBQlKAdnL4josYQt42xKrv/LhpmTgzAeBgNVHREEFzAVhhNzcGlmZmU6Ly9x\ndWlja3N0YXJ0MA0GCSqGSIb3DQEBCwUAA4ICAQBvJT7KLqKffAx80DcpPYF9xPbN\nMfW4sjom6B+1r9PrHerTplX2W6vleLP0gWnnNgwCSapXA+96G0Bn3ILc0HudiSb9\n3nlj97PZG66Ftj/ol8n7MQFyLPFedlQ4m1rsA2Mai8Exelp4aE6PifH+ykmzudS0\nDLxJzXG+hVlRf1DVIya8W8vL329KVXjEClxvSx0ay7lvCo8EIelGNPgyrFV+Khu5\nQNtr5xa9ysV+OS1yyg8BPi1J/bFXATTS9x20wvKOmLKk9AdtUhV0BmFWpqLkEjgI\nkvfPXhzqAJEbCjdyQbyZHhQpBKBRITZ7cpI71XGxJSj7hn0uZkceRbPGJ6StUA0r\nTnAWdnzVjscLKQTaSjS3OEqF6KF+G15xOa5CPNAfHMNGD8FCOMUXlxol5UtXnSN0\n7F/LAiktuZ2FnzconYsotWmBIVRyz5AKIibESqeQM8W4Yn3H/QIwDHnhHAAhUhpE\nltj5hMoETWxqi+s5iO8XhUkUBtT9AKEPcTSJSthq/efXcrg3DsoLstJDMosgqB7s\nooU5WjBfzMggXzD5NOIXyxz06u6+U0128Sxqnz44U1X3f+Y7do7gvLeEzvWOTU7s\nYfj24ODJxVHdHKHN0EWl91l+9DAsfzySKU5QPz+/zRMiKgL9OJhIjeC5PakDySOG\nvaST+lvNiqBbvgU5DA==\n-----END CERTIFICATE-----\n",
72+
"key":"-----BEGIN PRIVATE KEY-----\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgyh2aOTEM6t3G7Zh5\nO280GnMu/b7nvnoHOhaDMCKPyDehRANCAAR0DtFWsxJVi6yJxcH8OAHsKp3WLoTT\nnwhTZcYTjVARxYKZMGWsziVAAuuZPb1NV4skL1LvITGQgK1wAjUwU4s5\n-----END PRIVATE KEY-----\n",
73+
"ca":"-----BEGIN CERTIFICATE-----\nMIIF2TCCA8GgAwIBAgIQMgjOt/XGqGSMmMEgTIhxezANBgkqhkiG9w0BAQsFADBa\nMQswCQYDVQQGEwJVUzESMBAGA1UEBxMJQ2hhcmxvdHRlMRMwEQYDVQQKEwpOZXRG\nb3VuZHJ5MRAwDgYDVQQLEwdBRFYtREVWMRAwDgYDVQQDEwdyb290LWNhMB4XDTI1\nMDIxODE5NDEyNFoXDTM1MDIxNjE5NDIyMlowbTELMAkGA1UEBhMCVVMxEjAQBgNV\nBAcTCUNoYXJsb3R0ZTETMBEGA1UEChMKTmV0Rm91bmRyeTEQMA4GA1UECxMHQURW\nLURFVjEjMCEGA1UEAxMaaW50ZXJtZWRpYXRlLWNhLXF1aWNrc3RhcnQwggIiMA0G\nCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDRx87QdwtweFZ0hsRhMyFSbZPVdaC3\nmjTD8lDGugilDOV2nIjv7WdfcTMgct3/g0f8mHGPauKs/uL+cArAAyapP6t1DYC5\ntmG6+LuqFjlb+bcY5oYvPBLeBi8UEk95258+74URRLE5bK6JiH95rs/fdIjsVhpo\nsPfQDZq3RXYByfCk98UGoah+7YsEK07LDn+ykXrBmCogN2mWU6ZxImnbiJXt/J7S\nAG6pDkFqrhJnSkGErx5Q8vIv7qDr3FtVALcx29ndZUFUG0580f3E7ZSony2OAEvG\nnN1R2/el2FZEbINYGn95oYN/AyNtzq0aYKHfXoi30DI9sjzbEQkeEaiAaNm+GqdX\nRWIPemUDPglaMu8Jo9UK+HPWGkkw8AdclmVk3KBB2CM78fcPmDmQ772to6hrUNVi\nD/rlhVwypVq7HAnXvCF7crxiNndhh9zGhUOsFFpS/aecVIKaeN2kUK9oTMGoYMxR\nUzYF+YvGN+3UeBtMaGcmUaSw2VA4QqE+1UNmudYm6pgykQ6ai/rF6GvUKuDJxisU\n43nHxzWRSwZikM3i0EhNnmhqf94vVuIcuIJucAH4ZdHFelh045l9DLgWi2KcKfqv\nGxpbgn95LhAPlINGo04NK8xGnVT8EQWC/eKsSh4kC9mBLlSkqG8m5xjxhdyJgFER\nt8DSMRHCyHgHvQIDAQABo4GHMIGEMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8E\nCDAGAQH/AgEBMB0GA1UdDgQWBBR5r/v5X4w16Xv1zunonZIHJrV+fDAfBgNVHSME\nGDAWgBQlKAdnL4josYQt42xKrv/LhpmTgzAeBgNVHREEFzAVhhNzcGlmZmU6Ly9x\ndWlja3N0YXJ0MA0GCSqGSIb3DQEBCwUAA4ICAQBvJT7KLqKffAx80DcpPYF9xPbN\nMfW4sjom6B+1r9PrHerTplX2W6vleLP0gWnnNgwCSapXA+96G0Bn3ILc0HudiSb9\n3nlj97PZG66Ftj/ol8n7MQFyLPFedlQ4m1rsA2Mai8Exelp4aE6PifH+ykmzudS0\nDLxJzXG+hVlRf1DVIya8W8vL329KVXjEClxvSx0ay7lvCo8EIelGNPgyrFV+Khu5\nQNtr5xa9ysV+OS1yyg8BPi1J/bFXATTS9x20wvKOmLKk9AdtUhV0BmFWpqLkEjgI\nkvfPXhzqAJEbCjdyQbyZHhQpBKBRITZ7cpI71XGxJSj7hn0uZkceRbPGJ6StUA0r\nTnAWdnzVjscLKQTaSjS3OEqF6KF+G15xOa5CPNAfHMNGD8FCOMUXlxol5UtXnSN0\n7F/LAiktuZ2FnzconYsotWmBIVRyz5AKIibESqeQM8W4Yn3H/QIwDHnhHAAhUhpE\nltj5hMoETWxqi+s5iO8XhUkUBtT9AKEPcTSJSthq/efXcrg3DsoLstJDMosgqB7s\nooU5WjBfzMggXzD5NOIXyxz06u6+U0128Sxqnz44U1X3f+Y7do7gvLeEzvWOTU7s\nYfj24ODJxVHdHKHN0EWl91l+9DAsfzySKU5QPz+/zRMiKgL9OJhIjeC5PakDySOG\nvaST+lvNiqBbvgU5DA==\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\n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\n-----END CERTIFICATE-----\n"
74+
}
75+
}"""
76+
77+
val f = File.createTempFile("test", ".json").apply { deleteOnExit() }
78+
79+
f.writer().use {
80+
it.write(json)
81+
}
82+
83+
val idCfg = IdentityConfig.load(f.absolutePath)
84+
85+
assertEquals("https://bender:1280", idCfg.controller)
86+
assertTrue(idCfg.controllers().contains("https://bender:1280"))
6087

6188
val cfgFromString = IdentityConfig.load(json)
6289
assertEquals(idCfg, cfgFromString)

0 commit comments

Comments
 (0)