parent
							
								
									ac05f88641
								
							
						
					
					
						commit
						8b35c194ec
					
				|  | @ -280,6 +280,18 @@ func (err ErrAccessTokenNotExist) Error() string { | ||||||
| 	return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA) | 	return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | type ErrAccessTokenEmpty struct { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func IsErrAccessTokenEmpty(err error) bool { | ||||||
|  | 	_, ok := err.(ErrAccessTokenEmpty) | ||||||
|  | 	return ok | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (err ErrAccessTokenEmpty) Error() string { | ||||||
|  | 	return fmt.Sprintf("access token is empty") | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // ________                            .__                __  .__
 | // ________                            .__                __  .__
 | ||||||
| // \_____  \_______  _________    ____ |__|____________ _/  |_|__| ____   ____
 | // \_____  \_______  _________    ____ |__|____________ _/  |_|__| ____   ____
 | ||||||
| //  /   |   \_  __ \/ ___\__  \  /    \|  \___   /\__  \\   __\  |/  _ \ /    \
 | //  /   |   \_  __ \/ ___\__  \  /    \|  \___   /\__  \\   __\  |/  _ \ /    \
 | ||||||
|  |  | ||||||
|  | @ -56,6 +56,9 @@ func NewAccessToken(t *AccessToken) error { | ||||||
| 
 | 
 | ||||||
| // GetAccessTokenBySHA returns access token by given sha1.
 | // GetAccessTokenBySHA returns access token by given sha1.
 | ||||||
| func GetAccessTokenBySHA(sha string) (*AccessToken, error) { | func GetAccessTokenBySHA(sha string) (*AccessToken, error) { | ||||||
|  | 	if sha == "" { | ||||||
|  | 		return nil, ErrAccessTokenEmpty{} | ||||||
|  | 	} | ||||||
| 	t := &AccessToken{Sha1: sha} | 	t := &AccessToken{Sha1: sha} | ||||||
| 	has, err := x.Get(t) | 	has, err := x.Get(t) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  |  | ||||||
|  | @ -49,7 +49,7 @@ func SignedInID(ctx *macaron.Context, sess session.Store) int64 { | ||||||
| 		if len(tokenSHA) > 0 { | 		if len(tokenSHA) > 0 { | ||||||
| 			t, err := models.GetAccessTokenBySHA(tokenSHA) | 			t, err := models.GetAccessTokenBySHA(tokenSHA) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				if models.IsErrAccessTokenNotExist(err) { | 				if models.IsErrAccessTokenNotExist(err) || models.IsErrAccessTokenEmpty(err) { | ||||||
| 					log.Error(4, "GetAccessTokenBySHA: %v", err) | 					log.Error(4, "GetAccessTokenBySHA: %v", err) | ||||||
| 				} | 				} | ||||||
| 				return 0 | 				return 0 | ||||||
|  |  | ||||||
|  | @ -112,7 +112,7 @@ func HTTP(ctx *context.Context) { | ||||||
| 			// Assume username now is a token.
 | 			// Assume username now is a token.
 | ||||||
| 			token, err := models.GetAccessTokenBySHA(authUsername) | 			token, err := models.GetAccessTokenBySHA(authUsername) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				if models.IsErrAccessTokenNotExist(err) { | 				if models.IsErrAccessTokenNotExist(err) || models.IsErrAccessTokenEmpty(err) { | ||||||
| 					ctx.HandleText(http.StatusUnauthorized, "invalid token") | 					ctx.HandleText(http.StatusUnauthorized, "invalid token") | ||||||
| 				} else { | 				} else { | ||||||
| 					ctx.Handle(http.StatusInternalServerError, "GetAccessTokenBySha", err) | 					ctx.Handle(http.StatusInternalServerError, "GetAccessTokenBySha", err) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue