support basic authentication

This commit is contained in:
aler9
2020-06-14 18:34:36 +02:00
parent c06d302979
commit 2eddb95cab
7 changed files with 346 additions and 198 deletions

View File

@@ -8,12 +8,14 @@ import (
var casesHeaderAuth = []struct {
name string
byts string
dec string
enc string
ha *HeaderAuth
}{
{
"basic",
`Basic realm="4419b63f5e51"`,
`Basic realm="4419b63f5e51"`,
&HeaderAuth{
Prefix: "Basic",
Values: map[string]string{
@@ -24,6 +26,7 @@ var casesHeaderAuth = []struct {
{
"digest request 1",
`Digest realm="4419b63f5e51", nonce="8b84a3b789283a8bea8da7fa7d41f08b", stale="FALSE"`,
`Digest nonce="8b84a3b789283a8bea8da7fa7d41f08b", realm="4419b63f5e51", stale="FALSE"`,
&HeaderAuth{
Prefix: "Digest",
Values: map[string]string{
@@ -36,6 +39,7 @@ var casesHeaderAuth = []struct {
{
"digest request 2",
`Digest realm="4419b63f5e51", nonce="8b84a3b789283a8bea8da7fa7d41f08b", stale=FALSE`,
`Digest nonce="8b84a3b789283a8bea8da7fa7d41f08b", realm="4419b63f5e51", stale="FALSE"`,
&HeaderAuth{
Prefix: "Digest",
Values: map[string]string{
@@ -48,6 +52,7 @@ var casesHeaderAuth = []struct {
{
"digest response",
`Digest username="aa", realm="bb", nonce="cc", uri="dd", response="ee"`,
`Digest nonce="cc", realm="bb", response="ee", uri="dd", username="aa"`,
&HeaderAuth{
Prefix: "Digest",
Values: map[string]string{
@@ -61,12 +66,21 @@ var casesHeaderAuth = []struct {
},
}
func TestHeaderAuth(t *testing.T) {
func TestHeaderAuthRead(t *testing.T) {
for _, c := range casesHeaderAuth {
t.Run(c.name, func(t *testing.T) {
req, err := ReadHeaderAuth(c.byts)
req, err := ReadHeaderAuth(c.dec)
require.NoError(t, err)
require.Equal(t, c.ha, req)
})
}
}
func TestHeaderAuthWrite(t *testing.T) {
for _, c := range casesHeaderAuth {
t.Run(c.name, func(t *testing.T) {
req := c.ha.Write()
require.Equal(t, c.enc, req)
})
}
}