@@ -40,20 +40,20 @@ func (b *Basic) Name() string {
4040// "Authorization" header of the request and returns the corresponding user object for that
4141// name/token on successful validation.
4242// Returns nil if header is empty or validation fails.
43- func (b * Basic ) Verify (req * http.Request , w http.ResponseWriter , store DataStore , sess SessionStore ) * user_model.User {
43+ func (b * Basic ) Verify (req * http.Request , w http.ResponseWriter , store DataStore , sess SessionStore ) ( * user_model.User , error ) {
4444 // Basic authentication should only fire on API, Download or on Git or LFSPaths
4545 if ! middleware .IsAPIPath (req ) && ! isContainerPath (req ) && ! isAttachmentDownload (req ) && ! isGitRawReleaseOrLFSPath (req ) {
46- return nil
46+ return nil , nil
4747 }
4848
4949 baHead := req .Header .Get ("Authorization" )
5050 if len (baHead ) == 0 {
51- return nil
51+ return nil , nil
5252 }
5353
5454 auths := strings .SplitN (baHead , " " , 2 )
5555 if len (auths ) != 2 || (strings .ToLower (auths [0 ]) != "basic" ) {
56- return nil
56+ return nil , nil
5757 }
5858
5959 uname , passwd , _ := base .BasicAuthDecode (auths [1 ])
@@ -77,11 +77,11 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
7777 u , err := user_model .GetUserByID (req .Context (), uid )
7878 if err != nil {
7979 log .Error ("GetUserByID: %v" , err )
80- return nil
80+ return nil , err
8181 }
8282
8383 store .GetData ()["IsApiToken" ] = true
84- return u
84+ return u , nil
8585 }
8686
8787 token , err := auth_model .GetAccessTokenBySHA (authToken )
@@ -90,7 +90,7 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
9090 u , err := user_model .GetUserByID (req .Context (), token .UID )
9191 if err != nil {
9292 log .Error ("GetUserByID: %v" , err )
93- return nil
93+ return nil , err
9494 }
9595
9696 token .UpdatedUnix = timeutil .TimeStampNow ()
@@ -99,13 +99,13 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
9999 }
100100
101101 store .GetData ()["IsApiToken" ] = true
102- return u
102+ return u , nil
103103 } else if ! auth_model .IsErrAccessTokenNotExist (err ) && ! auth_model .IsErrAccessTokenEmpty (err ) {
104104 log .Error ("GetAccessTokenBySha: %v" , err )
105105 }
106106
107107 if ! setting .Service .EnableBasicAuth {
108- return nil
108+ return nil , nil
109109 }
110110
111111 log .Trace ("Basic Authorization: Attempting SignIn for %s" , uname )
@@ -114,7 +114,7 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
114114 if ! user_model .IsErrUserNotExist (err ) {
115115 log .Error ("UserSignIn: %v" , err )
116116 }
117- return nil
117+ return nil , err
118118 }
119119
120120 if skipper , ok := source .Cfg .(LocalTwoFASkipper ); ok && skipper .IsSkipLocalTwoFA () {
@@ -123,5 +123,5 @@ func (b *Basic) Verify(req *http.Request, w http.ResponseWriter, store DataStore
123123
124124 log .Trace ("Basic Authorization: Logged in user %-v" , u )
125125
126- return u
126+ return u , nil
127127}
0 commit comments