Skip to content

Commit 323eb91

Browse files
committed
fix validations
1 parent f946cfd commit 323eb91

File tree

5 files changed

+37
-57
lines changed

5 files changed

+37
-57
lines changed

proxyconfig/proxyconfig.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,23 @@ func (pc *ProxyConfig) Validate() error {
2121
}
2222

2323
if pc.HTTP != nil {
24-
_, err := url.Parse(pc.HTTP.URL)
24+
_, err := url.ParseRequestURI(pc.HTTP.URL)
2525
if err != nil {
2626
return fmt.Errorf("proxy http set with invalid url: %v", err)
2727
}
2828
}
2929
if pc.HTTPS != nil {
30-
_, err := url.Parse(pc.HTTPS.URL)
30+
_, err := url.ParseRequestURI(pc.HTTPS.URL)
3131
if err != nil {
3232
return fmt.Errorf("proxy https set with invalid url: %v", err)
3333
}
3434
}
3535

36-
// TODO: maybe validate noproxy?
36+
for _, u := range pc.NoProxy {
37+
if _, err := url.ParseRequestURI(u); err != nil {
38+
return fmt.Errorf("proxy no_proxy set with invalid url: %v", err)
39+
}
40+
}
3741
return nil
3842
}
3943

vault/azurekeyvault/config.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,18 @@ func (c *Config) Validate() error {
3232
if c.ClientID == "" {
3333
return errors.New("client_id is not set")
3434
}
35-
if _, err := url.Parse(c.URL); err != nil {
35+
if _, err := url.ParseRequestURI(c.URL); err != nil {
3636
return fmt.Errorf("failed to parse url: %v", err)
3737
}
3838

39-
if c.CertPath != "" {
39+
if c.CertPath == "" {
4040
return errors.New("cert path must be provided")
4141
}
4242

43+
if _, err := os.Stat(c.CertPath); err != nil {
44+
return fmt.Errorf("cert path %q does not exist: %v", c.CertPath, err)
45+
}
46+
4347
if err := c.Proxy.Validate(); err != nil {
4448
return fmt.Errorf("proxy validation failed: %v", err)
4549
}

vault/azurekeyvault/config_test.go

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package azurekeyvault
22

33
import (
44
"os"
5+
"path/filepath"
56
"testing"
67

78
"github.com/actions/actions-runner-controller/proxyconfig"
@@ -98,16 +99,6 @@ func TestValidate_valid(t *testing.T) {
9899
clientID := "clientID"
99100
url := "https://example.com"
100101

101-
cp, err := os.CreateTemp("", "")
102-
require.NoError(t, err)
103-
err = cp.Close()
104-
require.NoError(t, err)
105-
certPath := cp.Name()
106-
107-
t.Cleanup(func() {
108-
os.Remove(certPath)
109-
})
110-
111102
proxy := &proxyconfig.ProxyConfig{
112103
HTTP: &proxyconfig.ProxyServerConfig{
113104
URL: "http://httpconfig.com",
@@ -124,15 +115,10 @@ func TestValidate_valid(t *testing.T) {
124115
},
125116
}
126117

118+
certPath, err := filepath.Abs("testdata/server.crt")
119+
require.NoError(t, err)
120+
127121
tt := map[string]*Config{
128-
"with jwt": {
129-
TenantID: tenantID,
130-
ClientID: clientID,
131-
URL: url,
132-
CertPath: "",
133-
CertPassword: "",
134-
Proxy: proxy,
135-
},
136122
"with cert": {
137123
TenantID: tenantID,
138124
ClientID: clientID,
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDOjCCAiKgAwIBAgIUQr7R8yN5+2and6ucUOPF6oIbD48wDQYJKoZIhvcNAQEL
3+
BQAwFzEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTI1MDIyODEyMDEzMFoXDTI2
4+
MDcxMzEyMDEzMFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0B
5+
AQEFAAOCAQ8AMIIBCgKCAQEA4oL2hAPQlDVaNJru5fIstkpoVSuam0vpswC7ciRc
6+
XQRjF3q8kjtIA7+jdySsKJqOLGnybDX3awvRyKMEjq11IfnZLjZc+FzTlA+x4z0h
7+
MHb0GiBFXKNzrExGI9F0KEPtFxcMIqZ119LY2ReexxWkZBQYlgTepaevp71za4c2
8+
n4Zy1+0iS5+uklZ4ANKMTBGlN76Qgt530VnpNiIeUbiUzY58Vx4q7kFcUv/oSz8p
9+
rbXr+/GGpAjrOc6/JsezRE8YK2po60dvV80TJ2Jt6pduvF7OSQnq/v4mJl1xuXKl
10+
Byo9HLbeu3BuVRWQs2/EwEzx5kX3Ugysl9Bm44K2yKe9/QIDAQABo4GAMH4wHwYD
11+
VR0jBBgwFoAUfd/q0BY4fkVBV3X+HWzXH0toW08wCQYDVR0TBAIwADALBgNVHQ8E
12+
BAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0RBAgwBocEfwAAATAdBgNV
13+
HQ4EFgQUe0rTTfWjho3hgeLTnajTCpddo2MwDQYJKoZIhvcNAQELBQADggEBAIR2
14+
5zkA7rPnddxCunsz8Jjq3wyhR/KiAFz+RGeFeiXDkF2fWr7QIQ9KbFbv8tpfXR7P
15+
B75bY0sXwutHMB2sZDi92cH5sthNBfp19fI35cxcU4oTPxp4UZJKEiA3Qx8y73CX
16+
NJu1009nPdOJNlIboDGAFdZ5SH6RCh+YcQZ68kjHPWBIpXxLbs9FN3QmpbAvtLh1
17+
PoPaSy7IjKmxm1u+Lf6tyIn2IiB3MiynaB3OKvbkLCseM/5SZKMk6WKSDWopOCJr
18+
xciPOc+yeLz5I2Omn0uViOIIciqjlgxncWAyNtDgvJcecwqB2cPiIhk6GY0QZ1uM
19+
e7KoqGzWXvWLqJ13a9U=
20+
-----END CERTIFICATE-----

vault/vault_test.go

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)