oioss

Форк
0
/
middlewares.go 
58 строк · 1.3 Кб
1
package middlewares
2

3
import (
4
	//   "log"
5
	"fmt"
6
	"net"
7
	"net/http"
8
	"strings"
9

10
	"github.com/gofiber/fiber/v2"
11
)
12

13
func AllRequests(c *fiber.Ctx) error {
14

15
	// log.Println("Параметры запроса: ", c.AllParams())
16
	//Эта ф-ция вызывается при обработке каждого запроса пути /startups/*
17
	return c.Next()
18
}
19

20
func IPMiddleware(allowedDomains []string) func(*fiber.Ctx) error {
21

22
	return func(c *fiber.Ctx) error {
23
		remoteIP := c.IP()
24
		names, err := net.LookupAddr(remoteIP)
25
		if err != nil {
26
			fmt.Println("Error looking up the host:", err)
27
			return c.Status(http.StatusInternalServerError).JSON(fiber.Map{
28
				"error": "Failed to look up the host",
29
			})
30
		}
31

32
		for _, name := range names {
33
			fmt.Println(name)
34
			for _, domain := range allowedDomains {
35
				if strings.TrimSpace(name) == strings.TrimSpace(domain) {
36
					return c.Next()
37
				}
38
			}
39
		}
40

41
		return c.Status(http.StatusForbidden).JSON(fiber.Map{
42
			"error": "Access denied",
43
		})
44
	}
45
}
46

47
func GitMiddleware() func(*fiber.Ctx) error {
48
	return func(c *fiber.Ctx) error {
49
		// fmt.Println(c.Get("X-GitHub-Event")) //debug
50
		if ok := c.Get("X-GitHub-Event", ""); ok != "" {
51
			return c.Next()
52
		}
53

54
		return c.Status(http.StatusForbidden).JSON(fiber.Map{
55
			"error": "Access denied",
56
		})
57
	}
58
}
59

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.