From 52f9e5f1c8649e601b3e9e76b932d8c2320bdfb2 Mon Sep 17 00:00:00 2001 From: Wenkai Yin Date: Tue, 11 Jul 2017 18:13:48 +0800 Subject: [PATCH] disable some APIs in integration mode --- .../admiral/authcontext/authcontext.go | 2 + src/ui/router.go | 50 +++++++++++-------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/common/security/admiral/authcontext/authcontext.go b/src/common/security/admiral/authcontext/authcontext.go index a980f801b..1180b13d6 100644 --- a/src/common/security/admiral/authcontext/authcontext.go +++ b/src/common/security/admiral/authcontext/authcontext.go @@ -193,9 +193,11 @@ func Login(client *http.Client, url, username, password string) (*AuthContext, e func send(client *http.Client, req *http.Request) (*AuthContext, error) { resp, err := client.Do(req) if err != nil { + log.Debugf("\"%s %s\" failed", req.Method, req.URL.String()) return nil, err } defer resp.Body.Close() + log.Debugf("\"%s %s\" %d", req.Method, req.URL.String(), resp.StatusCode) data, err := ioutil.ReadAll(resp.Body) if err != nil { diff --git a/src/ui/router.go b/src/ui/router.go index b3a7b66b2..1184c8e8f 100644 --- a/src/ui/router.go +++ b/src/ui/router.go @@ -16,6 +16,7 @@ package main import ( "github.com/vmware/harbor/src/ui/api" + "github.com/vmware/harbor/src/ui/config" "github.com/vmware/harbor/src/ui/controllers" "github.com/vmware/harbor/src/ui/service/notifications/clair" "github.com/vmware/harbor/src/ui/service/notifications/registry" @@ -55,23 +56,36 @@ func initRouters() { beego.Router("/harbor/tags", &controllers.IndexController{}) beego.Router("/harbor/configs", &controllers.IndexController{}) - beego.Router("/login", &controllers.CommonController{}, "post:Login") - beego.Router("/log_out", &controllers.CommonController{}, "get:LogOut") - beego.Router("/reset", &controllers.CommonController{}, "post:ResetPassword") - beego.Router("/userExists", &controllers.CommonController{}, "post:UserExists") - beego.Router("/sendEmail", &controllers.CommonController{}, "get:SendEmail") + // standalone + if !config.WithAdmiral() { + beego.Router("/login", &controllers.CommonController{}, "post:Login") + beego.Router("/log_out", &controllers.CommonController{}, "get:LogOut") + beego.Router("/reset", &controllers.CommonController{}, "post:ResetPassword") + beego.Router("/userExists", &controllers.CommonController{}, "post:UserExists") + beego.Router("/sendEmail", &controllers.CommonController{}, "get:SendEmail") - //API: - beego.Router("/api/search", &api.SearchAPI{}) - beego.Router("/api/projects/:pid([0-9]+)/members/?:mid", &api.ProjectMemberAPI{}) - beego.Router("/api/projects/", &api.ProjectAPI{}, "get:List;post:Post;head:Head") - beego.Router("/api/projects/:id([0-9]+)", &api.ProjectAPI{}) - beego.Router("/api/projects/:id([0-9]+)/publicity", &api.ProjectAPI{}, "put:ToggleProjectPublic") + //API: + beego.Router("/api/search", &api.SearchAPI{}) + beego.Router("/api/projects/:pid([0-9]+)/members/?:mid", &api.ProjectMemberAPI{}) + beego.Router("/api/projects/", &api.ProjectAPI{}, "head:Head") + beego.Router("/api/projects/:id([0-9]+)", &api.ProjectAPI{}) + beego.Router("/api/projects/:id([0-9]+)/publicity", &api.ProjectAPI{}, "put:ToggleProjectPublic") + + beego.Router("/api/statistics", &api.StatisticAPI{}) + beego.Router("/api/users/:id", &api.UserAPI{}, "get:Get;delete:Delete;put:Put") + beego.Router("/api/users", &api.UserAPI{}, "get:List;post:Post") + beego.Router("/api/users/:id([0-9]+)/password", &api.UserAPI{}, "put:ChangePassword") + beego.Router("/api/users/:id/sysadmin", &api.UserAPI{}, "put:ToggleUserAdminRole") + beego.Router("/api/repositories/top", &api.RepositoryAPI{}, "get:GetTopRepos") + beego.Router("/api/ldap/ping", &api.LdapAPI{}, "post:Ping") + beego.Router("/api/ldap/users/search", &api.LdapAPI{}, "post:Search") + beego.Router("/api/ldap/users/import", &api.LdapAPI{}, "post:ImportUser") + beego.Router("/api/email/ping", &api.EmailAPI{}, "post:Ping") + } + + // API + beego.Router("/api/projects/", &api.ProjectAPI{}, "get:List;post:Post") beego.Router("/api/projects/:id([0-9]+)/logs", &api.ProjectAPI{}, "get:Logs") - beego.Router("/api/statistics", &api.StatisticAPI{}) - beego.Router("/api/users/:id", &api.UserAPI{}, "get:Get;delete:Delete;put:Put") - beego.Router("/api/users", &api.UserAPI{}, "get:List;post:Post") - beego.Router("/api/users/:id([0-9]+)/password", &api.UserAPI{}, "put:ChangePassword") beego.Router("/api/internal/syncregistry", &api.InternalAPI{}, "post:SyncRegistry") beego.Router("/api/repositories", &api.RepositoryAPI{}, "get:Get") beego.Router("/api/repositories/scanAll", &api.RepositoryAPI{}, "post:ScanAll") @@ -95,8 +109,6 @@ func initRouters() { beego.Router("/api/targets/:id([0-9]+)/policies/", &api.TargetAPI{}, "get:ListPolicies") beego.Router("/api/targets/ping", &api.TargetAPI{}, "post:Ping") beego.Router("/api/targets/:id([0-9]+)/ping", &api.TargetAPI{}, "post:PingByID") - beego.Router("/api/users/:id/sysadmin", &api.UserAPI{}, "put:ToggleUserAdminRole") - beego.Router("/api/repositories/top", &api.RepositoryAPI{}, "get:GetTopRepos") beego.Router("/api/logs", &api.LogAPI{}) beego.Router("/api/configurations", &api.ConfigAPI{}) beego.Router("/api/configurations/reset", &api.ConfigAPI{}, "post:Reset") @@ -104,10 +116,6 @@ func initRouters() { beego.Router("/api/systeminfo", &api.SystemInfoAPI{}, "get:GetGeneralInfo") beego.Router("/api/systeminfo/volumes", &api.SystemInfoAPI{}, "get:GetVolumeInfo") beego.Router("/api/systeminfo/getcert", &api.SystemInfoAPI{}, "get:GetCert") - beego.Router("/api/ldap/ping", &api.LdapAPI{}, "post:Ping") - beego.Router("/api/ldap/users/search", &api.LdapAPI{}, "post:Search") - beego.Router("/api/ldap/users/import", &api.LdapAPI{}, "post:ImportUser") - beego.Router("/api/email/ping", &api.EmailAPI{}, "post:Ping") //external service that hosted on harbor process: beego.Router("/service/notifications", ®istry.NotificationHandler{})