Error messages updated. While Haha! is awesome, it is not very descriptive.
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
# shellcheck shell=bash disable=SC2034,SC2154
|
# shellcheck shell=bash disable=SC2034,SC2154
|
||||||
|
|
||||||
pkgname=skald-git
|
pkgname=skald-git
|
||||||
pkgver=0.0.0.r1547.g506c053
|
pkgver=0.0.0.r1551.g4e210db
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc='Audio-only hall-based conferencing server'
|
pkgdesc='Audio-only hall-based conferencing server'
|
||||||
arch=('x86_64' 'aarch64')
|
arch=('x86_64' 'aarch64')
|
||||||
|
|||||||
+4
-2
@@ -25,7 +25,8 @@ func checkAdmin(w http.ResponseWriter, r *http.Request) bool {
|
|||||||
ok, _ = adminMatch(username, password)
|
ok, _ = adminMatch(username, password)
|
||||||
}
|
}
|
||||||
if !ok {
|
if !ok {
|
||||||
failAuthentication(w, "/skald-api/")
|
failAuthentication(w, "/skald-api/",
|
||||||
|
"Authentication required. Provide valid administrator credentials.")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@@ -71,7 +72,8 @@ func checkPasswordAdmin(w http.ResponseWriter, r *http.Request, hallname, user s
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
failAuthentication(w, "/skald-api/")
|
failAuthentication(w, "/skald-api/",
|
||||||
|
"Authentication required. Provide valid administrator credentials.")
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -505,10 +505,10 @@ func adminMatch(username, password string) (bool, error) {
|
|||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func failAuthentication(w http.ResponseWriter, realm string) {
|
func failAuthentication(w http.ResponseWriter, realm string, message string) {
|
||||||
w.Header().Set("www-authenticate",
|
w.Header().Set("www-authenticate",
|
||||||
fmt.Sprintf("basic realm=\"%v\"", realm))
|
fmt.Sprintf("basic realm=\"%v\"", realm))
|
||||||
http.Error(w, "Haha!", http.StatusUnauthorized)
|
http.Error(w, message, http.StatusUnauthorized)
|
||||||
}
|
}
|
||||||
|
|
||||||
func CheckOrigin(w http.ResponseWriter, r *http.Request, admin bool) bool {
|
func CheckOrigin(w http.ResponseWriter, r *http.Request, admin bool) bool {
|
||||||
@@ -654,7 +654,8 @@ func recordingsHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
ok := checkHallPermissions(w, r, hall)
|
ok := checkHallPermissions(w, r, hall)
|
||||||
if !ok {
|
if !ok {
|
||||||
failAuthentication(w, "recordings/"+hall)
|
failAuthentication(w, "recordings/"+hall,
|
||||||
|
"Authentication required to access recordings. Provide valid credentials with recording permission.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,10 @@ import (
|
|||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/http/httptest"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/pion/webrtc/v4"
|
"github.com/pion/webrtc/v4"
|
||||||
@@ -37,6 +39,26 @@ func TestParseHallName(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRecordingsAuthenticationFailureMessage(t *testing.T) {
|
||||||
|
w := httptest.NewRecorder()
|
||||||
|
|
||||||
|
failAuthentication(w, "recordings/cavi",
|
||||||
|
"Authentication required to access recordings. Provide valid credentials with recording permission.")
|
||||||
|
|
||||||
|
resp := w.Result()
|
||||||
|
if resp.StatusCode != http.StatusUnauthorized {
|
||||||
|
t.Fatalf("status = %d, expected %d",
|
||||||
|
resp.StatusCode, http.StatusUnauthorized)
|
||||||
|
}
|
||||||
|
if got := resp.Header.Get("www-authenticate"); got != `basic realm="recordings/cavi"` {
|
||||||
|
t.Fatalf("www-authenticate = %q", got)
|
||||||
|
}
|
||||||
|
if body := w.Body.String(); !strings.Contains(body,
|
||||||
|
"Authentication required to access recordings. Provide valid credentials with recording permission.") {
|
||||||
|
t.Fatalf("body = %q", body)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestBase(t *testing.T) {
|
func TestBase(t *testing.T) {
|
||||||
a := []struct {
|
a := []struct {
|
||||||
p string
|
p string
|
||||||
|
|||||||
Reference in New Issue
Block a user