Skip to content

Commit 15631ad

Browse files
committed
Improve check rules code
1 parent 91012bb commit 15631ad

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

service/proxy.go

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -203,46 +203,46 @@ func handleRequest(w http.ResponseWriter, r *http.Request) {
203203
return
204204
}
205205

206-
if site.Rules != nil && len(site.Rules) > 0 {
207-
action, reason, err := rule.CheckRules(site.Rules, r)
208-
if err != nil {
209-
responseError(w, "Internal Server Error: %v", err)
210-
w.WriteHeader(http.StatusInternalServerError)
211-
return
212-
}
206+
if len(site.Rules) == 0 {
207+
nextHandle(w, r)
208+
return
209+
}
213210

214-
if reason != "" && site.DisableVerbose {
215-
reason = "the rule has been hit"
216-
}
211+
action, reason, err := rule.CheckRules(site.Rules, r)
212+
if err != nil {
213+
responseError(w, "Internal Server Error: %v", err)
214+
w.WriteHeader(http.StatusInternalServerError)
215+
return
216+
}
217217

218-
switch action.Type {
219-
case "", "Allow":
220-
w.WriteHeader(action.StatusCode)
221-
case "Block":
222-
responseError(w, "Blocked by CasWAF: %s", reason)
223-
w.WriteHeader(action.StatusCode)
224-
case "Drop":
225-
responseError(w, "Dropped by CasWAF: %s", reason)
226-
w.WriteHeader(action.StatusCode)
227-
case "CAPTCHA":
228-
ok := isVerifiedSession(r)
229-
if ok {
230-
w.WriteHeader(http.StatusOK)
231-
nextHandle(w, r)
232-
return
233-
}
234-
w.Header().Set("Set-Cookie", "casdoor_captcha_token=; Path=/; Max-Age=-1")
235-
redirectToCaptcha(w, r)
218+
if reason != "" && site.DisableVerbose {
219+
reason = "the rule has been hit"
220+
}
221+
222+
switch action.Type {
223+
case "", "Allow":
224+
w.WriteHeader(action.StatusCode)
225+
case "Block":
226+
responseError(w, "Blocked by CasWAF: %s", reason)
227+
w.WriteHeader(action.StatusCode)
228+
case "Drop":
229+
responseError(w, "Dropped by CasWAF: %s", reason)
230+
w.WriteHeader(action.StatusCode)
231+
case "CAPTCHA":
232+
ok := isVerifiedSession(r)
233+
if ok {
234+
w.WriteHeader(http.StatusOK)
235+
nextHandle(w, r)
236236
return
237-
default:
238-
responseError(w, "Error in CasWAF: %s", reason)
239-
w.WriteHeader(http.StatusInternalServerError)
240237
}
241-
nextHandle(w, r)
238+
w.Header().Set("Set-Cookie", "casdoor_captcha_token=; Path=/; Max-Age=-1")
239+
redirectToCaptcha(w, r)
242240
return
243-
} else {
244-
nextHandle(w, r)
241+
default:
242+
responseError(w, "Error in CasWAF: %s", reason)
243+
w.WriteHeader(http.StatusInternalServerError)
245244
}
245+
nextHandle(w, r)
246246
}
247247

248248
func nextHandle(w http.ResponseWriter, r *http.Request) {

0 commit comments

Comments
 (0)