code.gitea.io/gitea@v1.21.7/routers/api/packages/container/auth.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package container 5 6 import ( 7 "net/http" 8 9 user_model "code.gitea.io/gitea/models/user" 10 "code.gitea.io/gitea/modules/log" 11 "code.gitea.io/gitea/services/auth" 12 "code.gitea.io/gitea/services/packages" 13 ) 14 15 var _ auth.Method = &Auth{} 16 17 type Auth struct{} 18 19 func (a *Auth) Name() string { 20 return "container" 21 } 22 23 // Verify extracts the user from the Bearer token 24 // If it's an anonymous session a ghost user is returned 25 func (a *Auth) Verify(req *http.Request, w http.ResponseWriter, store auth.DataStore, sess auth.SessionStore) (*user_model.User, error) { 26 uid, err := packages.ParseAuthorizationToken(req) 27 if err != nil { 28 log.Trace("ParseAuthorizationToken: %v", err) 29 return nil, err 30 } 31 32 if uid == 0 { 33 return nil, nil 34 } 35 36 u, err := user_model.GetPossibleUserByID(req.Context(), uid) 37 if err != nil { 38 log.Error("GetPossibleUserByID: %v", err) 39 return nil, err 40 } 41 42 return u, nil 43 }