comparison pkg/controllers/routes.go @ 1127:71ba4a66ec95

Return 404 if a proxied service is not found.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 07 Nov 2018 16:08:25 +0100
parents 137a8144e581
children 3d50f558870c
comparison
equal deleted inserted replaced
1125:dbc663b74724 1127:71ba4a66ec95
90 Handle: passwordReset, 90 Handle: passwordReset,
91 NoConn: true, 91 NoConn: true,
92 }).Methods(http.MethodGet) 92 }).Methods(http.MethodGet)
93 93
94 // External proxies. 94 // External proxies.
95 external := &httputil.ReverseProxy{ 95 external := middleware.NotFound(&httputil.ReverseProxy{
96 Director: proxyDirector(models.ExternalServices.Find), 96 Director: proxyDirector(models.ExternalServices.Find),
97 ModifyResponse: proxyModifyResponse("/api/external/"), 97 ModifyResponse: proxyModifyResponse("/api/external/"),
98 } 98 })
99 99
100 externalAuth := any(external) 100 externalAuth := any(external)
101 101
102 api.Handle("/external/{hash}/{url}", externalAuth). 102 api.Handle("/external/{hash}/{url}", externalAuth).
103 Methods( 103 Methods(
108 Methods( 108 Methods(
109 http.MethodGet, http.MethodPost, 109 http.MethodGet, http.MethodPost,
110 http.MethodPut, http.MethodDelete) 110 http.MethodPut, http.MethodDelete)
111 111
112 // Internal proxies. 112 // Internal proxies.
113 internal := &httputil.ReverseProxy{ 113 internal := middleware.NotFound(&httputil.ReverseProxy{
114 Director: proxyDirector(models.InternalServices.Find), 114 Director: proxyDirector(models.InternalServices.Find),
115 ModifyResponse: proxyModifyResponse("/api/internal/"), 115 ModifyResponse: proxyModifyResponse("/api/internal/"),
116 } 116 })
117 117
118 internalAuth := any( 118 internalAuth := any(
119 middleware.ModifyQuery(internal, middleware.InjectUser)) 119 middleware.ModifyQuery(internal, middleware.InjectUser))
120 120
121 api.Handle("/internal/{hash}/{url}", internalAuth). 121 api.Handle("/internal/{hash}/{url}", internalAuth).