 aef9d27706
			
		
	
	aef9d27706
	
	
	
		
			
			* stages/authenticator_sms: initial implementation Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/admin: add initial stage UI Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/elements: clear invalid state when old input was invalid but new input is correct Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/authenticator_sms: add more logic Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/user: add basic SMS settings Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/authenticator_sms: initial working version Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/authenticator_sms: add tests Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/flows: optimise totp password manager entry on authenticator_validation stage Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/elements: add grouping support for table Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/admin: allow sms class in authenticator stage Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/admin: add grouping to more pages Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * stages/authenticator_validate: add SMS support Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * api: add throttling for flow executor based on session key and pending user Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: fix style issues Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * ci: add workflow to compile backend translations Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package web
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"net/http"
 | |
| 
 | |
| 	sentryhttp "github.com/getsentry/sentry-go/http"
 | |
| 	log "github.com/sirupsen/logrus"
 | |
| )
 | |
| 
 | |
| func recoveryMiddleware() func(next http.Handler) http.Handler {
 | |
| 	sentryHandler := sentryhttp.New(sentryhttp.Options{})
 | |
| 	l := log.WithField("logger", "authentik.router.sentry")
 | |
| 	return func(next http.Handler) http.Handler {
 | |
| 		sentryHandler.Handle(next)
 | |
| 		return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 | |
| 			next.ServeHTTP(w, r)
 | |
| 			defer func() {
 | |
| 				re := recover()
 | |
| 				if re == nil {
 | |
| 					return
 | |
| 				}
 | |
| 				err := re.(error)
 | |
| 				if err != nil {
 | |
| 					l.WithError(err).Warning("global panic handler")
 | |
| 					jsonBody, _ := json.Marshal(struct {
 | |
| 						Successful bool
 | |
| 						Error      string
 | |
| 					}{
 | |
| 						Successful: false,
 | |
| 						Error:      err.Error(),
 | |
| 					})
 | |
| 
 | |
| 					w.Header().Set("Content-Type", "application/json")
 | |
| 					w.WriteHeader(http.StatusInternalServerError)
 | |
| 					_, err := w.Write(jsonBody)
 | |
| 					if err != nil {
 | |
| 						l.WithError(err).Warning("Failed to write sentry error body")
 | |
| 					}
 | |
| 				}
 | |
| 			}()
 | |
| 		})
 | |
| 	}
 | |
| }
 |