mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
51 lines
931 B
Go
51 lines
931 B
Go
package main
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"github.com/safedep/pmg/proxy"
|
||
|
|
)
|
||
|
|
|
||
|
|
type loggingInterceptor struct {
|
||
|
|
domains []string
|
||
|
|
}
|
||
|
|
|
||
|
|
func newLoggingInterceptor() *loggingInterceptor {
|
||
|
|
return &loggingInterceptor{
|
||
|
|
domains: []string{
|
||
|
|
"registry.npmjs.org",
|
||
|
|
"registry.yarnpkg.com",
|
||
|
|
"pypi.org",
|
||
|
|
"files.pythonhosted.org",
|
||
|
|
},
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (li *loggingInterceptor) Name() string {
|
||
|
|
return "logging-interceptor"
|
||
|
|
}
|
||
|
|
|
||
|
|
func (li *loggingInterceptor) ShouldIntercept(ctx *proxy.RequestContext) bool {
|
||
|
|
for _, domain := range li.domains {
|
||
|
|
if ctx.Hostname == domain {
|
||
|
|
return true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return false
|
||
|
|
}
|
||
|
|
|
||
|
|
func (li *loggingInterceptor) HandleRequest(ctx *proxy.RequestContext) (*proxy.InterceptorResponse, error) {
|
||
|
|
fmt.Printf("LOGGING INTERCEPTOR: [%s] %s %s %s\n",
|
||
|
|
ctx.StartTime.Format(time.RFC3339),
|
||
|
|
ctx.RequestID,
|
||
|
|
ctx.Method,
|
||
|
|
ctx.URL.String(),
|
||
|
|
)
|
||
|
|
|
||
|
|
return &proxy.InterceptorResponse{
|
||
|
|
Action: proxy.ActionAllow,
|
||
|
|
}, nil
|
||
|
|
}
|