File tree Expand file tree Collapse file tree 5 files changed +37
-57
lines changed Expand file tree Collapse file tree 5 files changed +37
-57
lines changed Original file line number Diff line number Diff line change @@ -21,19 +21,23 @@ func (pc *ProxyConfig) Validate() error {
21
21
}
22
22
23
23
if pc .HTTP != nil {
24
- _ , err := url .Parse (pc .HTTP .URL )
24
+ _ , err := url .ParseRequestURI (pc .HTTP .URL )
25
25
if err != nil {
26
26
return fmt .Errorf ("proxy http set with invalid url: %v" , err )
27
27
}
28
28
}
29
29
if pc .HTTPS != nil {
30
- _ , err := url .Parse (pc .HTTPS .URL )
30
+ _ , err := url .ParseRequestURI (pc .HTTPS .URL )
31
31
if err != nil {
32
32
return fmt .Errorf ("proxy https set with invalid url: %v" , err )
33
33
}
34
34
}
35
35
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
+ }
37
41
return nil
38
42
}
39
43
Original file line number Diff line number Diff line change @@ -32,14 +32,18 @@ func (c *Config) Validate() error {
32
32
if c .ClientID == "" {
33
33
return errors .New ("client_id is not set" )
34
34
}
35
- if _ , err := url .Parse (c .URL ); err != nil {
35
+ if _ , err := url .ParseRequestURI (c .URL ); err != nil {
36
36
return fmt .Errorf ("failed to parse url: %v" , err )
37
37
}
38
38
39
- if c .CertPath ! = "" {
39
+ if c .CertPath = = "" {
40
40
return errors .New ("cert path must be provided" )
41
41
}
42
42
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
+
43
47
if err := c .Proxy .Validate (); err != nil {
44
48
return fmt .Errorf ("proxy validation failed: %v" , err )
45
49
}
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package azurekeyvault
2
2
3
3
import (
4
4
"os"
5
+ "path/filepath"
5
6
"testing"
6
7
7
8
"github.com/actions/actions-runner-controller/proxyconfig"
@@ -98,16 +99,6 @@ func TestValidate_valid(t *testing.T) {
98
99
clientID := "clientID"
99
100
url := "https://example.com"
100
101
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
-
111
102
proxy := & proxyconfig.ProxyConfig {
112
103
HTTP : & proxyconfig.ProxyServerConfig {
113
104
URL : "http://httpconfig.com" ,
@@ -124,15 +115,10 @@ func TestValidate_valid(t *testing.T) {
124
115
},
125
116
}
126
117
118
+ certPath , err := filepath .Abs ("testdata/server.crt" )
119
+ require .NoError (t , err )
120
+
127
121
tt := map [string ]* Config {
128
- "with jwt" : {
129
- TenantID : tenantID ,
130
- ClientID : clientID ,
131
- URL : url ,
132
- CertPath : "" ,
133
- CertPassword : "" ,
134
- Proxy : proxy ,
135
- },
136
122
"with cert" : {
137
123
TenantID : tenantID ,
138
124
ClientID : clientID ,
Original file line number Diff line number Diff line change
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-----
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments