2018-05-10 21:12:42 +00:00
|
|
|
package ldaputil
|
|
|
|
|
2018-08-13 21:57:10 +00:00
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"testing"
|
|
|
|
)
|
2018-05-10 21:12:42 +00:00
|
|
|
|
|
|
|
func TestCertificateValidation(t *testing.T) {
|
|
|
|
// certificate should default to "" without error if it doesn't exist
|
|
|
|
config := testConfig()
|
|
|
|
if err := config.Validate(); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
if config.Certificate != "" {
|
|
|
|
t.Fatalf("expected no certificate but received %s", config.Certificate)
|
|
|
|
}
|
|
|
|
|
|
|
|
// certificate should cause an error if a bad one is provided
|
|
|
|
config.Certificate = "cats"
|
|
|
|
if err := config.Validate(); err == nil {
|
|
|
|
t.Fatal("should err due to bad cert")
|
|
|
|
}
|
|
|
|
|
|
|
|
// valid certificates should pass inspection
|
|
|
|
config.Certificate = validCertificate
|
|
|
|
if err := config.Validate(); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-13 21:57:10 +00:00
|
|
|
func TestUseTokenGroupsDefault(t *testing.T) {
|
|
|
|
config := testConfig()
|
|
|
|
if config.UseTokenGroups {
|
|
|
|
t.Errorf("expected false UseTokenGroups but got %t", config.UseTokenGroups)
|
|
|
|
}
|
|
|
|
|
|
|
|
config = testJSONConfig(t)
|
|
|
|
if config.UseTokenGroups {
|
|
|
|
t.Errorf("expected false UseTokenGroups from JSON but got %t", config.UseTokenGroups)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-05-10 21:12:42 +00:00
|
|
|
func testConfig() *ConfigEntry {
|
|
|
|
return &ConfigEntry{
|
|
|
|
Url: "ldap://138.91.247.105",
|
|
|
|
UserDN: "example,com",
|
|
|
|
BindDN: "kitty",
|
|
|
|
BindPassword: "cats",
|
|
|
|
TLSMaxVersion: "tls12",
|
|
|
|
TLSMinVersion: "tls12",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-13 21:57:10 +00:00
|
|
|
func testJSONConfig(t *testing.T) *ConfigEntry {
|
|
|
|
config := new(ConfigEntry)
|
|
|
|
if err := json.Unmarshal(jsonConfig, config); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
return config
|
|
|
|
}
|
|
|
|
|
2018-05-10 21:12:42 +00:00
|
|
|
const validCertificate = `
|
|
|
|
-----BEGIN CERTIFICATE-----
|
|
|
|
MIIF7zCCA9egAwIBAgIJAOY2qjn64Qq5MA0GCSqGSIb3DQEBCwUAMIGNMQswCQYD
|
|
|
|
VQQGEwJVUzEQMA4GA1UECAwHTm93aGVyZTERMA8GA1UEBwwIVGltYnVrdHUxEjAQ
|
|
|
|
BgNVBAoMCVRlc3QgRmFrZTENMAsGA1UECwwETm9uZTEPMA0GA1UEAwwGTm9ib2R5
|
|
|
|
MSUwIwYJKoZIhvcNAQkBFhZkb25vdHRydXN0QG5vd2hlcmUuY29tMB4XDTE4MDQw
|
|
|
|
MzIwNDQwOFoXDTE5MDQwMzIwNDQwOFowgY0xCzAJBgNVBAYTAlVTMRAwDgYDVQQI
|
|
|
|
DAdOb3doZXJlMREwDwYDVQQHDAhUaW1idWt0dTESMBAGA1UECgwJVGVzdCBGYWtl
|
|
|
|
MQ0wCwYDVQQLDAROb25lMQ8wDQYDVQQDDAZOb2JvZHkxJTAjBgkqhkiG9w0BCQEW
|
|
|
|
FmRvbm90dHJ1c3RAbm93aGVyZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
|
|
|
|
ggIKAoICAQDzQPGErqjaoFcuUV6QFpSMU6w8wO8F0othik+rrlKERmrGonUGsoum
|
|
|
|
WqRe6L4ZnxBvCKB6EWjvf894TXOF2cpUnjDAyBePISyPkRBEJS6VS2SEC4AJzmVu
|
|
|
|
a+P+fZr4Hf7/bEcUr7Ax37yGVZ5i5ByNHgZkBlPxKiGWSmAqIDRZLp9gbu2EkG9q
|
|
|
|
NOjNLPU+QI2ov6U/laGS1vbE2LahTYeT5yscu9LpllxzFv4lM1f4wYEaM3HuOxzT
|
|
|
|
l86cGmEr9Q2N4PZ2T0O/s6D4but7c6Bz2XPXy9nWb5bqu0n5bJEpbRFrkryW1ozh
|
|
|
|
L9uVVz4dyW10pFBJtE42bqA4PRCDQsUof7UfsQF11D1ThrDfKsQa8PxrYdGUHUG9
|
|
|
|
GFF1MdTTwaoT90RI582p+6XYV+LNlXcdfyNZO9bMThu9fnCvT7Ey0TKU4MfPrlfT
|
|
|
|
aIhZmyaHt6mL5p881UPDIvy7paTLgL+C1orLjZAiT//c4Zn+0qG0//Cirxr020UF
|
|
|
|
3YiEFk2H0bBVwOHoOGw4w5HrvLdyy0ZLDSPQbzkSZ0RusHb5TjiyhtTk/h9vvJv7
|
|
|
|
u1fKJub4MzgrBRi16ejFdiWoVuMXRC6fu/ERy3+9DH6LURerbPrdroYypUmTe9N6
|
|
|
|
XPeaF1Tc+WO7O/yW96mV7X/D211qjkOtwboZC5kjogVbaZgGzjHCVwIDAQABo1Aw
|
|
|
|
TjAdBgNVHQ4EFgQU2zWT3HeiMBzusz7AggVqVEL5g0UwHwYDVR0jBBgwFoAU2zWT
|
|
|
|
3HeiMBzusz7AggVqVEL5g0UwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
|
|
|
|
AgEAwTGcppY86mNRE43uOimeApTfqHJv+lGDTjEoJCZZmzmtxFe6O9+Vk4bH/8/i
|
|
|
|
gVQvqzBpaWXRt9OhqlFMK7OkX4ZvqXmnShmxib1dz1XxGhbwSec9ca8bill59Jqa
|
|
|
|
bIOq2SXVMcFD0GwFxfJRBVzHHuB6AwV9B2QN61zeB1oxNGJrUOo80jVkB7+MWMyD
|
|
|
|
bQqiFCHWGMa6BG4N91KGOTveZCGdBvvVw5j6lt731KjbvL2hB1UHioucOweKLfa4
|
|
|
|
QWDImTEjgV68699wKERNL0DCpeD7PcP/L3SY2RJzdyC1CSR7O8yU4lQK7uZGusgB
|
|
|
|
Mgup+yUaSjxasIqYMebNDDocr5kdwG0+2r2gQdRwc5zLX6YDBn6NLSWjRnY04ZuK
|
|
|
|
P1cF68rWteWpzJu8bmkJ5r2cqskqrnVK+zz8xMQyEaj548Bnt51ARLHOftR9jkSU
|
|
|
|
NJWh7zOLZ1r2UUKdDlrMoh3GQO3rvnCJJ16NBM1dB7TUyhMhtF6UOE62BSKdHtQn
|
|
|
|
d6TqelcRw9WnDsb9IPxRwaXhvGljnYVAgXXlJEI/6nxj2T4wdmL1LWAr6C7DuWGz
|
|
|
|
8qIvxc4oAau4DsZs2+BwolCFtYc98OjWGcBStBfZz/YYXM+2hKjbONKFxWdEPxGR
|
|
|
|
Beq3QOqp2+dga36IzQybzPQ8QtotrpSJ3q82zztEvyWiJ7E=
|
|
|
|
-----END CERTIFICATE-----
|
|
|
|
`
|
2018-08-13 21:57:10 +00:00
|
|
|
|
|
|
|
var jsonConfig = []byte(`
|
|
|
|
{
|
|
|
|
"url": "ldap://138.91.247.105",
|
|
|
|
"userdn": "example,com",
|
|
|
|
"binddn": "kitty",
|
|
|
|
"bindpass": "cats",
|
|
|
|
"tls_max_version": "tls12",
|
|
|
|
"tls_min_version": "tls12"
|
|
|
|
}
|
|
|
|
`)
|