815 Commits

Author SHA1 Message Date
Oleg
b9e93ccd4a
Fix Sliding Window limiter when SkipSuccessfulRequests/SkipFailedRequests is used. (#2484)
* Fix Sliding Window limiter when SkipSuccessfulRequests/SkipFailedRequests is used.

* Add tests.

* Fix linter.

---------

Co-authored-by: Oleg Bakumenko <Bakumenko.Oleg@wb.ru>
2023-06-01 08:00:31 +02:00
leonklingele
c56b4e66a0
middleware/adaptor: allow to convert fiber.Ctx to (net/http).Request (#2461) 2023-05-15 13:04:58 +02:00
M. Efe Çetin
c7c37d9b50
♻️ refactor: merge some external middlewares to core (#2453)
* ♻️ refactor: merge adaptor, helmet, keyauth, redirect, rewrite middlewares to core

* fix linting issues

* fix linting issues

* fix linting issues

* update
2023-05-10 08:01:49 +02:00
bcd
3c3f12b76c
[Feature]: Add filesystem config contentTypeCharset support (#2438)
* Update filesystem.go

* Update filesystem_test.go

* Update filesystem.md

* fmt
2023-05-02 08:40:20 +02:00
RW
3a7dbd0b48
🚀 Consistent way of logging and fix middleware log format #2432 (#2444)
- change log patter
2023-05-01 18:52:30 +02:00
Kousik Mitra
a59d9bac59
🚀 Consistent way of logging and fix middleware log format (#2432)
* 🚀 Replace fmt.Print* with log.Print* (#2402)

* 🚀 Fix middleware logging format (#2402)
2023-05-01 10:01:27 +02:00
James Lucas
c4d2876d64
🐛 fix(cors): Changed condition for 'AllowOriginsFunc' (#2423)
🐛 fix(cors): Changed condition for 'AllowOriginsFunc' to check against default config value of 'AllowOrigins'
2023-04-21 13:37:53 +02:00
James Lucas
866d5b7628
feat(cors): Added new 'AllowOriginsFunc' function. (#2394)
*  feat(cors): Added new 'AllowOriginsFunc' function.

* feat(cors): Added warning log for when both 'AllowOrigins' and 'AllowOriginsFunc' are set.

* feat(docs): Updated docs to include note about discouraging the use of this function in production workloads.

---------

Co-authored-by: RW <rene@gofiber.io>
2023-04-11 10:24:29 +02:00
Hakan Kutluay
22b407e2e7
🐛 [Bug-Fix] add original timeout middleware (#2367)
* add original timeout middleware

* fix linter issues

* deprecate original timeout middleware

* update timeout middleware documentation
2023-04-09 16:05:51 +02:00
René Werner
035e7d4f43 Fix #2396, data race logger middleware 2023-04-02 14:36:00 +02:00
René Werner
243f393434 Fix #2396, data race logger middleware 2023-04-02 14:08:20 +02:00
Rorke76753
56839b433e
🚀 [Feature]: middleware/requestid: don't call "Generator" func on existing request ID header (#2371)
call uuid generator only if rid is empty
2023-03-15 09:45:42 +01:00
Benjamin Grosse
d7b36cde54
🐛 requestid.Config.ContextKey is interface{} (#2369)
requestid.Config.ContextKey is interface{}

Consistent with c.Locals(key inteface{}, ...).
Fixes #2356
2023-03-14 19:37:10 +01:00
Tumushimire Yves
634f163e3f
🚀 [Feature]: SessionOnly when cookie.Expires is 0 (#2152)
* feature: session only for zero expire cookie #2145

* refactor condition to set MaxAge and Expire on cookie

* move checking zero maxage and expire in session middleware

Signed-off-by: Yves Tumushimire <yvestumushimire@gmail.com>

* feature: session only for zero expire cookie #2145

* refactor condition to set MaxAge and Expire on cookie

* move checking zero maxage and expire in session middleware

Signed-off-by: Yves Tumushimire <yvestumushimire@gmail.com>

* CR changes

* some updates

---------

Signed-off-by: Yves Tumushimire <yvestumushimire@gmail.com>
Co-authored-by: Muhammed Efe Çetin <efectn@protonmail.com>
Co-authored-by: René Werner <rene.werner@verivox.com>
2023-03-12 19:14:22 +01:00
Muhammed Efe Çetin
41866cd3dd
👷 v3 (ci): fix some linter warnings 2023-03-06 17:35:39 +03:00
Muhammed Efe Çetin
15e9235383
📝 docs: remove README.mds from middleware dirs 2023-03-06 16:42:35 +03:00
Caio Augusto
44fd1976e7
fix(docs): add missing comma (#2353)
fix: add missing comma

nothing too much but it's a fix :p
2023-03-05 23:26:06 +03:00
Juan Calderon-Perez
dc038d8233
Feature: Add DoRedirects, DoTimeout and DoDeadline to Proxy middleware (#2332)
* Add support for DoRedirects

Signed-off-by: Juan Calderon-Perez <jgcalderonperez@protonmail.com>

* Fix linter issues

Signed-off-by: Juan Calderon-Perez <jgcalderonperez@protonmail.com>

* Add example to README

* Add support for DoDeadline and DoTimeout. Expand unit-tests

* Fix linter errors

Signed-off-by: Juan Calderon-Perez <jgcalderonperez@protonmail.com>

* Add examples for Proxy Middleware

---------

Signed-off-by: Juan Calderon-Perez <jgcalderonperez@protonmail.com>
2023-02-24 15:09:00 +01:00
Ryan Devenney
b634ba0a58
fix cors * behavior #2338 (#2339)
🐛- fix cors * behavior #2338
2023-02-20 22:36:34 +01:00
Michail Safronov
497eb02b48
Basic auth alloc (#2333)
* basic_auth: extend benchmark for uppercase Basic

* basic_auth: check space after basic (and avoid alloc if Basic)

* fixup! basic_auth: check space after basic (and avoid alloc if Basic)
2023-02-13 22:48:55 +01:00
Muhammed Efe Çetin
3168a60605
👷 v3 (ci): fix some linter warnings 2023-02-09 23:15:21 +03:00
Muhammed Efe Çetin
c2749c36c2
👷 v3 (ci): fix some linter warnings 2023-02-09 22:33:45 +03:00
Muhammed Efe Çetin
088cde594d
Merge remote-tracking branch 'origin/master' into v3-beta 2023-02-05 23:43:42 +03:00
ACHMAD IRIANTO EKA PUTRA
61a3336119
add forward from domain (#2323)
* add forward from domain

* add balancer forward

* add unittest and readme

* add short description new feature

* add short description on signature

* golangci-lint fix

---------

Co-authored-by: René Werner <rene@gofiber.io>
2023-02-03 14:45:27 +01:00
René Werner
028d821bea prepare release 2023-02-03 13:59:47 +01:00
Алексей Колесников
21cd45b750
PR: add url for favicon middleware, for correct handling different of… (#2231)
* PR: add url for favicon middleware, for correct handling different of ico formats

* pr:  efectn > URL would be better naming i think

* pr: add test case

* apply reviews

* remove json annotinos, since they are unnecessary

* readme fixes

* linting fixes

---------

Co-authored-by: koalan <kolesnikov.khv@gmail.com>
Co-authored-by: Muhammed Efe Çetin <efectn@protonmail.com>
2023-02-03 10:14:24 +01:00
M. Efe Çetin
2820aef585
🧹 chore: add go 1.20 to ci and readmes (#2322)
*  chore: add go 1.20 to ci and readmes

* 🧹 chore: add go 1.20 to ci and readmes

* update linter

* fix linter

* fix benchmarks

* fix benchmarks

* fix benchmarks
2023-02-02 23:01:37 +03:00
leonklingele
ac4ce21d9c
🐛 Bug: Fix issues introduced in linting PR (#2319)
* internal: revert linting changes

Changes to the internal package should not have been made in 167a8b5e9421e0ab51fbf44c5621632f4a1a90c5.

* middleware/monitor: revert changes to exported field "ChartJSURL"

This is a breaking change introduced in 167a8b5e9421e0ab51fbf44c5621632f4a1a90c5.

* middleware/monitor: fix error checking

Fix the errorenous error checking introduced in 167a8b5e9421e0ab51fbf44c5621632f4a1a90c5.

* 🐛 Bug: Fix issues introduced in linting PR #2319

* 🐛 Bug: Fix issues introduced in linting PR #2319

* Bug: Fix issues introduced in linting PR #2319

---------

Co-authored-by: René Werner <rene@gofiber.io>
2023-02-02 15:57:40 +01:00
leonklingele
44d09209e7
🚀 Feature: Add earlydata middleware (v2 backport) (#2314)
* 🚀 Feature: Add earlydata middleware (#2270)

* middleware: add earlydata middleware

* middleware/earlydata: address comments

* Update README.md

* Update README.md

Co-authored-by: RW <rene@gofiber.io>

* middleware/earlydata: backport to v2

Backport of https://github.com/gofiber/fiber/pull/2270 to v2.

---------

Co-authored-by: RW <rene@gofiber.io>
2023-01-30 12:08:01 +01:00
meehow
de7e2b57e5
openssl rand -base64 32 (#2316)
* openssl rand -base64 32

* Apply suggestions from code review

---------

Co-authored-by: RW <rene@gofiber.io>
2023-01-30 08:47:47 +01:00
Xiaoyue Lin
6dc7a123fb
📝 docs(filesystem): clean duplicated namespace for example (#2313)
chore: clean duplicated namespace
2023-01-28 15:48:43 +08:00
leonklingele
7170b2a40d
🚀 Feature: Add earlydata middleware (#2270)
* middleware: add earlydata middleware

* middleware/earlydata: address comments

* Update README.md

* Update README.md

Co-authored-by: RW <rene@gofiber.io>
2023-01-27 11:21:18 +01:00
leonklingele
167a8b5e94
🚀 Feature: Add and apply more stricter golangci-lint linting rules (#2286)
* golangci-lint: add and apply more stricter linting rules

* github: drop security workflow now that we use gosec linter inside golangci-lint

* github: use official golangci-lint CI linter

* Add editorconfig and gitattributes file
2023-01-27 09:01:37 +01:00
Xiaoyue Lin
07ab88278b
📝 docs(filesystem): fix statik filesystem middleware example typo (#2302)
docs(filesystem): fix statik filesystem middleware example typo
2023-01-18 08:23:19 +01:00
M. Efe Çetin
5406560033
🧹 chore: make most tests parallel (#2299)
* 🧹 chore: make most tests parallel

* revert some tests

* revert some tests

* revert some tests
2023-01-15 23:21:37 +08:00
cloudwindy
0628b95a3d
Fix: logger color output (#2296) 2023-01-14 20:18:57 +08:00
leonklingele
adcf92dec1
🚀 Feature: Add idempotency middleware (v2 backport) (#2288)
* 🚀 Feature: Add idempotency middleware (#2253)

* middleware: add idempotency middleware

* middleware/idempotency: use fiber.Storage instead of custom storage

* middleware/idempotency: only allocate data if really required

* middleware/idempotency: marshal response using msgp

* middleware/idempotency: add msgp tests

* middleware/idempotency: do not export response

* middleware/idempotency: disable msgp's -io option to disable generating unused methods

* middleware/idempotency: switch to time.Duration based app.Test

* middleware/idempotency: only create closure once

* middleware/idempotency: add benchmarks

* middleware/idempotency: optimize strings.ToLower when making comparison

The real "strings.ToLower" still needs to be used when storing the data.

* middleware/idempotency: safe-copy body

* middleware/idempotency: backport to v2
2023-01-13 08:38:50 +01:00
leonklingele
0b5a7d0425
🚀 Feature: Add idempotency middleware (#2253)
* middleware: add idempotency middleware

* middleware/idempotency: use fiber.Storage instead of custom storage

* middleware/idempotency: only allocate data if really required

* middleware/idempotency: marshal response using msgp

* middleware/idempotency: add msgp tests

* middleware/idempotency: do not export response

* middleware/idempotency: disable msgp's -io option to disable generating unused methods

* middleware/idempotency: switch to time.Duration based app.Test

* middleware/idempotency: only create closure once

* middleware/idempotency: add benchmarks

* middleware/idempotency: optimize strings.ToLower when making comparison

The real "strings.ToLower" still needs to be used when storing the data.

* middleware/idempotency: safe-copy body
2023-01-06 08:46:17 +01:00
TwiN
ad5250a6ff
📝docs(middleware): fix alignment in limiter example (#2283)
docs(middleware): Fix indentation in limiter example

Noticed a small formatting issue while going through the docs.
2023-01-05 12:32:28 +08:00
leonklingele
6334f2c9ff
🚀 v3 Feature: Make app.Test accept a time.Duration timeout (#2269)
app: make app.Test accept a time.Duration timeout

Cases found by running semgrep with an empty .semgrepignore file

    semgrep --lang=go -e '$O.Test($X, $Y)'
2022-12-12 20:39:52 +01:00
leonklingele
fd1a29ea79
🚀 Feature: Generate msgp tests (#2263)
* middleware: also generate msgp tests

* middleware/session: drop unused go:generate directive

* middleware: disable msgp's -io option to not generate unused methods
2022-12-11 17:40:07 +01:00
kinggo
efeea7a4b5
optimize: latency use lowest time unit in logger middleware (#2261) 2022-12-10 21:56:43 +01:00
leonklingele
802defa5ff
v3 (chore): cleanup (#2255)
* middleware: switch to new Ctx interface in documentation

* all: use any instead of interface{}
2022-12-03 15:39:57 +03:00
kinggo
075dfc5a8a
optimize: set byteSent log to 0 when use SetBodyStreamWriter (#2239) 2022-12-01 09:19:26 +01:00
leonklingele
17dfcc756b
middleware/requestid: mention that the default UUID generator exposes the number of requests made to the server (#2241) 2022-12-01 09:11:14 +01:00
Xaver Fischer
6d798dbda9
📝 middleware/filesystem does not handle url encoded values on it's own (#2247)
* 📝 middleware/filesystem does not handle url encoded values

* Update README.md

add newline after first warning

Co-authored-by: Xaver Fischer <xaverfischer@mail.de>
2022-12-01 08:53:40 +01:00
Muhammed Efe Çetin
c62dd16e8d
Merge remote-tracking branch 'origin/master' into v3-beta 2022-11-27 20:34:48 +03:00
RW
e4b3b5c708
Improve interface for custom logger func (#2225)
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal

* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal

* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal

* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
2022-11-18 15:32:56 +01:00
Andy Pan
92ce4aac77
📝 Update middleware/logger docs (#2224)
* 📝 Update middleware/logger docs

Update #2219

* Update middleware/logger/README.md

Co-authored-by: RW <rene@gofiber.io>
2022-11-18 14:29:53 +01:00
René Werner
3d39b82aad logger: adjustment for the new Done function - use nil instead of empty func 2022-11-18 13:23:57 +01:00