// Copyright 2020 The Gogs Authors. All rights reserved.// Use of this source code is governed by a MIT-style// license that can be found in the LICENSE file.packageauthutilimport("encoding/base64""net/http""strings")// DecodeBasic extracts username and password from given header using HTTP Basic Auth.// It returns empty strings if values are not presented or not valid.funcDecodeBasic(headerhttp.Header)(username,passwordstring){iflen(header)==0{return"",""}fields:=strings.Fields(header.Get("Authorization"))iflen(fields)!=2||fields[0]!="Basic"{return"",""}p,err:=base64.StdEncoding.DecodeString(fields[1])iferr!=nil{return"",""}creds:=strings.SplitN(string(p),":",2)iflen(creds)==1{returncreds[0],""}returncreds[0],creds[1]}