package middlewares import ( "github.com/mayswind/ezbookkeeping/pkg/core" "github.com/mayswind/ezbookkeeping/pkg/errs" "github.com/mayswind/ezbookkeeping/pkg/settings" "github.com/mayswind/ezbookkeeping/pkg/utils" ) // MCPServerIpLimit limits access to the MCP server based on IP address. func MCPServerIpLimit(config *settings.Config) core.MiddlewareHandlerFunc { return func(c *core.WebContext) { if len(config.MCPAllowedRemoteIPs) < 1 { c.Next() return } for i := 0; i < len(config.MCPAllowedRemoteIPs); i++ { if config.MCPAllowedRemoteIPs[i].Match(c.ClientIP()) { c.Next() return } } utils.PrintJsonErrorResult(c, errs.ErrIPForbidden) } }