Implement remote embedding of guestbooks #25
| @ -8,7 +8,7 @@ import ( | ||||
| 	"github.com/justinas/nosurf" | ||||
| ) | ||||
| 
 | ||||
| func (app *application) logRequest (next http.Handler) http.Handler { | ||||
| func (app *application) logRequest(next http.Handler) http.Handler { | ||||
| 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		var ( | ||||
| 			ip     = r.RemoteAddr | ||||
| @ -21,7 +21,7 @@ func (app *application) logRequest (next http.Handler) http.Handler { | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| func commonHeaders (next http.Handler) http.Handler { | ||||
| func commonHeaders(next http.Handler) http.Handler { | ||||
| 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		w.Header().Set("Content-Security-Policy", "default-src 'self'; style-src 'self' fonts.googleapis.com; font-src fonts.gstatic.com") | ||||
| 		w.Header().Set("Referrer-Policy", "origin-when-cross-origin") | ||||
| @ -92,3 +92,10 @@ func (app *application) authenticate(next http.Handler) http.Handler { | ||||
| 		next.ServeHTTP(w, r) | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
| func (app *application) enableCors(next http.Handler) http.Handler { | ||||
| 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		w.Header().Set("Access-Control-Allow-Origin", "*") | ||||
| 		next.ServeHTTP(w, r) | ||||
| 	}) | ||||
| } | ||||
|  | ||||
| @ -15,10 +15,11 @@ func (app *application) routes() http.Handler { | ||||
| 
 | ||||
| 	dynamic := alice.New(app.sessionManager.LoadAndSave, noSurf, app.authenticate) | ||||
| 	standard := alice.New(app.recoverPanic, app.logRequest, commonHeaders) | ||||
| 	withCors := standard.Append(app.enableCors) | ||||
| 
 | ||||
| 	mux.Handle("/{$}", dynamic.ThenFunc(app.home)) | ||||
| 	mux.Handle("GET /websites/{id}/guestbook", dynamic.ThenFunc(app.getGuestbook)) | ||||
| 	mux.Handle("GET /websites/{id}/guestbook/comments", standard.ThenFunc(app.getGuestbookCommentsSerialized)) | ||||
| 	mux.Handle("GET /websites/{id}/guestbook/comments", withCors.ThenFunc(app.getGuestbookCommentsSerialized)) | ||||
| 	mux.Handle("GET /websites/{id}/guestbook/comments/create", dynamic.ThenFunc(app.getGuestbookCommentCreate)) | ||||
| 	mux.Handle("POST /websites/{id}/guestbook/comments/create", dynamic.ThenFunc(app.postGuestbookCommentCreate)) | ||||
| 	mux.Handle("GET /users/register", dynamic.ThenFunc(app.getUserRegister)) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user