ip_whitelist.go 475 B

12345678910111213141516171819202122232425
  1. package middleware
  2. import (
  3. "github.com/0xJacky/Nginx-UI/settings"
  4. "github.com/gin-gonic/gin"
  5. "github.com/samber/lo"
  6. "net/http"
  7. )
  8. func IPWhiteList() gin.HandlerFunc {
  9. return func(c *gin.Context) {
  10. clientIP := c.ClientIP()
  11. if len(settings.AuthSettings.IPWhiteList) == 0 || clientIP == "127.0.0.1" {
  12. c.Next()
  13. return
  14. }
  15. if !lo.Contains(settings.AuthSettings.IPWhiteList, clientIP) {
  16. c.AbortWithStatus(http.StatusForbidden)
  17. return
  18. }
  19. c.Next()
  20. }
  21. }