(t *testing.T)
| 41 | } |
| 42 | |
| 43 | func 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 | |
| 82 | func TestOrderedHBAs(t *testing.T) { |
| 83 | ordered := new(OrderedHBAs) |
nothing calls this directly
no test coverage detected