feat: increased security
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2026-02-21 21:05:47 +03:00
parent 04830681b9
commit 8befcc11c1
14 changed files with 233 additions and 50 deletions

View File

@@ -2,10 +2,10 @@ package http
import (
"fmt"
"log"
"net/http"
"example.com/m/internal/handlers"
"example.com/m/internal/middleware"
"github.com/gin-gonic/gin"
)
@@ -20,7 +20,12 @@ type Server struct {
func NewServer(address string, lh *handlers.LinksHandler) *Server {
engine := gin.New()
engine.Use(gin.Logger())
engine.Use(gin.Recovery())
engine.Use(middleware.SecurityHeaders())
rl := middleware.NewRateLimiter(10, 20)
engine.Use(rl.Middleware())
return &Server{
address: address,
@@ -32,11 +37,11 @@ func NewServer(address string, lh *handlers.LinksHandler) *Server {
func (s *Server) Start() error {
s.routes()
fmt.Printf("starting server on %s\n", s.address)
if err := s.engine.Run(s.address); err != nil && err != http.ErrServerClosed {
log.Fatalf("error occured while starting the server: %v", err)
return err
return fmt.Errorf("error occurred while starting the server: %w", err)
}
fmt.Println("server started: &v", s.address)
return nil
}