func main() { r := http.NewServeMux() r.HandleFunc(`/`, func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "success!\n") }) n := negroni.New() n.Use(negronigorelic.New("NEW_RELIC_LICENSE_KEY", "example-app", true)) n.UseHandler(r) n.Run(":3000") }
func TestIntegrationWithError(t *testing.T) { mux := http.NewServeMux() mux.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "bar") }) secureMiddleware := New(Options{ ContentTypeNosniff: true, FrameDeny: true, AllowedHosts: []string{"www.example.com", "sub.example.com"}, }) n := negroni.New() n.Use(negroni.HandlerFunc(secureMiddleware.HandlerFuncWithNext)) n.UseHandler(mux) res := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/foo", nil) req.Host = "www3.example.com" n.ServeHTTP(res, req) expect(t, res.Code, http.StatusInternalServerError) }
func (s *Server) Start() { c := &Config{ JQVersion: jq.Version, Env: os.Getenv("JQPLAY_ENV"), NewRelicLicenseKey: os.Getenv("NEW_RELIC_LICENSE_KEY"), AssetHost: os.Getenv("ASSET_HOST"), } r := render.New(render.Options{ Delims: render.Delims{"#{", "}"}, Directory: "public", }) h := &JQHandler{r, c} mux := http.NewServeMux() mux.HandleFunc("/", h.handleIndex) mux.HandleFunc("/jq", h.handleJq) n := negroni.New() n.Use(negroni.NewRecovery()) n.Use(negroni.NewLogger()) n.Use(robotsMiddleware()) n.Use(corsMiddleware("/public")) static := negroni.NewStatic(http.Dir("public")) static.Prefix = "/public" n.Use(static) if nwk := c.NewRelicLicenseKey; nwk != "" { n.Use(negronigorelic.New(nwk, "jqplay", false)) } n.Use(secureMiddleware(c)) n.UseHandler(mux) n.Run(":" + s.Config.Port) }
func TestIntegration(t *testing.T) { mux := http.NewServeMux() mux.HandleFunc("/foo", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "bar") }) secureMiddleware := New(Options{ ContentTypeNosniff: true, FrameDeny: true, }) n := negroni.New() n.Use(negroni.HandlerFunc(secureMiddleware.HandlerFuncWithNext)) n.UseHandler(mux) res := httptest.NewRecorder() req, _ := http.NewRequest("GET", "http://example.com/foo", nil) n.ServeHTTP(res, req) expect(t, res.Code, http.StatusOK) expect(t, res.Body.String(), "bar") expect(t, res.Header().Get("X-Frame-Options"), "DENY") expect(t, res.Header().Get("X-Content-Type-Options"), "nosniff") }