in proxy/lib/proxy/proxy.go [383:410]
func (s *Service) verifyClientCredentials(r *http.Request) error {
// Check if client credentials are not required
if len(s.opts.ClientsOfProxy) == 0 {
return nil
}
clientID := r.Header.Get(clientIDHeader)
clientSecret := r.Header.Get(clientSecretHeader)
if len(clientID) == 0 {
return status.Errorf(codes.Unauthenticated, "missing header: %q", clientIDHeader)
}
if len(clientSecret) == 0 {
return status.Errorf(codes.Unauthenticated, "missing header: %q", clientSecretHeader)
}
secret, ok := s.opts.ClientsOfProxy[clientID]
if !ok {
return status.Errorf(codes.Unauthenticated, "unknown client id %q in header", clientID)
}
if secret != clientSecret {
return status.Errorf(codes.Unauthenticated, "invalid client secret for client %q in header", clientID)
}
return nil
}