diff --git a/src/core/api/harborapi_test.go b/src/core/api/harborapi_test.go index e082facdf..17e1a1e58 100644 --- a/src/core/api/harborapi_test.go +++ b/src/core/api/harborapi_test.go @@ -31,7 +31,6 @@ import ( "github.com/goharbor/harbor/src/common/job/test" "github.com/goharbor/harbor/src/common/models" "github.com/goharbor/harbor/src/common/utils" - ldapUtils "github.com/goharbor/harbor/src/common/utils/ldap" "github.com/goharbor/harbor/src/core/config" "github.com/goharbor/harbor/src/core/filter" "github.com/goharbor/harbor/tests/apitests/apilib" @@ -79,25 +78,6 @@ type usrInfo struct { } func init() { - ldapConfig := models.LdapConf{ - LdapURL: "ldap://127.0.0.1:389", - LdapSearchDn: "cn=admin,dc=example,dc=com", - LdapSearchPassword: "admin", - LdapBaseDn: "dc=example,dc=com", - LdapUID: "cn", - LdapScope: 2, - LdapConnectionTimeout: 5, - } - ldapGroupConfig := models.LdapGroupConf{ - LdapGroupBaseDN: "ou=groups,dc=example,dc=com", - LdapGroupFilter: "objectclass=groupOfNames", - LdapGroupSearchScope: 2, - LdapGroupNameAttribute: "cn", - } - ldapTestConfig, err := ldapUtils.CreateWithAllConfig(ldapConfig, ldapGroupConfig) - if err != nil { - log.Fatalf("failed to initialize configurations: %v", err) - } if err := config.Init(); err != nil { log.Fatalf("failed to initialize configurations: %v", err) } @@ -155,10 +135,10 @@ func init() { beego.Router("/api/systeminfo", &SystemInfoAPI{}, "get:GetGeneralInfo") beego.Router("/api/systeminfo/volumes", &SystemInfoAPI{}, "get:GetVolumeInfo") beego.Router("/api/systeminfo/getcert", &SystemInfoAPI{}, "get:GetCert") - beego.Router("/api/ldap/ping", &LdapAPI{ldapConfig: ldapTestConfig, useTestConfig: true}, "post:Ping") - beego.Router("/api/ldap/users/search", &LdapAPI{ldapConfig: ldapTestConfig, useTestConfig: true}, "get:Search") - beego.Router("/api/ldap/groups/search", &LdapAPI{ldapConfig: ldapTestConfig, useTestConfig: true}, "get:SearchGroup") - beego.Router("/api/ldap/users/import", &LdapAPI{ldapConfig: ldapTestConfig, useTestConfig: true}, "post:ImportUser") + beego.Router("/api/ldap/ping", &LdapAPI{}, "post:Ping") + beego.Router("/api/ldap/users/search", &LdapAPI{}, "get:Search") + beego.Router("/api/ldap/groups/search", &LdapAPI{}, "get:SearchGroup") + beego.Router("/api/ldap/users/import", &LdapAPI{}, "post:ImportUser") beego.Router("/api/configurations", &ConfigAPI{}) beego.Router("/api/configurations/reset", &ConfigAPI{}, "post:Reset") beego.Router("/api/configs", &ConfigAPI{}, "get:GetInternalConfig") diff --git a/src/core/api/ldap.go b/src/core/api/ldap.go index 25aaa35a8..81f45dd87 100644 --- a/src/core/api/ldap.go +++ b/src/core/api/ldap.go @@ -28,8 +28,7 @@ import ( // LdapAPI handles requesst to /api/ldap/ping /api/ldap/user/search /api/ldap/user/import type LdapAPI struct { BaseController - ldapConfig *ldapUtils.Session - useTestConfig bool // Only used for unit test + ldapConfig *ldapUtils.Session } const ( @@ -51,14 +50,14 @@ func (l *LdapAPI) Prepare() { l.HandleForbidden(l.SecurityCtx.GetUsername()) return } - if l.useTestConfig { - ldapCfg, err := ldapUtils.LoadSystemLdapConfig() - if err != nil { - l.HandleInternalServerError(fmt.Sprintf("Can't load system configuration, error: %v", err)) - return - } - l.ldapConfig = ldapCfg + + ldapCfg, err := ldapUtils.LoadSystemLdapConfig() + if err != nil { + l.HandleInternalServerError(fmt.Sprintf("Can't load system configuration, error: %v", err)) + return } + l.ldapConfig = ldapCfg + } // Ping ... diff --git a/src/core/api/ldap_test.go b/src/core/api/ldap_test.go deleted file mode 100644 index 1c5b11674..000000000 --- a/src/core/api/ldap_test.go +++ /dev/null @@ -1,136 +0,0 @@ -package api - -import ( - "net/http" - "testing" - - "github.com/goharbor/harbor/src/common/models" -) - -func TestLDAPPing(t *testing.T) { - cases := []*codeCheckingCase{ - { - request: &testingRequest{ - method: http.MethodPost, - url: "/api/ldap/ping", - }, - code: http.StatusUnauthorized, - }, - { - request: &testingRequest{ - method: http.MethodPost, - url: "/api/ldap/ping", - credential: admin, - }, - code: http.StatusOK, - }, - { - request: &testingRequest{ - method: http.MethodPost, - url: "/api/ldap/ping", - bodyJSON: &models.LdapConf{ - LdapURL: "ldap://127.0.0.1:389", - LdapSearchDn: "cn=admin,dc=example,dc=com", - LdapSearchPassword: "admin", - LdapBaseDn: "dc=example,dc=com", - LdapUID: "cn", - LdapScope: 2, - LdapConnectionTimeout: 5, - }, - credential: admin, - }, - code: http.StatusOK, - }, - } - runCodeCheckingCases(t, cases...) -} - -func TestLDAPUserSearch(t *testing.T) { - cases := []*codeCheckingCase{ - { - request: &testingRequest{ - method: http.MethodGet, - url: "/api/ldap/users/search?username=mike", - }, - code: http.StatusUnauthorized, - }, - { - request: &testingRequest{ - method: http.MethodGet, - url: "/api/ldap/users/search?username=mike", - credential: admin, - }, - code: http.StatusOK, - }, - } - runCodeCheckingCases(t, cases...) -} - -func TestLDAPGroupSearch(t *testing.T) { - cases := []*codeCheckingCase{ - { - request: &testingRequest{ - method: http.MethodGet, - url: "/api/ldap/groups/search?groupname=harbor_users", - }, - code: http.StatusUnauthorized, - }, - { - request: &testingRequest{ - method: http.MethodGet, - url: "/api/ldap/groups/search?groupname=harbor_users", - credential: admin, - }, - code: http.StatusOK, - }, - } - runCodeCheckingCases(t, cases...) -} - -func TestLDAPGroupSearchWithDN(t *testing.T) { - cases := []*codeCheckingCase{ - { - request: &testingRequest{ - method: http.MethodGet, - url: "/api/ldap/groups/search?groupdn=cn=harbor_users,ou=groups,dc=example,dc=com", - }, - code: http.StatusUnauthorized, - }, - { - request: &testingRequest{ - method: http.MethodGet, - url: "/api/ldap/groups/search?groupname=cn=harbor_users,ou=groups,dc=example,dc=com", - credential: admin, - }, - code: http.StatusOK, - }, - } - runCodeCheckingCases(t, cases...) -} - -func TestLDAPImportUser(t *testing.T) { - cases := []*codeCheckingCase{ - { - request: &testingRequest{ - method: http.MethodPost, - url: "/api/ldap/users/import", - bodyJSON: &models.LdapImportUser{ - LdapUIDList: []string{"mike", "mike02"}, - }, - }, - code: http.StatusUnauthorized, - }, - { - request: &testingRequest{ - method: http.MethodPost, - url: "/api/ldap/users/import", - bodyJSON: &models.LdapImportUser{ - LdapUIDList: []string{"mike", "mike02"}, - }, - credential: admin, - }, - code: http.StatusOK, - }, - } - runCodeCheckingCases(t, cases...) -}