@@ -53,16 +53,22 @@ func splitKeyValue(input string) (sep rune, sepLen int, k, v string, ok bool) {
5353 return sep , sepLen , k , v , true
5454}
5555
56- func normalizePathRestrictAccesses (inputs []string , normalizePath func (string ) string ) map [string ][]string {
57- maps := make (map [string ][]string , len (inputs ))
56+ func normalizePathRestrictAccesses (
57+ inputs []string ,
58+ normalizePath func (string ) (string , error ),
59+ ) (maps map [string ][]string , errs []error ) {
60+ maps = make (map [string ][]string , len (inputs ))
5861
5962 for i := range inputs {
6063 reqPath , hosts , ok := splitKeyValues (inputs [i ])
6164 if ! ok {
6265 continue
6366 }
6467
65- normalizedPath := normalizePath (reqPath )
68+ normalizedPath , err := normalizePath (reqPath )
69+ if err != nil {
70+ errs = append (errs , err )
71+ }
6672 normalizedHosts := util .ExtractHostsFromUrls (hosts )
6773
6874 for existingPath := range maps {
@@ -75,11 +81,14 @@ func normalizePathRestrictAccesses(inputs []string, normalizePath func(string) s
7581 maps [normalizedPath ] = append (maps [normalizedPath ], normalizedHosts ... )
7682 }
7783
78- return maps
84+ return
7985}
8086
81- func normalizePathHeadersMap (inputs []string , normalizePath func (string ) string ) map [string ][][2 ]string {
82- maps := make (map [string ][][2 ]string , len (inputs ))
87+ func normalizePathHeadersMap (
88+ inputs []string ,
89+ normalizePath func (string ) (string , error ),
90+ ) (maps map [string ][][2 ]string , errs []error ) {
91+ maps = make (map [string ][][2 ]string , len (inputs ))
8392
8493 for _ , input := range inputs {
8594 sep , sepLen , reqPath , header , ok := splitKeyValue (input )
@@ -91,7 +100,10 @@ func normalizePathHeadersMap(inputs []string, normalizePath func(string) string)
91100 continue
92101 }
93102
94- normalizedPath := normalizePath (reqPath )
103+ normalizedPath , err := normalizePath (reqPath )
104+ if err != nil {
105+ errs = append (errs , err )
106+ }
95107 headerName := header [:sepIndex ]
96108 headerValue := header [sepIndex + 1 :]
97109
@@ -105,11 +117,12 @@ func normalizePathHeadersMap(inputs []string, normalizePath func(string) string)
105117 maps [normalizedPath ] = append (maps [normalizedPath ], [2 ]string {headerName , headerValue })
106118 }
107119
108- return maps
120+ return
109121}
110122
111- func normalizePathMaps (inputs []string ) map [string ]string {
112- maps := make (map [string ]string , len (inputs ))
123+ func normalizePathMaps (inputs []string ) (maps map [string ]string , errs []error ) {
124+ maps = make (map [string ]string , len (inputs ))
125+ var err error
113126
114127 for _ , input := range inputs {
115128 _ , _ , urlPath , fsPath , ok := splitKeyValue (input )
@@ -118,7 +131,10 @@ func normalizePathMaps(inputs []string) map[string]string {
118131 }
119132
120133 urlPath = util .CleanUrlPath (urlPath )
121- fsPath = filepath .Clean (fsPath )
134+ fsPath , err = util .NormalizeFsPath (fsPath )
135+ if err != nil {
136+ errs = append (errs , err )
137+ }
122138
123139 for existingUrl := range maps {
124140 if util .IsPathEqual (existingUrl , urlPath ) {
@@ -130,7 +146,7 @@ func normalizePathMaps(inputs []string) map[string]string {
130146 maps [urlPath ] = fsPath
131147 }
132148
133- return maps
149+ return
134150}
135151
136152func normalizeUrlPaths (inputs []string ) []string {
0 commit comments