11package serverHandler
22
33import (
4+ "mjpclab.dev/ghfs/src/middleware"
45 "mjpclab.dev/ghfs/src/param"
56 "mjpclab.dev/ghfs/src/serverLog"
67 "mjpclab.dev/ghfs/src/tpl"
@@ -106,6 +107,8 @@ type aliasHandler struct {
106107 contentVaryV1 string
107108 contentVary string
108109
110+ middlewares []middleware.Middleware
111+
109112 fileServer http.Handler
110113}
111114
@@ -131,7 +134,7 @@ func (h *aliasHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
131134 }
132135
133136 // data
134- data := h .getResponseData (r )
137+ data , fsPath := h .getResponseData (r )
135138 h .logErrors (data .errors )
136139 file := data .File
137140 if file != nil {
@@ -167,7 +170,7 @@ func (h *aliasHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
167170 return
168171 }
169172
170- // regular flows
173+ // archive
171174 if len (r .URL .RawQuery ) >= 3 {
172175 switch r .URL .RawQuery [:3 ] {
173176 case "tar" :
@@ -182,6 +185,12 @@ func (h *aliasHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
182185 }
183186 }
184187
188+ // middlewares
189+ if h .middleware (w , r , data , fsPath ) {
190+ return
191+ }
192+
193+ // final process
185194 item := data .Item
186195 if data .WantJson {
187196 h .json (w , r , data )
@@ -275,6 +284,8 @@ func newAliasHandler(
275284 pageVary : ap .pageVary ,
276285 contentVaryV1 : ap .contentVaryV1 ,
277286 contentVary : ap .contentVary ,
287+
288+ middlewares : p .Middlewares ,
278289 }
279290 return h
280291}
0 commit comments