Backport go 1.15 changes for 0-10-0 (#1334)

* pkg/storage/redis: use SANs cert

Since go1.15, X.509 CommonName is deprecated, switch to a SANs
certificate for test redis TLS.

While at it, add instruction to genearte cert and build test image.

See: https://golang.org/doc/go1.15#commonname

* config: do not test for exact route id

Different go version can genearte different route id, due to the fact
that we are relying on xxhash.

* internal/controlplane: mocking policy name in test

We don't have to test for exact policy name, as it does not make sense
and force us to change test every new go release.

Co-authored-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
This commit is contained in:
Travis Groth 2020-08-25 16:59:36 -04:00 committed by GitHub
parent 9efeabd956
commit 683c591f14
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 205 additions and 147 deletions

View file

@ -93,28 +93,24 @@ func Test_PolicyRouteID(t *testing.T) {
name string
basePolicy *Policy
comparePolicy *Policy
wantID uint64
wantSame bool
}{
{
"same",
&Policy{From: "https://pomerium.io", To: "http://localhost", AllowedUsers: []string{"foo@bar.com"}},
&Policy{From: "https://pomerium.io", To: "http://localhost", AllowedGroups: []string{"allusers"}},
6315033228798964203,
true,
},
{
"different from",
&Policy{From: "https://pomerium.io", To: "http://localhost"},
&Policy{From: "https://notpomerium.io", To: "http://localhost"},
6315033228798964203,
false,
},
{
"different path",
&Policy{From: "https://pomerium.io", To: "http://localhost"},
&Policy{From: "https://pomerium.io", To: "http://localhost", Path: "/foo"},
6315033228798964203,
false,
},
}
@ -127,7 +123,6 @@ func Test_PolicyRouteID(t *testing.T) {
assert.NoError(t, tt.comparePolicy.Validate())
assert.Equal(t, tt.wantSame, tt.basePolicy.RouteID() == tt.comparePolicy.RouteID())
assert.Equal(t, tt.wantID, tt.basePolicy.RouteID())
})
}
}

View file

@ -171,10 +171,6 @@ func inlineFilename(name string) *envoy_config_core_v3.DataSource {
}
}
func getPolicyName(policy *config.Policy) string {
return fmt.Sprintf("policy-%x", policy.RouteID())
}
func envoyTLSCertificateFromGoTLSCertificate(cert *tls.Certificate) *envoy_extensions_transport_sockets_tls_v3.TlsCertificate {
envoyCert := &envoy_extensions_transport_sockets_tls_v3.TlsCertificate{}
var chain bytes.Buffer

View file

@ -98,6 +98,10 @@ func buildControlPlanePrefixRoute(prefix string) *envoy_config_route_v3.Route {
}
}
var getPolicyName = func(policy *config.Policy) string {
return fmt.Sprintf("policy-%x", policy.RouteID())
}
func buildPolicyRoutes(options *config.Options, domain string) []*envoy_config_route_v3.Route {
var routes []*envoy_config_route_v3.Route
responseHeadersToAdd := toEnvoyHeaders(options.Headers)

View file

@ -1,6 +1,7 @@
package controlplane
import (
"fmt"
"net/url"
"testing"
"time"
@ -9,6 +10,14 @@ import (
"github.com/pomerium/pomerium/internal/testutil"
)
func policyNameFunc() func(*config.Policy) string {
i := 0
return func(*config.Policy) string {
i++
return fmt.Sprintf("policy-%d", i)
}
}
func Test_buildGRPCRoutes(t *testing.T) {
routes := buildGRPCRoutes()
testutil.AssertProtoJSONEqual(t, `
@ -210,6 +219,10 @@ func Test_buildControlPlanePrefixRoute(t *testing.T) {
}
func Test_buildPolicyRoutes(t *testing.T) {
defer func(f func(*config.Policy) string) {
getPolicyName = f
}(getPolicyName)
getPolicyName = policyNameFunc()
routes := buildPolicyRoutes(&config.Options{
CookieName: "pomerium",
DefaultUpstreamTimeout: time.Second * 3,
@ -283,7 +296,7 @@ func Test_buildPolicyRoutes(t *testing.T) {
},
"route": {
"autoHostRewrite": true,
"cluster": "policy-701142725541ce1f",
"cluster": "policy-1",
"timeout": "3s",
"upgradeConfigs": [
{ "enabled": false, "upgradeType": "websocket"},
@ -306,7 +319,7 @@ func Test_buildPolicyRoutes(t *testing.T) {
},
"route": {
"autoHostRewrite": false,
"cluster": "policy-35b6cce9d52d36ed",
"cluster": "policy-2",
"timeout": "0s",
"upgradeConfigs": [
{ "enabled": true, "upgradeType": "websocket"},
@ -329,7 +342,7 @@ func Test_buildPolicyRoutes(t *testing.T) {
},
"route": {
"autoHostRewrite": true,
"cluster": "policy-8935ca8067709cf7",
"cluster": "policy-3",
"timeout": "60s",
"upgradeConfigs": [
{ "enabled": false, "upgradeType": "websocket"},
@ -362,7 +375,7 @@ func Test_buildPolicyRoutes(t *testing.T) {
},
"route": {
"autoHostRewrite": true,
"cluster": "policy-45c2908c3d6f0e52",
"cluster": "policy-4",
"timeout": "3s",
"upgradeConfigs": [
{ "enabled": false, "upgradeType": "websocket"},
@ -385,7 +398,7 @@ func Test_buildPolicyRoutes(t *testing.T) {
},
"route": {
"autoHostRewrite": true,
"cluster": "policy-8935ca8067709cf7",
"cluster": "policy-5",
"timeout": "60s",
"upgradeConfigs": [
{ "enabled": false, "upgradeType": "websocket"},
@ -409,7 +422,7 @@ func Test_buildPolicyRoutes(t *testing.T) {
},
"route": {
"autoHostRewrite": false,
"cluster": "policy-35b6cce9d52d36ed",
"cluster": "policy-6",
"timeout": "3s",
"upgradeConfigs": [
{ "enabled": false, "upgradeType": "websocket"},
@ -432,7 +445,7 @@ func Test_buildPolicyRoutes(t *testing.T) {
},
"route": {
"autoHostRewrite": false,
"cluster": "policy-35b6cce9d52d36ed",
"cluster": "policy-7",
"timeout": "0s",
"upgradeConfigs": [
{ "enabled": true, "upgradeType": "websocket"},
@ -447,6 +460,10 @@ func Test_buildPolicyRoutes(t *testing.T) {
// Make sure default Headers are set for response.
// See also https://github.com/pomerium/pomerium/issues/901
func TestAddOptionsHeadersToResponse(t *testing.T) {
defer func(f func(*config.Policy) string) {
getPolicyName = f
}(getPolicyName)
getPolicyName = policyNameFunc()
routes := buildPolicyRoutes(&config.Options{
CookieName: "pomerium",
DefaultUpstreamTimeout: time.Second * 3,
@ -476,7 +493,7 @@ func TestAddOptionsHeadersToResponse(t *testing.T) {
},
"route": {
"autoHostRewrite": true,
"cluster": "policy-701142725541ce1f",
"cluster": "policy-1",
"timeout": "3s",
"upgradeConfigs": [
{ "enabled": false, "upgradeType": "websocket"},
@ -496,6 +513,10 @@ func TestAddOptionsHeadersToResponse(t *testing.T) {
}
func Test_buildPolicyRoutesWithDestinationPath(t *testing.T) {
defer func(f func(*config.Policy) string) {
getPolicyName = f
}(getPolicyName)
getPolicyName = policyNameFunc()
routes := buildPolicyRoutes(&config.Options{
CookieName: "pomerium",
DefaultUpstreamTimeout: time.Second * 3,
@ -526,7 +547,7 @@ func Test_buildPolicyRoutesWithDestinationPath(t *testing.T) {
"route": {
"autoHostRewrite": true,
"prefixRewrite": "/bar",
"cluster": "policy-605b7be39724cb4f",
"cluster": "policy-1",
"timeout": "3s",
"upgradeConfigs": [
{ "enabled": false, "upgradeType": "websocket"},

13
pkg/storage/redis/testdata/README.md vendored Normal file
View file

@ -0,0 +1,13 @@
# Redis test server
## Genearte test certs
```sh
./create_test_cert.sh
```
## Build docker image
```sh
docker build -t gnouc/pomerium-redis-tls:latest .
```

View file

@ -0,0 +1,27 @@
#!/bin/bash
#!/bin/bash
mkdir -p tls
openssl genrsa -out tls/ca.key 4096
openssl req \
-x509 -new -nodes -sha256 \
-key tls/ca.key \
-days 3650 \
-subj '/O=Redis Test/CN=Pomerium CA' \
-out tls/ca.crt
openssl genrsa -out tls/redis.key 2048
openssl req \
-new -sha256 \
-key tls/redis.key \
-subj '/O=Redis Test/CN=Server' | \
openssl x509 \
-req -sha256 \
-CA tls/ca.crt \
-CAkey tls/ca.key \
-CAserial tls/ca.txt \
-CAcreateserial \
-days 3650 \
-out tls/redis.crt \
-extensions san \
-extfile tls/req.conf
openssl dhparam -out tls/redis.dh 2048

View file

@ -1,29 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIE5jCCAs4CCQCcWg5kDLmBZTANBgkqhkiG9w0BAQsFADA1MRMwEQYDVQQKDApS
ZWRpcyBUZXN0MR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjAw
NzMwMDQyMzAxWhcNMzAwNzI4MDQyMzAxWjA1MRMwEQYDVQQKDApSZWRpcyBUZXN0
MR4wHAYDVQQDDBVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQClzNGrTLlQKurX1CDnCTX2mRD6G0QAlXZ8nU3Lphhu
8SgJd868DWQp+f/c6VoXuhz+rRZoPrSvgtSCqSrtWy5vj5eC8egvYQNZOcH8aj3R
1vCq7h10nRUqJGG/PhvQoYKFIx0s4kXiiNsdH+cvnfiIkwt6Hw9eY8GjBgB5lQQ+
P+RKDjV4busREDfYWV3N+YWoNz7KjRrjJO3XTeDFfywfSGWPKUtJAC3bggjOv76F
td7iK1bFfcxLVkey3ZOCVp74n3p6tnkF6rXoS4Ji4bfmMjIZubtd/jNZiV1vjsWz
EiUVo229mROzCug9GbXf8SW9en5qwM8nigL5NQQAObrSwbKTtVLgFLjTcELwiz0H
/3MSFVWBrWZQZHwXabC/YF2LogZ9ZClGhRn6+kG0wpovBCPltmS9MK8g3dx9U5cP
VTkm4aer8OlP4wggsGz4Yk410YkBkj/4V3Ge22jRxr93k/OWFDkX+pG44UVlCiFQ
3hy2X80VQrJn59QM7BrRfnC9JYJvlF5ON+iSuTGDv3r3ELwlPPxHZArPp6KLw4Qm
yt+b2eMzFx/mS9cAEAw1rwwoGtJdnWXn0UX8qFPc9uJhV9f3xv9tvOAJElKXwMq+
PKDrY4ThwJGVnkV87WUq8vPal4XNXLKApPdHwnR3bSPVKTSUNsHYARmd0thYshBa
7QIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQAu6anZk8Ac5B0mvI3HD2MG885z4l3t
fo9z1VJHthIyFCUcf/zwkdjFED6Gxn4G5QX399cFg+NrNxEC0x3K3Au4yD/uKCxp
yhuWzYGamkGzQJ6kX1edJ+l8CgstdVUWBVmWOyPKSQKJKUqaK4flhW6vPZNPTErQ
nUzjEXDzYGy1OVZlPWh2e5ng9EeTYBkaXMRIL6JbPbNxroE+aQsQ8e737tN+Ih8+
ZHR4B8/lnipnqUaFpnuK4PJZStQW3rLxv+7Xny3nUM6HKB8iz3JgmDDTlCoOtQ1K
Dl8J3w4/v12zat5VRwyIkpkbmqsczRnryK+U7iQX7rSTCBBsjC6yXyo/yqR7f7qh
T2MbXotZDZOopJDkJ70a83bQgR2zlU46oPSXmX7Zum+9zSOSzu5YUeqTC4cvPM8V
vYimiJnAmwhe9HUXfypezh2LLISqTLt9z+6ZImXf+KSu6xdocdON7cMfyxWhVEUw
twHnNYH88OlacSHLSG5ArnoNGnkELfBB8gVXjaVH4n/q0XJCEFu85WPKfgS0aA6c
rMKh3Fo3dpkTXg69aCXBKTwnp0+1uV6F7gB0YyOjd1bBhEQjRF6rNmbqX7f0vYNO
JSLoJWZsLidmBFsAEhLMnyE9tX7nzgLT38gzOhEhjMdZaGHw8lEx+WZnT0F/Sl+o
izm4jRW7jSLxfw==
MIIEqDCCApACCQCeoNdHbzva/zANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtQ
b21lcml1bSBDQTAeFw0yMDA4MTIwNTM1MzlaFw0zMDA4MTAwNTM1MzlaMBYxFDAS
BgNVBAMMC1BvbWVyaXVtIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
AgEAuM38DRYqS7iy7WuoqjO6DBUEXo8WT6Y03Y5BXtQ5StsHKwetSyO8qgQm36ZS
4AXbtncE7KcXQSgF72YHN4fH3mm6Viyfgw1eKJb4yN8BH16K/zFeOqdCBWlyfMs5
CHU/1gQmSrMv1MNbYAfbd9hOYm4S8PUa6SKsgtD5fJKXJtX6ipPYEiz2F5bPS+CH
xGgkmLWmj9QYeiulEb8qEQITU+qwmxUBf2DESyzgE8NI8BNksiy2NiTdOkT3NPqV
8AKJN8ZIqMFS+w+t6Cl10QcIUHdt7EsRgB872ppzqmTE3+rsm9mTDXPw5ngbtDjd
2Hzd0P/nCe+XuLyzAl2IhWDZDcUXZkioq2A+ckb9xu35SzDpJli4xf/jumW7ZCem
AJRd/ZilVuSuQzQThvniQ1wWBj1frEMQf0C+F4iJY7o+KBGeGUV+BpFOdC9u68vZ
LsvIgJTy8VaVYnOzvCHIzkxSkl8dxjz3Mgn4tbPopH5CiD99NaiJjwASLJLVpzM3
EWa9y3paxTJsVmVyh0b1H2ooHc9RpXsGuWcEjBuZ5avk2r7bRltkxLU3D0IR7J1h
kWGE9nOh9YTTmDrS8tLzA4MvhQryTZJnanoAlPgq353YMlNiIe3HelWFISHSe8Gw
kvcWubdYafWqx1h1GdjaIDbZJZ4l7nqGaiaaW1gQFN3x3ZUCAwEAATANBgkqhkiG
9w0BAQsFAAOCAgEAYwG10nom4yqC6cuPrliBWVo9uT9+uUMar2jIt5QqSMvsGpKf
hfh45R8SRYE1vJgB5QpOqXNqzIRz/DA6594Y/Ylig0N3NGB3ky9IxY34QfNPej1B
AQLEbrRD4kDFOrQR2I8LaTROxTevB/v6LHAGvtkgcfyB5bSCkF1oRa4I1qQ3fehs
JbadQlovRnrr1rtnJDfWoqPrEdHEiAqa/abXn+rtxF/72Bp9mfPtlEnPp7duRbiH
wFkxG4m0HPtnyRw6eqLeVIDbVAiG64AMUoR+N7U18GBYbOwhRrObTilYS0TkFxOh
7nWeeet7kOJ5zT0jwRHIRbDA76rNdHqmPqnsMnJm9+R3J2hjFbfiX31vG1p91AdV
ifRP54VeN5l+nGzaw3BJ4h5V0G0xTTVhtrkZIoIVMq+NAHoO02fapn66QfVwC8+7
TyEWzD6w0H2zG4iQAOcZzUoKF/CfDHmmQ+twZT3bF/NESsqmLC2jqE3tDkE6oycv
j3QQ++TT4sV2u1teqHlOwcGZ7qCFsVagsyaaCm1XooLWntoSkuKzflQ5T1YTinGz
6vVTkbpKj6lIv6mHhEloHsDXfLVPMGj/wgzXeDBOv1lucneyNFe6+u8YIoBPFjze
2BiT/mLAi9QO9844x9WWNQbxvI9nKbLhebiHU3SXHInZUT84tFGCDa8c2m8=
-----END CERTIFICATE-----

View file

@ -1,51 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View file

@ -1 +1 @@
D2B95B278BB44405
A067BAEC40B36AD7

View file

@ -1,23 +1,23 @@
-----BEGIN CERTIFICATE-----
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
egElJVL3xwac403pmA3057t4C4/ZFg4gXuUB
-----END CERTIFICATE-----

View file

@ -1,8 +1,8 @@
-----BEGIN DH PARAMETERS-----
MIIBCAKCAQEA0z6Tn69LEeG4+pooHvW9ENMBqdd23JD0UvB69TknOLogvSFUpQwI
JNlhisC0a4LjuBD07X9drWW1uL2yb8vgexGRpWxLmPMEUTMTCRzkHVQEHSkV6MJn
todbgVQ4c2DRGAsSA8VY5XVGIf6w7IUJ/OagyQ/Gr/9+DzliOC7svQlR2iKogX/s
P4+qk0is8lpMMBzhz1bzo4zsJ8NMFqzYGQzuYzlEQlI6UCiiR2+rd6Fh83RbPb12
4o9XKr0Wh+hAwl6EOERMmHR2UBYFn1+It6vmcg8uJnoEWzSiZTWOXqID3YeRyCPi
Myz43Ir5tHMz3V6gVSBZnhex09w58FjRkwIBAg==
MIIBCAKCAQEA4BcCbibc5Tc0JoUfkJkoY5L99tpEpB6CL4TCxC1jyiqrNoclEb2D
Tc8f/mnOKS8MuAZOOiyHQh9n1FyN0rudLIOUzGjVzmTNUXo8Md7N3pM3caZeFYbp
AoY7E9ISlYFm20zaeTziWUC8Yxs+WFEJbDbHScCW3KAqEevM/KfG1TpXKSqJkKGV
zkVyKJItObFCTlGclvRxC7Ajq/+o7fF1U6rfkiuMstXTXxOpvE6KiHkppXlf0gmW
81XJ3k7VOWPBIBdbeJGXrLajU7WuKiNnTvUlf7XEJq5/fy1CkJdxFL/QFCNNp9kR
8NYanjTl6vZgaN7+UbWI69LF/CL7kaBOAwIBAg==
-----END DH PARAMETERS-----

View file

@ -1,27 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View file

@ -0,0 +1,4 @@
[req]
distinguished_name=req
[san]
subjectAltName=DNS:localhost