Files
2025-07-06 03:02:19 +08:00

28 lines
683 B
Go

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)
}
}