updates to rate limiter

This commit is contained in:
amy
2026-11-08 18:48:30 -07:00
parent 9cf826075f
commit 9db7d4604f
2 changed files with 4 additions and 1 deletions
+3 -1
View File
@@ -16,6 +16,7 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"time" "time"
"uuid"
"git.erbosoft.com/amy/amsterdam/config" "git.erbosoft.com/amy/amsterdam/config"
"git.erbosoft.com/amy/amsterdam/ui" "git.erbosoft.com/amy/amsterdam/ui"
@@ -95,8 +96,9 @@ func rateLimitErrorHandler(c *echo.Context, err error) error {
// rateLimitDenyHandler is called if the rate limit is exceeded by a connection. // rateLimitDenyHandler is called if the rate limit is exceeded by a connection.
func rateLimitDenyHandler(c *echo.Context, identifier string, err error) error { func rateLimitDenyHandler(c *echo.Context, identifier string, err error) error {
log.Errorf("request %s tripped rate limiter", c.Request().Context().Value(CONTEXTVAL_REQUESTID).(uuid.UUID).String())
return ui.AmWithTempContext(c, func(ctxt ui.AmContext) (string, any) { return ui.AmWithTempContext(c, func(ctxt ui.AmContext) (string, any) {
ctxt.VarMap().Set("identifier", identifier) ctxt.VarMap().Set("identifier", fmt.Sprintf("%s/%s", identifier, ctxt.RemoteIP()))
return "ratelimit", err return "ratelimit", err
}) })
} }
+1
View File
@@ -64,6 +64,7 @@ func setupEcho() *echo.Echo {
e.Logger = slog.New(NewSlogLogrusHandler()) e.Logger = slog.New(NewSlogLogrusHandler())
e.Renderer = &ui.TemplateRenderer{} e.Renderer = &ui.TemplateRenderer{}
e.HTTPErrorHandler = AmErrorHandler e.HTTPErrorHandler = AmErrorHandler
e.IPExtractor = echo.LegacyIPExtractor()
if !config.CommandLine.DebugPanic { if !config.CommandLine.DebugPanic {
e.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{ e.Use(middleware.RecoverWithConfig(middleware.RecoverConfig{
StackSize: int(config.GlobalComputedConfig.PanicRecoveryStack), StackSize: int(config.GlobalComputedConfig.PanicRecoveryStack),