heavier ratelimiting
This commit is contained in:
parent
bdaae58c71
commit
e2e107d8c9
@ -38,7 +38,7 @@ func StartServer() {
|
|||||||
router.Use(static.Serve("/assets/", static.LocalFile("./public/static", false)))
|
router.Use(static.Serve("/assets/", static.LocalFile("./public/static", false)))
|
||||||
|
|
||||||
router.Use(gin.Recovery())
|
router.Use(gin.Recovery())
|
||||||
router.Use(createLimiter())
|
router.Use(createLimiter(600, time.Minute * 10))
|
||||||
|
|
||||||
// Register templates
|
// Register templates
|
||||||
router.HTMLRender = createRenderer()
|
router.HTMLRender = createRenderer()
|
||||||
@ -46,7 +46,7 @@ func StartServer() {
|
|||||||
router.GET("/login", root.LoginHandler)
|
router.GET("/login", root.LoginHandler)
|
||||||
router.GET("/callback", root.CallbackHandler)
|
router.GET("/callback", root.CallbackHandler)
|
||||||
|
|
||||||
router.GET("/manage/:id/logs/view/:ticket", manage.LogViewHandler) // we check in the actual handler bc of a custom redirect
|
router.GET("/manage/:id/logs/view/:ticket", manage.LogViewHandler) // we check in the actual handler bc of a custom redirect
|
||||||
router.GET("/manage/:id/logs/modmail/view/:uuid", manage.ModmailLogViewHandler) // we check in the actual handler bc of a custom redirect
|
router.GET("/manage/:id/logs/modmail/view/:uuid", manage.ModmailLogViewHandler) // we check in the actual handler bc of a custom redirect
|
||||||
|
|
||||||
authorized := router.Group("/", middleware.AuthenticateCookie)
|
authorized := router.Group("/", middleware.AuthenticateCookie)
|
||||||
@ -111,8 +111,9 @@ func StartServer() {
|
|||||||
userGroup.GET("/guilds", api.GetGuilds)
|
userGroup.GET("/guilds", api.GetGuilds)
|
||||||
|
|
||||||
userGroup.GET("/whitelabel", api.WhitelabelGet)
|
userGroup.GET("/whitelabel", api.WhitelabelGet)
|
||||||
userGroup.POST("/whitelabel", api.WhitelabelPost)
|
|
||||||
userGroup.POST("/whitelabel/status", api.WhitelabelStatusPost)
|
userGroup.Group("/").Use(createLimiter(10, time.Minute)).POST("/whitelabel", api.WhitelabelPost)
|
||||||
|
userGroup.Group("/").Use(createLimiter(1, time.Second * 5)).POST("/whitelabel/status", api.WhitelabelStatusPost)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := router.Run(config.Conf.Server.Host); err != nil {
|
if err := router.Run(config.Conf.Server.Host); err != nil {
|
||||||
@ -144,7 +145,7 @@ func addMainTemplate(renderer multitemplate.Renderer, name string) multitemplate
|
|||||||
"./public/templates/includes/head.tmpl",
|
"./public/templates/includes/head.tmpl",
|
||||||
"./public/templates/includes/sidebar.tmpl",
|
"./public/templates/includes/sidebar.tmpl",
|
||||||
fmt.Sprintf("./public/templates/views/%s.tmpl", name),
|
fmt.Sprintf("./public/templates/views/%s.tmpl", name),
|
||||||
)
|
)
|
||||||
return renderer
|
return renderer
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,11 +160,11 @@ func addManageTemplate(renderer multitemplate.Renderer, name string) multitempla
|
|||||||
return renderer
|
return renderer
|
||||||
}
|
}
|
||||||
|
|
||||||
func createLimiter() func(*gin.Context) {
|
func createLimiter(limit int, period time.Duration) func(*gin.Context) {
|
||||||
store := memory.NewStore()
|
store := memory.NewStore()
|
||||||
rate := limiter.Rate{
|
rate := limiter.Rate{
|
||||||
Period: time.Minute * 10,
|
Period: period,
|
||||||
Limit: 600,
|
Limit: limit,
|
||||||
}
|
}
|
||||||
|
|
||||||
return mgin.NewMiddleware(limiter.New(store, rate))
|
return mgin.NewMiddleware(limiter.New(store, rate))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user