MCPcopy Create free account
hub / github.com/CrunchyData/postgres-operator / TestHostBasedAuthentication

Function TestHostBasedAuthentication

internal/postgres/hba_test.go:43–80  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

41}
42
43func TestHostBasedAuthentication(t *testing.T) {
44 assert.Equal(t, `local all "postgres","pgo" "peer"`,
45 NewHBA().Local().Users("postgres", "pgo").Method("peer").String())
46
47 assert.Equal(t, `host all all "::1/128" "trust"`,
48 NewHBA().TCP().Network("::1/128").Method("trust").String())
49
50 assert.Equal(t, `host replication "KD6-3.7" samenet "scram-sha-256"`,
51 NewHBA().TCP().SameNetwork().Replication().
52 Users("KD6-3.7").Method("scram-sha-256").
53 String())
54
55 assert.Equal(t, `hostssl "data","bits" all all "md5" "clientcert"="verify-ca"`,
56 NewHBA().TLS().Databases("data", "bits").
57 Method("md5").Options(map[string]string{"clientcert": "verify-ca"}).
58 String())
59
60 assert.Equal(t, `hostnossl all all all "reject"`,
61 NewHBA().NoSSL().Method("reject").String())
62
63 t.Run("OptionsSorted", func(t *testing.T) {
64 assert.Equal(t, `hostssl all all all "ldap" "ldapbasedn"="dc=example,dc=org" "ldapserver"="example.org"`,
65 NewHBA().TLS().Method("ldap").Options(map[string]string{
66 "ldapserver": "example.org",
67 "ldapbasedn": "dc=example,dc=org",
68 }).String())
69 })
70
71 t.Run("SpecialCharactersEscaped", func(t *testing.T) {
72 // Databases; slash U+002F triggers regex escaping; regex characters themselves do not
73 assert.Equal(t, `local "/^[/]asdf_[+][?]1234$","/^[/][*][$]$","+*$" all`,
74 NewHBA().Local().Databases(`/asdf_+?1234`, `/*$`, `+*$`).String())
75
76 // Users; slash U+002F triggers regex escaping; regex characters themselves do not
77 assert.Equal(t, `local all "/^[/]asdf_[+][?]1234$","/^[/][*][$]$","+*$"`,
78 NewHBA().Local().Users(`/asdf_+?1234`, `/*$`, `+*$`).String())
79 })
80}
81
82func TestOrderedHBAs(t *testing.T) {
83 ordered := new(OrderedHBAs)

Callers

nothing calls this directly

Calls 14

NewHBAFunction · 0.85
MethodMethod · 0.80
UsersMethod · 0.80
LocalMethod · 0.80
NetworkMethod · 0.80
TCPMethod · 0.80
ReplicationMethod · 0.80
SameNetworkMethod · 0.80
OptionsMethod · 0.80
DatabasesMethod · 0.80
TLSMethod · 0.80
NoSSLMethod · 0.80

Tested by

no test coverage detected