Handle unauthorized user events gracefully (#15071)

This commit is contained in:
Lauris BH 2021-03-20 22:39:43 +02:00 committed by GitHub
parent 78e8f62706
commit 2f0eb9fd5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View file

@ -30,6 +30,17 @@ func Events(ctx *context.Context) {
ctx.Resp.Header().Set("X-Accel-Buffering", "no")
ctx.Resp.WriteHeader(http.StatusOK)
if !ctx.IsSigned {
// Return unauthorized status event
event := (&eventsource.Event{
Name: "unauthorized",
Data: "sorry",
})
_, _ = event.WriteTo(ctx)
ctx.Resp.Flush()
return
}
// Listen to connection close and un-register messageChan
notify := ctx.Req.Context().Done()
ctx.Resp.Flush()

View file

@ -400,7 +400,7 @@ func RegisterRoutes(m *web.Route) {
})
}, reqSignOut)
m.Any("/user/events", reqSignIn, events.Events)
m.Any("/user/events", events.Events)
m.Group("/login/oauth", func() {
m.Get("/authorize", bindIgnErr(auth.AuthorizationForm{}), user.AuthorizeOAuth)