365 Commits

Author SHA1 Message Date
nickajacks1
408fa20a91
🔥 v3: update Ctx.Format to match Express's res.format (#2766)
* 🔥 v3: update Ctx.Format to match Express's res.format

While the existing Ctx.Format provides a concise convenience method for
basic content negotiation on simple structures, res.format allows
developers to set their own custom handlers for each content type.

The existing Ctx.Format is renamed to Ctx.AutoFormat.

* doc: add docs for Ctx.Format

* refactor: update based on code review feedback

- Rename Fmt to ResFmt
- Add comments in several places
- Return errors instead of panicking in Format
- Add 'Accept' to the Vary header in Format to match res.format

* chore: improve docs and tests for AutoFormat and Format
2024-01-04 09:50:36 +01:00
Jason McNeil
2954e3bbae
♻️ v3: fix!: ContextKey collisions (#2781)
* fix: ContextKey collisions

* fix(logger): lint error

* docs(csrf): fix potential range error in example
2024-01-04 09:44:45 +01:00
RW
28be17f929
Revert "🐛 requestid.Config.ContextKey is interface{} (#2369)" (#2742)
This reverts commit d7b36cde
2023-11-27 14:35:49 +01:00
Jason McNeil
2374cad3cd
📄 docs: improve csrf docs (#2726)
* docs: improve csrf docs

- fix issues with `X-Csrf-Token` capitalization inconsistency.
- reduce redundancy and repetition.
- improve grammar.

* docs: update middleware description

* docs: within vs in

* docs: deleting tokens

* docs: MUST

* docs: add colon

* docs: all modern browsers

* docs: patterns

* docs: improve phrasing of pattern options
2023-11-16 12:34:31 +01:00
René Werner
3ab3d151c7 refresh docs for
🔥 Add support for application/problem+json #2704
2023-11-15 09:23:08 +01:00
Reid Hurlburt
9f082af045
🔥 Add support for application/problem+json (#2704)
🔥 Add support for custom JSON content headers
2023-11-13 15:18:05 +01:00
Muhammed Efe Cetin
6ea4d81331
Merge branch 'master' into v3-beta 2023-11-07 20:22:31 +03:00
nickajacks1
cbcb1aec0a
feat: add support for parameters in content negotiation (#2678)
*  feat: add support for parameters in content negotiation

Attempts to approach the level of support offered by express,
but behavior may differ in unusual corner cases.
Some key behaviors from Express that are implemented:
 - If an offer does not have every parameter listed in the given Accept,
   it is rejected.
 - Parameters do not affect specificity.
 - In a given specificity, more parameters gives greater precedence
 - Parameters are unordered
 - Matching is case-insensitive
 - Surrounding quotes for parameter values are stripped
 - If an Accept type specifies a parameter more than once, the last
   value provided is taken.
 - Parameters after q are not processed.

https://www.rfc-editor.org/rfc/rfc9110#name-parameters

* doc: properly attribute reader.go for validHeaderFieldByte

* fix: remove underscores from fuzz test name

* test(forEachParameter): improve coverage

* doc: add comment clarifying RFC 9110 non-compliance for corner case
2023-11-07 08:25:23 +01:00
Moritz
fe395b9850
📚 Doc: Add additional information as to why GetReqHeaders returns a map where the values are slices of strings (#2698)
* Update ctx.md

Added additional information to why GetReqHeaders returns a map where the values are slices of strings (instead of a single string as one might expect)

* Update ctx.md

added the same explanation to GetRespHeaders too
2023-11-01 21:42:57 +01:00
RW
4099ef87bb
Update routing.md
fix invalid regex constraint
2023-11-01 08:22:10 +01:00
Jason McNeil
4bf3695125
📄 docs: enhance csrf.md (#2692)
* docs: enhance csrf.md

* docs: simplify language

* docs: update csrf.md

* docs: delete token/session reminders

* docs: and ! or
2023-10-27 13:45:30 +02:00
René Werner
9347a86cdb 📗 Add example for response handling with fiber client 2023-10-24 08:35:50 +02:00
RW
6f0d34d39e
Update csrf.md 2023-10-16 14:31:28 +02:00
Jason McNeil
8c3916dbf4
Merge pull request from GHSA-94w9-97p3-p368
* feat: improved csrf with session support

* fix: double submit cookie

* feat: add warning cookie extractor without session

* feat: add warning CsrfFromCookie SameSite

* fix: use byes.Equal instead

* fix: Overriden CookieName KeyLookup cookie:<name>

* feat: Create helpers.go

* feat: use compareTokens (constant time compare)

* feat: validate cookie to prevent token injection

* refactor: clean up csrf.go

* docs: update comment about Double Submit Cookie

* docs: update docs for CSRF changes

* feat: add DeleteToken

* refactor: no else

* test: add more tests

* refactor: re-order tests

* docs: update safe methods RCF add note

* test: add CSRF_Cookie_Injection_Exploit

* feat: add SingleUseToken config

* test: check for new token

* docs: use warning

* fix: always register type Token

* feat: use UUIDv4

* test: swap in UUIDv4 here too

* fix: raw token injection

* fix: merege error

* feat: Sentinel errors

* chore: rename test

* fix: url parse

* test: add path to referer

* test: add expiration tests

* docs: add cookie prefix note

* docs: fix typo

* docs: add warning for refer checks

* test: add referer edge cases

And call ctx.Request.Reset() and
ctx.Response.Reset() before re-using ctx.
2023-10-16 09:06:30 +02:00
Javier Scappini
d974cf3c99
Fix typo in requestid.md
Minor typo fix in requestid.md.
2023-10-13 11:37:06 +00:00
joey1123455
e70b2e28d6
Cookie parser (#2656)
* prep for branching

* feature: added a cookie parser and tests appropriate tests

*  feature: added a cookie parser and appropriate tests

* made correction to docs

* linted using gofumpt

* ctx_test linted, cookieParser schema added

* fix lint errors (Cookie parser #2656)

* removed extra lines, tested return values

---------

Co-authored-by: René Werner <rene.werner@verivox.com>
2023-10-12 10:44:15 +02:00
Jason McNeil
b50d91d58e
Merge pull request from GHSA-94w9-97p3-p368
* feat: improved csrf with session support

* fix: double submit cookie

* feat: add warning cookie extractor without session

* feat: add warning CsrfFromCookie SameSite

* fix: use byes.Equal instead

* fix: Overriden CookieName KeyLookup cookie:<name>

* feat: Create helpers.go

* feat: use compareTokens (constant time compare)

* feat: validate cookie to prevent token injection

* refactor: clean up csrf.go

* docs: update comment about Double Submit Cookie

* docs: update docs for CSRF changes

* feat: add DeleteToken

* refactor: no else

* test: add more tests

* refactor: re-order tests

* docs: update safe methods RCF add note

* test: add CSRF_Cookie_Injection_Exploit

* feat: add SingleUseToken config

* test: check for new token

* docs: use warning

* fix: always register type Token

* feat: use UUIDv4

* test: swap in UUIDv4 here too
2023-10-11 14:41:42 +02:00
RW
ada2d4affd
Update hooks.md 2023-10-09 08:58:49 +02:00
René Werner
59409f3841 improve sendFile documentation 2023-10-06 11:43:10 +02:00
René Werner
5171f6b505 improve compress middleware documentation 2023-10-05 09:00:11 +02:00
KaptinLin
d00f0b8348
feat: add Reset method to Session struct in session middleware (#2654) 2023-10-02 15:19:35 +02:00
KaptinLin
d86c257c89
feat: add Delete method to Store struct in session middleware (#2655)
*  feat: add Delete method to Store struct in session middleware

* ♻ refactor: enhance Delete method and test cases in session middleware
2023-10-02 15:19:18 +02:00
M. Efe Çetin
a9447a5b49
ctx: change signatures of GetReqHeaders and GetRespHeaders (#2650)
* ctx: change signatures of GetReqHeaders and GetRespHeaders

* fix middlewares
2023-09-28 08:31:31 +02:00
Jimmy Li
c0988de91e
📝 middleware: cors: update docs to better explain AllowOriginsFunc (#2652) 2023-09-28 08:28:35 +02:00
M. Efe Çetin
e6d6fbe5a8
middleware: cors: allow disabling caching in preflight requests (#2649) 2023-09-27 15:06:24 +02:00
RW
e547bea49e
Update cache.md 2023-09-20 09:14:58 +02:00
)`(-@_.+_^*__*^
328411a06b
Replaced double quotes with backticks in all route parameter strings (#2591)
* 11-aryan

* Removed the backticks where no special characters is used

* added backticks to path parameters where special characters are escaped

* Replaced double quotes with backticks in all route parameter strings #2591

* Replaced double quotes with backticks in all route parameter strings #2591

---------

Co-authored-by: René Werner <rene@gofiber.io>
2023-09-04 05:40:44 +02:00
René Werner
5745dfe1ac add docs for dynamic routing 2023-08-27 14:29:17 +02:00
René Werner
57aef091c4 add docs for dynamic routing 2023-08-27 14:27:40 +02:00
Jian Lim
35797e6639
📝 Docs: update io/ioutil package to io package (#2589)
Deprecation of io/ioutil
2023-08-22 08:57:00 +02:00
M. Efe Çetin
1dea615ddf
🔥 add config to enable splitting by comma in parsers (#2560)
* 🔥 add config to enable splitting by comma in parsers

🔥 add config to enable splitting by comma in parsers

* optimize if statements, remove escape char support

optimize if statements, remove escape char support

* update
2023-08-21 09:44:02 +02:00
Jacob
892b23bd46
Add custom data property to favicon middleware config (#2579)
* Add custom data property to favicon middleware

* Update favicon middleware docs

* Fix formatting
2023-08-17 15:04:53 +02:00
0bl
a50df4fcdd
🩹 Fix: rename WithTlsConfig method to WithTLSConfig (#2570)
* 🩹 Fix: rename WithTlsConfig method to WithTLSConfig

* 🎨 Style: remove stylecheck and revive lint
2023-08-11 07:57:49 +02:00
João Victor Oliveira Couto
f29f39b1b3
fix: Decompress request body when multi Content-Encoding sent on request headers (#2555)
* 🔧 feat: Decode body in order when sent a list on content-encoding

* 🚀 perf: Change `getSplicedStrList` to have 0 allocations

* 🍵 test: Add tests for the new features

* 🍵 test: Ensure session test will not raise an error unexpectedly

* 🐗 feat: Replace strings.TrimLeft by utils.TrimLeft

Add docs to functions to inform correctly what the change is

* 🌷 refactor: Apply linter rules

* 🍵 test: Add test cases to the new body method change

* 🔧 feat: Remove return problems to be able to reach original body

* 🌷 refactor: Split Body method into two to make it more maintainable

Also, with the previous fix to problems detected by tests, it becomes really hard to make the linter happy, so this change also helps in it

* 🚀 perf: Came back with Header.VisitAll, to improve speed

* 📃 docs: Update Context docs
2023-08-06 17:23:37 +02:00
Muhammed Efe Cetin
75bb02b87e
Merge remote-tracking branch 'origin/master' into v3-beta 2023-08-05 22:02:01 +03:00
M. Efe Çetin
e91b02b345
📝 docs: fix wrong JSON docs (#2554) 2023-07-26 13:27:45 +02:00
Renan Bastos
3e5743bcac
doc: Improve *fiber.Client section (#2553)
* wip

* doc: Improve *fiber.Client section

Enhanced the documentation for the *fiber.Client section, providing
a clear and concise example to help users better understand its usage.

* chore: refactor message about example
2023-07-25 20:15:23 +02:00
René Werner
443804e95d improved the config section of the middleware readme´s 2023-07-24 17:03:11 +02:00
RW
51ea636b60
improved the config section of the middleware readme´s (#2552) 2023-07-24 16:46:50 +02:00
Lev Saminskij
5d74725a69
📝 added documentation about ctx Fresh (#2549)
added documentation about ctx Fresh
2023-07-24 15:36:18 +02:00
Precious Luke
2c8c4a6545
Update intro.md (#2550)
Since we are using port 3000, it ideal to maintain that throughout in order not to confuse beginners
2023-07-22 18:42:48 +03:00
RW
c0116f445f
Update ctx.md
Add hint for references to GetReqHeaders
2023-07-20 16:47:39 +02:00
RW
3b08646abf
Update ctx.md
Add additional documentation for GetRespHeaders
2023-07-20 16:43:49 +02:00
Štefan Baebler
f1ff0f45c8
📚 Doc: Fixed link to slim template engine (#2547)
docs: fixed link to slim template engine
2023-07-18 11:57:06 +02:00
RW
f6446ab0b9
Update log.md 2023-07-16 16:18:23 +02:00
f1rstmehul
08099b0635
📚 Docs: Fix link (#2542)
fix link
2023-07-15 20:20:29 +02:00
RW
a9933f50c5
Update intro.md 2023-07-09 18:52:51 +02:00
René Werner
032bde9452 use new template docs in fiber docs 2023-07-08 21:33:15 +02:00
z3ntl3
80fc222646
- fixed validation-guide (#2517)
* - fixed validation-guide

* 06/23/2023 14:39:08 - small update

* 06/23/2023 14:51:31

* 06/23/2023 14:53:47

* ()

* ()

* 06/25/2023 18:07:46 fix naming

* 06/26/2023 09:31:57

* 06/26/2023 09:35:39 - fix indentation

* 06/26/2023 09:37:48 - formatted with go fmt

* 06/27/2023 19:24:42 - update to v10

* 06/27/2023 19:27:17 - update validator to v10

* 06/27/2023 23:38:38 - fix var name

* 06/27/2023 23:40:47 - fix var name
2023-06-28 00:49:32 +03:00
Iliya
5c1e8a9cff
📚 Docs: fix bad documentation on queries function (#2522) 2023-06-27 17:20:50 +02:00