outposts/proxy: use disableIndex for static files
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		@ -31,7 +31,7 @@ func (ps *ProxyServer) HandlePing(rw http.ResponseWriter, r *http.Request) {
 | 
				
			|||||||
func (ps *ProxyServer) HandleStatic(rw http.ResponseWriter, r *http.Request) {
 | 
					func (ps *ProxyServer) HandleStatic(rw http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
	staticFs := http.FileServer(http.FS(staticWeb.StaticDist))
 | 
						staticFs := http.FileServer(http.FS(staticWeb.StaticDist))
 | 
				
			||||||
	before := time.Now()
 | 
						before := time.Now()
 | 
				
			||||||
	http.StripPrefix("/akprox/static", staticFs).ServeHTTP(rw, r)
 | 
						web.DisableIndex(http.StripPrefix("/akprox/static", staticFs)).ServeHTTP(rw, r)
 | 
				
			||||||
	after := time.Since(before)
 | 
						after := time.Since(before)
 | 
				
			||||||
	metrics.Requests.With(prometheus.Labels{
 | 
						metrics.Requests.With(prometheus.Labels{
 | 
				
			||||||
		"outpost_name": ps.akAPI.Outpost.Name,
 | 
							"outpost_name": ps.akAPI.Outpost.Name,
 | 
				
			||||||
@ -54,7 +54,7 @@ func (ps *ProxyServer) Handle(rw http.ResponseWriter, r *http.Request) {
 | 
				
			|||||||
	if !ok {
 | 
						if !ok {
 | 
				
			||||||
		// If we only have one handler, host name switching doesn't matter
 | 
							// If we only have one handler, host name switching doesn't matter
 | 
				
			||||||
		if len(ps.apps) == 1 {
 | 
							if len(ps.apps) == 1 {
 | 
				
			||||||
			ps.log.WithField("host", host).Warning("passing to single app mux")
 | 
								ps.log.WithField("host", host).Trace("passing to single app mux")
 | 
				
			||||||
			for k := range ps.apps {
 | 
								for k := range ps.apps {
 | 
				
			||||||
				ps.apps[k].ServeHTTP(rw, r)
 | 
									ps.apps[k].ServeHTTP(rw, r)
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ import (
 | 
				
			|||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func disableIndex(next http.Handler) http.Handler {
 | 
					func DisableIndex(next http.Handler) http.Handler {
 | 
				
			||||||
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 | 
						return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
		if strings.HasSuffix(r.URL.Path, "/") {
 | 
							if strings.HasSuffix(r.URL.Path, "/") {
 | 
				
			||||||
			http.NotFound(w, r)
 | 
								http.NotFound(w, r)
 | 
				
			||||||
@ -7,6 +7,7 @@ import (
 | 
				
			|||||||
	"github.com/gorilla/mux"
 | 
						"github.com/gorilla/mux"
 | 
				
			||||||
	"goauthentik.io/internal/config"
 | 
						"goauthentik.io/internal/config"
 | 
				
			||||||
	"goauthentik.io/internal/constants"
 | 
						"goauthentik.io/internal/constants"
 | 
				
			||||||
 | 
						"goauthentik.io/internal/utils/web"
 | 
				
			||||||
	staticWeb "goauthentik.io/web"
 | 
						staticWeb "goauthentik.io/web"
 | 
				
			||||||
	staticDocs "goauthentik.io/website"
 | 
						staticDocs "goauthentik.io/website"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@ -14,7 +15,7 @@ import (
 | 
				
			|||||||
func (ws *WebServer) configureStatic() {
 | 
					func (ws *WebServer) configureStatic() {
 | 
				
			||||||
	statRouter := ws.lh.NewRoute().Subrouter()
 | 
						statRouter := ws.lh.NewRoute().Subrouter()
 | 
				
			||||||
	indexLessRouter := statRouter.NewRoute().Subrouter()
 | 
						indexLessRouter := statRouter.NewRoute().Subrouter()
 | 
				
			||||||
	indexLessRouter.Use(disableIndex)
 | 
						indexLessRouter.Use(web.DisableIndex)
 | 
				
			||||||
	// Media files, always local
 | 
						// Media files, always local
 | 
				
			||||||
	fs := http.FileServer(http.Dir(config.G.Paths.Media))
 | 
						fs := http.FileServer(http.Dir(config.G.Paths.Media))
 | 
				
			||||||
	var distHandler http.Handler
 | 
						var distHandler http.Handler
 | 
				
			||||||
@ -42,7 +43,7 @@ func (ws *WebServer) configureStatic() {
 | 
				
			|||||||
	indexLessRouter.PathPrefix("/if/flow/{flow_slug}/assets").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
 | 
						indexLessRouter.PathPrefix("/if/flow/{flow_slug}/assets").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
 | 
				
			||||||
		vars := mux.Vars(r)
 | 
							vars := mux.Vars(r)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		disableIndex(http.StripPrefix(fmt.Sprintf("/if/flow/%s", vars["flow_slug"]), distFs)).ServeHTTP(rw, r)
 | 
							web.DisableIndex(http.StripPrefix(fmt.Sprintf("/if/flow/%s", vars["flow_slug"]), distFs)).ServeHTTP(rw, r)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	indexLessRouter.PathPrefix("/if/admin/assets").Handler(http.StripPrefix("/if/admin", distFs))
 | 
						indexLessRouter.PathPrefix("/if/admin/assets").Handler(http.StripPrefix("/if/admin", distFs))
 | 
				
			||||||
	indexLessRouter.PathPrefix("/if/user/assets").Handler(http.StripPrefix("/if/user", distFs))
 | 
						indexLessRouter.PathPrefix("/if/user/assets").Handler(http.StripPrefix("/if/user", distFs))
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user