mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-22 18:25:56 +01:00
Merge pull request #274 from ywk253100/modify_authentication_of_repository_api
bug fix: create repository client with credential when basic auth is used
This commit is contained in:
commit
a4d318dffe
@ -30,6 +30,7 @@ import (
|
||||
svc_utils "github.com/vmware/harbor/service/utils"
|
||||
"github.com/vmware/harbor/utils/log"
|
||||
"github.com/vmware/harbor/utils/registry"
|
||||
"github.com/vmware/harbor/utils/registry/auth"
|
||||
"github.com/vmware/harbor/utils/registry/errors"
|
||||
)
|
||||
|
||||
@ -241,27 +242,27 @@ func (ra *RepositoryAPI) GetManifests() {
|
||||
}
|
||||
|
||||
func (ra *RepositoryAPI) initRepositoryClient(repoName string) (r *registry.Repository, err error) {
|
||||
username, err := ra.getUsername()
|
||||
endpoint := os.Getenv("REGISTRY_URL")
|
||||
|
||||
username, password, ok := ra.Ctx.Request.BasicAuth()
|
||||
if ok {
|
||||
credential := auth.NewBasicAuthCredential(username, password)
|
||||
return registry.NewRepositoryWithCredential(repoName, endpoint, credential)
|
||||
}
|
||||
|
||||
username, err = ra.getUsername()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
endpoint := os.Getenv("REGISTRY_URL")
|
||||
|
||||
return registry.NewRepositoryWithUsername(repoName, endpoint, username)
|
||||
}
|
||||
|
||||
func (ra *RepositoryAPI) getUsername() (string, error) {
|
||||
// get username from basic auth
|
||||
username, _, ok := ra.Ctx.Request.BasicAuth()
|
||||
if ok {
|
||||
return username, nil
|
||||
}
|
||||
|
||||
// get username from session
|
||||
sessionUsername := ra.GetSession("username")
|
||||
if sessionUsername != nil {
|
||||
username, ok = sessionUsername.(string)
|
||||
username, ok := sessionUsername.(string)
|
||||
if ok {
|
||||
return username, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user