Skip to content

Commit 460326a

Browse files
committed
feat(serverHandler): apply post-middleware on pre check failed
1 parent 4598cca commit 460326a

File tree

3 files changed

+28
-20
lines changed

3 files changed

+28
-20
lines changed

src/serverHandler/aliasHandler.go

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,28 @@ type aliasHandler struct {
112112
fileServer http.Handler
113113
}
114114

115+
func (h *aliasHandler) preCheck(w http.ResponseWriter, r *http.Request, data *responseData) (passed bool) {
116+
if data.NeedAuth {
117+
h.needAuth(w, r)
118+
}
119+
if !data.AuthSuccess {
120+
h.authFailed(w, data.Status)
121+
return
122+
}
123+
124+
if !data.AllowAccess {
125+
restrictAccess(w, data.Status)
126+
return
127+
}
128+
129+
if data.NeedDirSlashRedirect {
130+
h.redirectWithSlashSuffix(w, r, data.prefixReqPath)
131+
return
132+
}
133+
134+
return true
135+
}
136+
115137
func (h *aliasHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
116138
h.logRequest(r)
117139

@@ -141,21 +163,8 @@ func (h *aliasHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
141163
defer file.Close()
142164
}
143165

144-
if data.NeedAuth {
145-
h.needAuth(w, r)
146-
}
147-
if !data.AuthSuccess {
148-
h.authFailed(w, data)
149-
return
150-
}
151-
152-
if !data.AllowAccess {
153-
restrictAccess(w, data)
154-
return
155-
}
156-
157-
if data.NeedDirSlashRedirect {
158-
h.redirectWithSlashSuffix(w, r, data.prefixReqPath)
166+
if !h.preCheck(w, r, data) {
167+
h.postMiddleware(w, r, data, fsPath)
159168
return
160169
}
161170

@@ -185,7 +194,6 @@ func (h *aliasHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
185194
}
186195
}
187196

188-
// post middlewares
189197
if h.postMiddleware(w, r, data, fsPath) {
190198
return
191199
}

src/serverHandler/auth.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ func (h *aliasHandler) verifyAuth(r *http.Request) (username string, success boo
2525
return
2626
}
2727

28-
func (h *aliasHandler) authFailed(w http.ResponseWriter, data *responseData) {
29-
w.WriteHeader(data.Status)
28+
func (h *aliasHandler) authFailed(w http.ResponseWriter, status int) {
29+
w.WriteHeader(status)
3030
}

src/serverHandler/restrictAccess.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,6 @@ func (h *aliasHandler) isAllowAccess(r *http.Request, reqUrlPath, reqFsPath stri
7878
return false
7979
}
8080

81-
func restrictAccess(w http.ResponseWriter, data *responseData) {
82-
w.WriteHeader(data.Status)
81+
func restrictAccess(w http.ResponseWriter, status int) {
82+
w.WriteHeader(status)
8383
}

0 commit comments

Comments
 (0)