Commit Graph

752 Commits (export-buildtree)

Author SHA1 Message Date
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 167a8b5e94.

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

This is a breaking change introduced in 167a8b5e94.

* middleware/monitor: fix error checking

Fix the errorenous error checking introduced in 167a8b5e94.

* 🐛 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
skyenought e8f8cb647b
Add customTags in logger middleware Config (#2188)
*  Add customTags in logger middleware Config

* improve tags with parameter

* improve logger performance

* improve logger performance

* improve logger performance

* improve logger performance

Co-authored-by: René Werner <rene@gofiber.io>
2022-11-18 13:10:43 +01:00
Andy Pan 3157fb5f1c
Add callback function for middleware/logger (#2219)
*  Add callback function for middleware/logger

* Refine test code
2022-11-15 12:14:32 +01:00
Glenn Lewis 13247206ab
Add URL prefix to pprof middleware (#2194)
* Add URL prefix to pprof middleware

Signed-off-by: Glenn Lewis <6598971+gmlewis@users.noreply.github.com>

* Minor tweak

Signed-off-by: Glenn Lewis <6598971+gmlewis@users.noreply.github.com>

Signed-off-by: Glenn Lewis <6598971+gmlewis@users.noreply.github.com>
2022-11-09 07:59:33 +01:00
Andy Pan 24a6170323
♻️ Leverage runtime/debug to print the full stack trace info (#2183) 2022-10-31 15:12:43 +01:00
Kris Carr f26d9b1d4e
v3 (deps): update to use gofiber/utils/v2 (#2184) 2022-10-31 16:44:53 +03:00
Muhammed Efe Çetin 543e8bb7ea
v3: fix tests 2022-10-28 18:19:02 +03:00
Muhammed Efe Çetin 9428befb9c
Merge remote-tracking branch 'origin/master' into v3-beta 2022-10-28 17:26:17 +03:00
M. Efe Çetin 691d2e6ad5
🗑️ deprecate: go 1.14 & go 1.15 support deprecation (#2172)
* 🗑️ deprecate: go 1.14 & go 1.15 support deprecation
https://github.com/valyala/fasthttp/pull/1379

* fix tests
2022-10-26 11:51:50 +02:00
Diego Parisi eb692727c5
✏️ Fix: comment typo (#2173)
Just a typo

I think there's a typo "unmashal" for "unmarshal"
2022-10-25 19:05:57 +03:00
marcmartin13 4d584c9c9b
📝 Cache readme and docs update (#2169)
* Update README.md

* update no-store request directive

added cache status unreachable

* Update cache.go
2022-10-25 07:52:28 +02:00
marcmartin13 c187c6a2f5
🚀 [Feature]: Cache-Control: no-cache (#2159)
* Added noCache field

Check if the request header Cache-Control contains no-cache

* Update cache.go

* Update config.go

* Update cache.go

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1

* patch-1
2022-10-21 10:28:31 +02:00
kinggo 5fb93fdff6
🐛 fix: multi-byte AppName displays confusion (#2148)
fix: solve wrong print width
2022-10-21 08:30:56 +02:00
RW ce2d087394
Improve memory storage (#2162)
* improve memory storage code and performance

* improve memory storage code and performance

* improve memory storage code and performance

* improve memory storage code and performance

* improve memory storage code and performance

* improve memory storage code and performance
2022-10-19 16:22:42 +02:00
kinggo 2b7a632a19
style: update logger's comment (#2157) 2022-10-17 18:42:05 +03:00
kinggo d275091a2f
🐛 fix: solve data race in middleware/proxy's test (#2153)
fix: solve data race in middleware/proxy's test
2022-10-17 17:20:41 +02:00
xbt573 a023fc2947
🐛 Fix: Reset d.Data instead of deleting keys in it (#2156)
🐛 Reset d.Data instead of deleting keys in it
2022-10-17 16:30:34 +02:00
M. Efe Çetin 925d5d03dc
📝 docs: add doc about usage of CSRF and EncryptCookie middlewares. (#2141) 2022-10-06 07:54:29 +02:00
Muhammed Efe Çetin 7fb50f11f6
✏️ v3 : replace utils.AssertEqual with require in filesystem mw tests 2022-09-30 18:34:38 +03:00
M. Efe Çetin 668b0c85f8
v3 (enhancement): refactor filesystem middleware with `io/fs` (#2027)
*  v3 (feature): refactor filesystem middleware with `io/fs`

* update docs

* attachment support.

* fix
2022-09-29 08:28:52 +02:00
kinggo 8e8ad95079
feat: support to set client in proxy mw (#2117)
optimize: add WithClient
2022-09-28 14:27:58 +02:00
Fufu 4108d73fe0
✏️ Fix: typos (#2127)
Fix: typos
2022-09-28 08:55:28 +03:00
Muhammed Efe Çetin ca6f25a890
v3 (deps): move `utils` to `https://github.com/gofiber/utils` 2022-09-23 21:19:44 +03:00
M. Efe Çetin 10d6f69a89
v3 (feature): new redirection methods (#2014)
*  v3 (feature): new redirection methods

* add flash messages

* withinput, parsing flash message

* add tests

* add benchmarks

* gosec issues

* fix tests

* fix tests

* fix performance issues

* fix performance issues

* optimization.

* better names

* fix tests

* Update router.go

* fix

* fix old messaages with flash messages behavior, add new test case with req

* complete some reviews

* add pool for redirection.

* use constant

* update

*  v3 (feature): new redirection methods

* fix tests, optimize cookie parsing (9 allocs -> 1 alloc)

* test case for message includes comma

* cleanup

* optimization.

* some improvements for the redirect feature

* fix Benchmark_Redirect_Route_WithFlashMessages

* some improvements for the redirect feature

* Update redirect.go

* improve message parsing & test case

Co-authored-by: René Werner <rene@gofiber.io>
2022-09-23 08:17:34 +02:00
dayu d461bf231e
Update README.md (#2114)
some demo codes missing parenthesis, i added them to make that codes could be copied and run
2022-09-22 12:30:19 +03:00
M. Efe Çetin 305bb072be
🧹 tidy up: fix linter errors for tests (#2102) 2022-09-19 08:33:58 +02:00
Hakan Kutluay 7c83e38757
🔥 Update: add timeout context middleware (#2090)
* 🔥 Feature: add timeoutcontext middleware

* move timeoutconext to timeout package

* remove timeoutcontext readme.md

* replace timeout mware with timeout context mware

* Update README.md

* Update README.md

* update timeout middleware readme

* test curl commands fixed

* rename sample code title on timeout middleware

Co-authored-by: RW <rene@gofiber.io>
2022-09-16 16:03:02 +02:00
M. Efe Çetin 8ec62a64cc
🧹 update: add methods configuration for cache middleware (#2081)
* 🧹 update: add methods configuration for cache middleware

* 🧹 update: add methods configuration for cache middleware
2022-09-11 13:11:33 +02:00
M. Efe Çetin 281e2f0046
v3 (feature): merge Listen methods & ListenConfig (#1930)
*  v3: new Start method for app

*  v3: new Start method for app

*  v3: new Start method for app

*  v3: new Start method for app

*  v3: new Start method for app

*  v3: new Start method for app

* fix tests

* improve graceful shutdown

* update

* Start -> Listen

* rename test funcs.

* Add Test_Listen_Graceful_Shutdown test.

* add OnShutdownSuccess

* fix tests

* fix tests

* split listen & listener

* typo

* Add retry logic to tests

* Add retry logic to tests

* Add retry logic to tests

* Add retry logic to tests

Co-authored-by: René Werner <rene@gofiber.io>
2022-09-08 07:57:05 +02:00
M. Efe Çetin e9db6c70d2
v3: fix logger benchmarks (#2074)
* v3: fix logger benchmarks

* fix datarace

* fix datarace

* fix datarace
2022-09-06 17:54:39 +02:00
Muhammed Efe Çetin e3282f6408
♻️ v3 (enhancement): replace `c.Hostname()` -> `c.Host()` & add `c.Hostname()` that returns host without port 2022-09-06 18:43:06 +03:00
Muhammed Efe Çetin 78c6197430
♻️ v3 (enhancement): remove automatic HEAD method creation from Get()
ref: https://github.com/gofiber/fiber/issues/2026
2022-09-05 17:41:39 +03:00
M. Efe Çetin 154e4f8201
v3 (feature): refactor logger middleware (#1979)
*  v3 (feature): refactor logger middleware
- Make middleware extandable for 3rd-party loggers. (https://github.com/gofiber/fiber/issues/1828)

*  v3 (feature): refactor logger middleware
- Make middleware extandable for 3rd-party loggers. (https://github.com/gofiber/fiber/issues/1828)

*  v3 (feature): refactor logger middleware

- add example for zerolog.

*  v3 (feature): refactor logger middleware

- fix ToC.

* merge
2022-09-05 13:15:42 +02:00
Muhammed Efe Çetin 319b8ea3a8
Merge remote-tracking branch 'origin/master' into v3-beta 2022-09-03 23:56:45 +03:00
Fufu 87faeda5c1
🐛 Fix: EnvVar middleware parses base64 incorrectly (#2069)
* Fix: EnvVar middleware parses base64 incorrectly

* Chore: fix typo in README.md

* Chore: standardize and simplify response
2022-09-03 19:03:51 +02:00
RW ec96d161a0
Fix csrf middleware behavior with header key lookup (#2063)
* 🐛 [Bug]: Strange CSRF middleware behavior with header KeyLookup configuration #2045
2022-08-30 14:48:31 +02:00
RW 0ebc9113d5
Update README.md 2022-08-30 08:36:17 +02:00
Emre Savcı d9257c2c1d
🚀 [Feature]: add envvar expose middleware (#2054)
* add envvar expose middleware

* fix readme remove redundant word

* change hard coded json marshal to app config marshaller

* update readme

* update all lang readme

* change t.setenv to os.setenv as backward compability reason

* change io.readall to ioutil.readall

* Update envvar.go

* remove get method that only used in test

* remove unused method from envvar struct

* remove path variable from config, update readme, add new test case

Co-authored-by: RW <rene@gofiber.io>
2022-08-30 08:30:13 +02:00
Jason McNeil 6272d759eb
🚀 [Feature]: middleware/csrf custom extractor (#2052)
* feat(middleware/csrf): allow custom Extractor

* test: update Test_CSRF_From_Custom

* docs: add comma

* docs: update KeyLookup docs
2022-08-28 18:57:47 +02:00
Amir Hossein ffb2d4cb1a
fix unhandled error in cache package tests (#2049)
* fix unhandled errors

* fix unhandled error in cache package test

* omit variable type

* omit variable type

* rename variable because collide with the imported package name
2022-08-26 14:10:46 +02:00
Trim21 c964fda009
v3(tests): use testify for assertion (#2036)
* replace

* write

* rewrite more

* rewrite

* rewrite

* fix

* rewrite
2022-08-22 07:57:10 +02:00
Trim21 b161f805c2
v3(enhancement): remove `utils.Trim*` (#2030)
stdlib functions have same performance in go1.19
2022-08-20 13:52:09 +08:00
Jinquan Wang 32d311cd59
🐛 monitor middleware - fix ignore custom settings (#2024)
* 🐛 fix: ignore custom settings

* 🐛 fix: ignore custom settings

*  chore: add tests for config default
2022-08-19 15:09:16 +02:00
Muhammed Efe Çetin 4105b008c2
Merge remote-tracking branch 'origin/master' into v3-beta 2022-08-19 14:33:31 +03:00
M. Efe Çetin 6669ec4486
📝 docs: gofmt & add missing copyright texts (#2013) 2022-08-15 20:25:26 +02:00
Jinquan Wang e8a2ba363c
🐛 bug: fix proxy overwrote the wrong scheme (#2004)
* 🐛 bug: fix proxy overwrote the wrong scheme

*  fix: fix io not exist in go1.14
2022-08-09 16:14:41 +02:00
Muhammed Efe Çetin f3067c14b3
🔥 v3: remove monitor middleware from core to reduce deps 2022-08-08 11:22:28 +03:00
M. Efe Çetin eacde70294
v3 (feature): initial support for binding (#1981)
*  v3 (feature): initial support for binding

*  v3 (feature): initial support for binding #1981
use pointer/references instead of copies

*  v3 (feature): initial support for binding
embed bind into the ctx

*  v3 (feature): initial support for binding
- add URI binder.

*  v3 (feature): initial support for binding
- add response header binder.

*  v3 (feature): initial support for binding
- add response header binder.

*  v3 (feature): initial support for binding
- add cookie binder.

*  v3 (feature): initial support for binding
- custom binder support for body binding.
- test case for custom binder.

*  v3 (feature): initial support for binding
- add map[string][]string & map[string]string support for binders.

*  v3 (feature): initial support for binding
- fix Test_Bind_Header_Map

*  v3 (feature): initial support for binding
- Functional Should/Must

*  v3 (feature): initial support for binding
- custom struct validator support.

*  v3 (feature): initial support for binding
- README for binding.
- Docs for binding methods.

*  v3 (feature): initial support for binding
- Bind() -> BindVars(), Binding() -> Bind()

*  v3 (feature): initial support for binding
- fix doc problems

*  v3 (feature): initial support for binding
- fix doc problems

Co-authored-by: wernerr <rene@gofiber.io>
2022-08-08 09:16:08 +02:00
Muhammed Efe Çetin 738e710766
♻️ v3 (enhancement): use fs.FS as Filesystem type of favicon middleware 2022-08-07 19:06:05 +03:00
M. Efe Çetin 4103f9463d
feature: customizable colors (#1977)
*  feature: customizable colors

*  feature: customizable colors

*  feature: customizable colors
2022-08-01 08:24:37 +02:00
RW ff1e0109a3
Closes #1931 "🤗 How to get path param before a custom verb?" (#1983)
* Add possibility for parameters before custom verb
FIX for "🤗 How to get path param before a custom verb? #1931"

* try to stabilize the tests
2022-07-27 08:37:03 +02:00
M. Efe Çetin a458bd344c
v3 (feature): convert fiber.Ctx type to interface (#1928)
*  v3: convert fiber.Ctx type to interface

* update ctx methods

* add new methods to customize ctx, fix some problems

* update comments.

* fix something
2022-07-13 07:48:29 +02:00
Majid Taheri(I love optimization) 744e4da3ef
add some parameters to config for supporting #1936 (#1956)
* add some parameters to config for supporting #1936

* remove go:embed

* apply code review  - 1956#issuecomment-1169811117

* lint

Co-authored-by: Muhammed Efe Çetin <efectn@protonmail.com>
2022-07-05 13:34:32 +02:00
marcelogamba e58ad6b69a
TagLatency doesn't have consistence format between default and custom format (#1943)
Co-authored-by: Marcelo Gamba <gamba@itstransdata.com>
2022-07-04 09:14:57 +02:00
John Li 41d31a0190
fix middleware/session update cookie. (#1960) 2022-07-02 13:02:41 +02:00
Muhammed Efe Çetin a2c71e548e
v3: include adopter, helmet, keyauth, redirect, rewrite middlewares into the codebase (https://github.com/gofiber/fiber/issues/1828) 2022-06-21 17:36:59 +03:00
Muhammed Efe Çetin 67b9542f3f
v3: rename protocol to scheme, add protocol to ctx (https://github.com/gofiber/fiber/issues/1828) 2022-06-21 17:24:34 +03:00
Muhammed Efe Çetin 3b943d79c9
v3: remove internal/template/html, replace internal/memory by internal/storage/memory 2022-06-04 14:19:59 +03:00
Muhammed Efe Çetin 8a15f77fc4
v3: move most deps to go.mod 2022-06-02 17:37:53 +03:00
Muhammed Efe Çetin f119794035
v3: replace io/ioutil by io and os, update version constant 2022-06-01 18:34:22 +03:00
Muhammed Efe Çetin 9efcefa513
v3: fix tests 2022-05-31 17:55:08 +03:00
Muhammed Efe Çetin edd89de2d6
v3: remove deprecations 2022-05-31 17:50:31 +03:00
Muhammed Efe Çetin c7f45ec38e
v3: replace interface{}s by any 2022-05-31 17:41:38 +03:00
Muhammed Efe Çetin 1188144d78
🎉 v3: init 2022-05-31 17:35:49 +03:00
Viktor Persson 68e922d733
Refactor favicon middleware, avoid magic numbers. (#1919)
* Refactor favicon middleware, avoid magic numbers.

* Introduce constant for path to favicon.
2022-05-28 21:35:49 +02:00
Serhat Şevki Dinçer 0fdd7df0f9
📊 add refresh period to monitor mw (#1898) 2022-05-16 08:15:47 +02:00
Vladislav aa229287cf
🔥 Feature: Add max size to cache (#1892)
* Cache middleware size limit

* Replace MaxInt with MaxInt32. Add comments to benchmark

* Avoid allocation in heap push. Small fixes

* Count body sizes instead of entries

* Update cache/readme
2022-05-10 08:50:26 +02:00
Serhat Şevki Dinçer 29be6691c5
📊 add page title to monitor mw (#1893) 2022-05-05 15:27:48 +02:00
Pinank Solanki bb9ac8feaf
🐛 Fix expiration time in cache middleware (#1881)
* 🐛 Fix: Expiration time in cache middleware

* Custom expiration time using ExpirationGenerator is also functional
now instead of default Expiration only

* 🚨 Improve Test_CustomExpiration

* - stabilization of the tests
- speed up the cache tests
- fix race conditions in client and client tests

Co-authored-by: wernerr <rene@gofiber.io>
2022-05-01 11:43:46 +02:00
akp e974c6793f
RFC: Return an instance of `*fiber.Error` when no handler found (#1847)
* Return an instance of `*fiber.Error` when no handler found

When a handler cannot be found for a given path, previously Fiber
would construct a plaintext response that cannot be modified.

This commit switches to returning a new instance of `*fiber.Error`
with identical error message so that users can customise the look
of their 404 pages.

Signed-off-by: AKP <tom@tdpain.net>

* Fix `Test_App_Next_Method`

This test was failing as the error returned by `c.Next()` that's
required to generate the correct 404 status code was not being
passed through the middleware and being silently ignored.

Signed-off-by: AKP <tom@tdpain.net>

* Fix `Test_Logger_All`

Signed-off-by: AKP <tom@tdpain.net>

* Fix `Test_Cache_WithHeadThenGet` test

As far as I can tell, this test is meant to check that a cached
HEAD request to a given endpoint does not return the cached
content to a GET request to the same endpoint, and the test has
been altered to correctly check for this.

Signed-off-by: AKP <tom@tdpain.net>
2022-04-05 08:39:53 +02:00
Vadim Gerasimenko c92a5056ae
🩹 Fix limiter middleware db connection (#1813)
* remove release() method

* Revert "remove release() method"

This reverts commit fdfc8da967.

* Rearrange mutexes in limiter_fixed.go

* refactor limiter_fixed.go

* Update limiter_fixed.go

Co-authored-by: RW <rene@gofiber.io>
2022-03-15 12:41:28 +01:00
Théotime Lévêque 1cddc56f13
Cache middleware: Store e2e headers. (#1807)
*  Cache middleware: Store e2e headers.

As defined in RFC2616 - section-13.5.1, shared caches MUST
store end-to-end headers from backend response and MUST be
transmitted in any response formed from a cache entry.

This commit ensures a stronger consistency between responses
served from the handlers & from the cache middleware.

*  Cache middleware: Add flag for e2e headers.

Set flag to prevent e2e headers caching to
be the default behavior of the cache middleware.
This would otherwise change quite a lot the
experience for cache middleware current users.

*  Cache middleware: Add Benchmark for additionalHeaders feature.

*  Cache middleware: Rename E2Eheaders into StoreResponseHeaders.

E2E is an acronym commonly associated with test.
While in the present case it refers to end-to-end
HTTP headers (by opposition to hop-by-hop), this
still remains confusing. This commits renames it
to a more generic name.

*  Cache middleware: Update README

*  Cache middleware: Move map instanciation.

This will prevent an extra memory allocation for users
not interested in this feature.

*  Cache middleware: Prevent memory allocation when StoreResponseHeaders is disabled.

*  Cache middleware: Store e2e headers. #1807
- use set instead of add for the headers
- copy value from the headers -> prevent problems with mutable values

Co-authored-by: wernerr <rene@gofiber.io>
2022-03-08 10:18:04 +01:00
Théotime Lévêque d0934df656
✏️ Cache middleware: Fix comment typo in manager.go. (#1804) 2022-03-05 15:36:51 +03:00
Geet Manghnani a746e5bfb8
Restore Original URL of the context after changing it (#1788)
* Restore original URL after the proxy

* Use the Immutable string to restore

* Changing deprecated ImmutableString to CopyString

Co-authored-by: Geet Manghnani <gmanghna@in.ibm.com>
2022-02-20 21:59:47 +01:00
Vadim Gerasimenko c5f11cc800
Fix comment relating to deprecated field (#1790) 2022-02-20 19:01:16 +03:00
bigflood e3d258655f
Fix: incorrect scheme on proxy.Do (#1762) (#1765) 2022-02-12 19:43:04 +01:00
liaohongxing 1fd6eabba9
fix cache docs error (#1769) 2022-02-12 13:00:00 +01:00
apoq b9efc76722
Fix cache mutex lock (#1764) 2022-02-11 09:48:52 +01:00
Abhishek Mehandiratta 68fcd8c88f
Feature: Session Only Cookies (#1752)
* feat(ctx): add SessionOnly property on Cookie struct

* feat(middleware/config): add CookieSessionOnly property on middleware Config struct

* feat(csrf): link config CookieSessionOnly with fiber.Cookie in create middleware function

* fix(ctx_test): add tests for SessionOnly cookie in test_ctx_cookie

* fix(readme): update readme in csrf middleware for CookieSessionOnly property

* remove deprecated property from CookieSessionOnly explaination comments
2022-02-07 13:35:00 +01:00
Norbert Hauriel 569511eb78
📝 fix file names (#1747) (#1748) 2022-02-03 12:58:59 -05:00
Norbert Hauriel d85ae2bce3
Doc(limiter): clarify variable name 'expire' (#1742)
This clarifies the intent of variable 'expire' by renaming to
the more understandable 'resetInSec'. All mentions are renamed as well.
2022-02-03 09:26:25 +01:00
M. Efe Çetin 5766feef29
feature: add Next to Pprof and Expvar middlewares. (#1737)
* Add Next to Pprof and Expvar middlewares.

* Update READMEs.
2022-01-29 22:24:32 +01:00
Jesse Quinn d411ec10d6
added HEAD method to caching (#1730)
* added HEAD method to caching

* changed key due to head and get sharing same key

* Update cache.go

- add a improvement task for later

* Update cache.go

correct comment

Co-authored-by: Jesse Quinn <jesse.quinn@zpesystems.com>
Co-authored-by: RW <rene@gofiber.io>
2022-01-24 16:36:46 +01:00
Nick Smith 1b00264385
Fix typos in middleware (#1714)
Co-authored-by: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-01-14 22:31:44 -05:00
amir 4f1a712498
🩹 Fix: Add `csrf_` to default encrypt cookie exception (#1631) (#1698) 2022-01-09 22:21:49 +01:00
M. Efe Çetin 59240b5493
Add GetRespHeader, GetReqHeaders and TagReqHeaders for logger mw (#1678)
* Add GetRespHeader & GetReqHeaders methods.

* Add TagReqHeaders for logger middleware.

* Update README.md
2021-12-31 13:03:08 +01:00
Jason McNeil 59e4bf6cc5
🔧 fix(middleware/csrf): unmatched token returns nil error (#1667)
* Update csrf.go

* Update csrf_test.go

* fix(middleware/csrf): missing token return and unit test

* Update csrf_test.go
2021-12-29 02:13:20 +01:00
wernerr a5b2b8989b fix middleware/session README.md 2021-12-06 13:35:47 +01:00
M. Efe Çetin 5e37126352
Improvements for logger middleware (#1645)
* Add NO_COLOR compatibility.

* Use /dev/stdout as default output stream.

* Fix coloring with custom formats.

* Fix tests.
2021-12-06 08:21:36 +01:00
M. Efe Çetin b74676704d
Add disable html support to monitor middleware. (#1620)
* Add disable html support to monitor middleware.

* Change field.

* Update README.md

* Update middleware/monitor/config.go

* Fix tests.

Co-authored-by: hi019 <65871571+hi019@users.noreply.github.com>
2021-12-05 19:28:50 +01:00
Jason McNeil 693f3c5118
fix(middleware/session): CookieSameSite default "Lax" (#1638)
* CookieSameSite default "Lax"

* Update README.md

* CookieSameSite default "Lax"

* Revert "CookieSameSite default "Lax""

This reverts commit 414187704b.
2021-12-02 07:44:03 +01:00
Jason McNeil af6b204e50
CookieSameSite default "Lax" (#1640) 2021-12-02 07:41:44 +01:00
Turgay c9e959c4d4
Recover middleware: Added, fiber.Ctx as a first paremeter to StackTraceHandler. (#1623) 2021-11-29 08:31:43 +01:00
djunny f9d5f787af
Feature: [Cache] add ExpirationGenerator for generate custom Expiration (#1618)
* Feature: [Cache] add ExpirationGenerator for generate custom Expiration

* fix: add document and code snippet for README

Co-authored-by: dj <github@djunny.com>
2021-11-11 11:30:38 +01:00
Gusted 7b7dcf29f7
♻️ Tidy up the codebase (#1613)
* run gofmt

* add t.Helper()

* Simplify assigns

* Simplify make operation

* Remove unused field in struct

* Fix typo

* Run gofumpt ./

* Consistent spacing

* len(...) can never be negative

* Use ReplaceAll

* Simplify operation

* Remove deadcode

* Fix typo

* Tidy up `} else { if ...`

* Fix AssertEqual

* Remove t.Helper() to fix go1.14.15
2021-11-05 08:00:03 +01:00
liaohongxing a6aea1cdc5
fix cache docs error (#1612) 2021-11-03 16:49:26 +01:00
RW acc32db005
🐛 Session Id immutable (#1601)
Close #1585
2021-10-28 08:23:56 +02:00
Michael Weiss 743d8ec08c
Fix comment (#1597)
When merging #1310, the corresponding adaptation of a code comment appears to have gone forgotten.
2021-10-25 18:37:50 +02:00
Gusted 36796ee7a1
fix: remove `Test_Limiter_Cheat` test (#1595) 2021-10-25 07:04:56 +02:00
RW ff38081eb9
Fix - Etag README.md (#1584)
* Fix - Etag README.md

* Fix - Etag README.md
2021-10-19 11:36:16 +02:00
Gusted e6feb36827
feat: add sliding window as option for limiter middleware (#1580)
- Add the options to use your own middleware(should be more modular over time).
- Add the Sliding window option(see #1247)
- A little bit better polished version of #1247.
2021-10-18 09:13:53 +02:00
James Li c49940730d
chore(docs): fix example encoding issue in READMD.md of logger middleware (#1576)
Co-authored-by: James3 Li(李麒傑) <james3_li@asus.com>
2021-10-18 09:13:32 +02:00
IvanK Production 92a811c93e
Fix "Signaures" (expect "Signatures") word in middleware/encryptcookie/README.md (#1577) 2021-10-16 12:43:10 -04:00
Ali Eren Öztürk 9c37b4c1c5
Fix limit middleware skip options (#1568)
* fix limit middleware skip options

* fix limiter middleware remaining count

* used constant StatusBadRequest instead of int 400
2021-10-11 18:31:37 +02:00
Jose Garcia 587f3ae9df
Support for sub fiber's error handlers (#1560)
- Mounted fiber and its sub apps error handlers are now saved a new
  errorHandlers map in App
- New public App.ErrorHandler method that wraps the logic for which
  error handler to user on any given context
- Error handler match logic based on request path <=> prefix accuracy
- Typo fixes
- Tests
2021-10-05 14:03:20 +02:00
Fufu 8b3a06b164
Fix: file opening path and directory browsing path of filesystem (#1547)
* Fix: file opening path and directory browsing path of filesystem

* Update: utils.TrimRight instead of strings.TrimSuffix
2021-09-29 19:53:25 +02:00
Amal Shaji afa53ae1f6
support logging color for custom logging formats (#1513) 2021-09-28 10:11:44 +02:00
Ali Eren Öztürk 2aef5f8e01
limiter middleware new options: SkipFailedRequests, SkipSuccessfulRequests (#1542) 2021-09-28 10:10:29 +02:00
M. Efe Çetin c0c14671ba
Add one minute load avg for monitor. (#1530)
Fix CI/CD errors.

Fix Windows.

Fix Windows.

Fix golint error.
2021-09-22 08:29:44 +02:00
RW 2272e4a6b1
🐛 Get unexpected results from cache #1529 (#1531) 2021-09-15 14:20:43 +02:00
M. Efe Çetin 76b0d216c1
Add next support for Monitor middleware. (#1527) 2021-09-13 08:51:44 +02:00
RW 4096e72008
update logger readme 2021-08-31 12:48:56 +02:00
wernerr 426520b671 update encryptcookie documentation 2021-08-24 08:52:32 +02:00
wernerr ca3696624d correct documentation for the skip middleware 2021-08-24 08:38:15 +02:00