Skip to content

Commit a1e5cec

Browse files
committed
feat: add deny web page requests support
1 parent b23b224 commit a1e5cec

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

README.md

+8-7
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ Usage:
1111
git-proxy [flags]
1212

1313
Flags:
14-
-l, --bandwidth-limit int set total bandwidth limit (MB/s), 0 as no limit (default 0)
15-
-b, --blacklist-path string set repository blacklist (default "blacklist.txt")
16-
--disable-color disable color output
17-
-d, --domain-list-path string set accept domain (default "domainlist.txt")
18-
-h, --help help for git-proxy
19-
-p, --running-port int disable color output (default 30000)
20-
14+
-l, --bandwidth-limit int set total bandwidth limit (MB/s), 0 as no limit
15+
-b, --blacklist-path string set repository blacklist (default "blacklist.txt")
16+
--deny-web-page deny web page requests
17+
--deny-web-page-list strings deny web page requests list (default [github,gist.github.com])
18+
--disable-color disable color output
19+
-d, --domain-list-path string set accept domain (default "domainlist.txt")
20+
-h, --help help for git-proxy
21+
-p, --running-port int disable color output (default 30000)
2122
```
2223

2324
### URL scheme

main.go

+15-5
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,13 @@ var log = L.NewDefaultFactory(
4141
).Logger()
4242

4343
var (
44-
disableColor bool
45-
runningPort int
46-
domainListPath string
47-
blacklistPath string
48-
bandwidthLimit int
44+
disableColor bool
45+
runningPort int
46+
domainListPath string
47+
blacklistPath string
48+
bandwidthLimit int
49+
denyWebPage bool
50+
denyWebPageList []string
4951
)
5052

5153
var BandwidthLimiter *R.Bucket
@@ -75,6 +77,8 @@ func init() {
7577
command.PersistentFlags().StringVarP(&domainListPath, "domain-list-path", "d", "domainlist.txt", "set accept domain")
7678
command.PersistentFlags().StringVarP(&blacklistPath, "blacklist-path", "b", "blacklist.txt", "set repository blacklist")
7779
command.PersistentFlags().IntVarP(&bandwidthLimit, "bandwidth-limit", "l", 0, "set total bandwidth limit (MB/s), 0 as no limit")
80+
command.PersistentFlags().BoolVarP(&denyWebPage, "deny-web-page", "", false, "deny web page requests")
81+
command.PersistentFlags().StringSliceVarP(&denyWebPageList, "deny-web-page-list", "", []string{"github", "gist.github.com"}, "deny web page requests list")
7882
}
7983

8084
func main() {
@@ -525,6 +529,12 @@ func sendRequestWithURL(URL *url.URL) http.Handler {
525529
return
526530
}
527531
defer response.Body.Close()
532+
if denyWebPage && common.Any(denyWebPageList, func(it string) bool {
533+
return strings.ToLower(it) == strings.ToLower(URL.Host)
534+
}) && response.StatusCode > 199 && response.StatusCode < 300 && strings.Contains(strings.ToLower(response.Header.Get("Content-Type")), "text/html") {
535+
responseWithError(E.New("Refuse to serve web page")).ServeHTTP(w, r)
536+
return
537+
}
528538
for key, values := range response.Header {
529539
delete(w.Header(), key)
530540
for _, value := range values {

0 commit comments

Comments
 (0)