1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-12-18 06:06:36 +00:00
Commit graph

274 commits

Author SHA1 Message Date
Maciej Hirsz
7981e0068a
Remove a panic in normalize middleware (#1762)
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-12-01 10:22:15 +09:00
Joshua Parkin
4519db36b2
register fns for custom request-derived logging units (#1749)
Co-authored-by: Rob Ede <robjtede@icloud.com>
2020-10-29 18:38:49 +00:00
Matt Gathu
cfd5b381f1
Implement Logger middleware regex exclude pattern (#1723)
Co-authored-by: Rob Ede <robjtede@icloud.com>
2020-10-19 07:18:16 +01:00
LIU An (劉安)
60e7e52276
Add TrailingSlash::MergeOnly behavior (#1695)
Co-authored-by: Rob Ede <robjtede@icloud.com>
2020-09-25 12:50:59 +01:00
Rob Ede
7f8073233a
fix trimming to inaccessible root path (#1678) 2020-09-15 11:32:31 +01:00
Damian Lesiuk
a4546f02d2
make TrailingSlash enum accessible (#1673)
Co-authored-by: Damian Lesiuk <lesiuk@sabre.com>
2020-09-13 00:55:39 +01:00
Matt Kantor
01cbef700f
Fix a small typo in a doc comment. (#1649) 2020-08-28 22:16:41 +01:00
LJ
75d86a6beb
Configurable trailing slash behaviour for NormalizePath (#1639)
Co-authored-by: ljoonal <ljoona@ljoonal.xyz>
2020-08-19 12:21:52 +01:00
Yuki Okushi
92b5bcd13f
Check format and tweak CI config (#1619) 2020-07-22 00:28:33 +01:00
Rob Ede
a70e599ff5
re-export rt in web and add main macro (#1575) 2020-06-22 20:09:48 +01:00
Fabianstelmach
9af07d66ae
Fix NormalizePath trailing slash behavior (#1548) 2020-06-17 10:54:20 +01:00
Yuki Okushi
6dd78d9355
Run rustfmt 2020-05-21 17:56:53 +09:00
Yuki Okushi
a98e53ecb8
web: Minimize futures dependencies 2020-05-19 08:29:12 +09:00
pando85
4fc99d4a6f
Fix audit issue logging by default peer address (#1485)
* Fix audit issue logging by default peer address

By default log format include remote address that is taken from headers.
This is very easy to replace making log untrusted.

Changing default log format value `%a` to peer address we are getting
this trusted data always. Also, remote address option is maintianed and
relegated to `%{r}a` value.

Related  kanidm/kanidm#191.

* Rename peer/remote to remote_addr/realip_remote_addr

Change names to avoid naming confusions. I choose this accord to Nginx
variables and
[ngx_http_realip_module](https://nginx.org/en/docs/http/ngx_http_realip_module.html).

Add more specific documentation about security concerns of using Real IP
in logger.

* Rename security advertise header in doc

* Add fix audit issue logging by default peer adress to changelog

Co-authored-by: Rob Ede <robjtede@icloud.com>
2020-05-15 09:07:27 +09:00
Mikail Bagishov
d5ceae2074
Replace deprecated now with now_utc (#1481)
* Replace deprecated now with now_utc

* Update doctest
2020-05-02 10:14:50 +01:00
Rob Ede
5b0f7fff69
fix spelling errors in doc comments 2020-04-21 04:09:35 +01:00
Stephen Eckels
aaff68bf05
Change NormalizePath to append trailing slash (#1433)
* Change NormalizePath to append trailing slash

* add tests

* Update CHANGES.md

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-04-05 03:26:40 +09:00
Maksym Vorobiov
77058ef779 adopt MessageBody Pin changes to actix-web root 2020-02-27 09:42:32 +09:00
Maksym Vorobiov
09a391a3ca rollback changes to actix-web, awc and test-server for now 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
9d04b250f9 This is a squashed commit:
- Convert MessageBody to accept Pin in poll_next

- add CHANGES and increase versions aligned to semver

- update crates to accomodate MessageBody Pin change

- fix tests and dependencies
2020-02-27 09:37:05 +09:00
kevinpoitra
e634e64847 Upgrade time to 0.2.5 (#1254)
* Use `OffsetDateTime` instead of `PrimitiveDateTime`

* Parse time strings with `PrimitiveDateTime::parse` instead of `OffsetDateTime::parse`

* Remove unused `time` dependency from actix-multipart

* Fix a few errors with time related tests from the `time` upgrade

* Implement logic to convert a RFC 850 two-digit year into a full length year, and organize time parsing related functions

* Upgrade `time` to 0.2.2

* Correctly parse C's asctime time format using time 0.2's new format patterns

* Update CHANGES.md

* Use `time` without any of its deprecated functions

* Enforce a UTC time offset when converting an `OffsetDateTime` into a Header value

* Use the more readable version of `Duration::seconds(0)`, `Duration::zero()`

* Remove unneeded conversion of time::Duration to std::time::Duration

* Use `OffsetDateTime::as_seconds_f64` instead of manually calculating the amount of seconds from nanoseconds

* Replace a few additional instances of `Duration::seconds(0)` with `Duration::zero()`

* Truncate any nanoseconds from a supplied `Duration` within `Cookie::set_max_age` to ensure two Cookies with the same amount whole seconds equate to one another

* Fix the actix-http:🍪:do_not_panic_on_large_max_ages test

* Convert `Cookie::max_age` and `Cookie::expires` examples to `time` 0.2

Mainly minor  changes. Type inference can be used alongside the new
`time::parse` method, such that the type doesn't need to be specified.
This will be useful if a refactoring takes place that changes the type.
There are also new macros, which are used where possible.

One change that is not immediately obvious, in `HttpDate`, there was an
unnecessary conditional. As the time crate allows for negative durations
(and can perform arithmetic with such), the if/else can be removed
entirely.

Time v0.2.3 also has some bug fixes, which is why I am not using a more
general v0.2 in Cargo.toml.

v0.2.3 has been yanked, as it was backwards imcompatible. This version
reverts the breaking change, while still supporting rustc back to
1.34.0.

* Add missing `time::offset` macro import

* Fix type confusion when using `time::parse` followed by `using_offset`

* Update `time` to 0.2.5

* Update CHANGES.md

Co-authored-by: Jacob Pratt <the.z.cuber@gmail.com>
2020-01-28 20:44:22 +09:00
Nikolay Kim
f86ce0390e allow to specify multi pattern for resources 2019-12-25 20:14:44 +04:00
Nikolay Kim
1732ae8c79 fix Bodyencoding trait usage 2019-12-18 09:30:14 +06:00
Nikolay Kim
01613f334b Move BodyEncoding to dev module #1220 2019-12-16 17:22:26 +06:00
Nikolay Kim
cb705317b8 compile with default-features off 2019-12-15 13:28:54 +06:00
Nikolay Kim
4a8a9ef405 update tests and clippy warnings 2019-12-08 12:31:16 +06:00
Nikolay Kim
6c9f9fff73 clippy warnings 2019-12-08 00:46:51 +06:00
Nikolay Kim
205a964d8f upgrade to tokio 0.2 2019-12-05 23:35:43 +06:00
Nikolay Kim
b45c6cd66b replace hashbrown with std hashmap 2019-12-04 18:33:43 +06:00
Nikolay Kim
4dc31aac93 use actix_rt::test for test setup 2019-11-26 11:25:50 +06:00
Nikolay Kim
55698f2524 migrade rest of middlewares 2019-11-21 16:02:17 +06:00
Nikolay Kim
3127dd4db6 migrate actix-web to std::future 2019-11-21 16:02:17 +06:00
Nikolay Kim
60b7aebd0a fmt & clippy 2019-09-12 21:52:46 +06:00
κeen
8a9fcddb3c Condition middleware (#1075)
* add condition middleware

* write tests

* update changes

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>

* Update src/middleware/condition.rs

Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
2019-09-09 12:26:38 +06:00
Yuki Okushi
23d768a77b
Add explicit dyns (#1041)
* Add explicit `dyn`s

* Remove unnecessary lines
2019-08-17 02:45:44 +09:00
Rotem Yaari
d03296237e Log error results in Logger middleware (closes #938) (#984)
* Log error results in Logger middleware (closes #938)

* Log internal server errors with an ERROR log level

* Logger middleware: don't log 500 internal server errors, as Actix now logs them always

* Changelog
2019-07-18 14:31:18 +06:00
Nikolay Kim
2a2d7f5768 nightly clippy warnings 2019-07-17 15:53:51 +06:00
Nikolay Kim
4092c7f326 clippy warnings 2019-07-17 15:08:30 +06:00
Ravi Shankar
32718b7e31 Expose factory traits and some clippy fixes (#983) 2019-07-17 12:58:42 +06:00
Nikolay Kim
7b1dcaffda cleanup deprecation warning for Box<dyn> 2019-07-17 11:44:39 +06:00
Nikolay Kim
546a8a58db remove cors and identity middlewares 2019-06-17 12:33:00 +06:00
Nikolay Kim
d7ec241fd0 re-export identity and cors middleware 2019-06-15 21:47:06 +06:00
Nikolay Kim
cd323f2ff1 Move cors middleware to actix-cors crate 2019-06-15 09:34:16 +06:00
Nikolay Kim
ff724e239d move identity service separate crate 2019-06-12 15:52:48 +06:00
Bob
ee769832cf get_identity from HttpMessage (#908)
* get_identity from HttpMessage

* more doc for RequestIdentity
2019-06-12 09:26:46 +06:00
Mohab Usama
f1764bba43 Fix Logger time format (use rfc3339) (#867)
* Fix Logger time format (use rfc3339)

* Update change log
2019-05-31 12:09:21 +04:00
Nikolay Kim
df08baf67f update actix-net dependencies 2019-05-12 08:34:51 -07:00
Nikolay Kim
fa78da8156 unify route and app data, it allows to provide global extractor config #775 2019-05-04 19:43:49 -07:00
James
7ef4f5ac0b Make request headers optional in CORS preflight (#816) 2019-05-04 08:41:37 -07:00
Nikolay Kim
6b34909537 Fix NormalizePath middleware impl #806 2019-05-01 12:40:56 -07:00
Douman
87284f0951 Add doctest to verify NormalizePath middleware (#809) 2019-05-01 11:47:51 -07:00
Nikolay Kim
70a4c36496 use Error explicitly 2019-04-25 11:14:32 -07:00
Nikolay Kim
cba78e06ae update changes 2019-04-24 15:42:34 -07:00
Nikolay Kim
3b3dbb4f40 add raw services support 2019-04-24 15:29:15 -07:00
Maciej Piechotka
60fa0d5427 Store visit and login timestamp in the identity cookie (#502)
This allows to verify time of login or last visit and therfore limiting
the danger of leaked cookies.
2019-04-24 12:49:56 -07:00
Nikolay Kim
891f857547 update changes 2019-04-20 11:18:04 -07:00
Nikolay Kim
7292d0b696 drop chrono and use i64 for max age 2019-04-19 17:23:17 -07:00
Kilerd Chan
791f22bbc8 replate time::Duration with chrono::Duration and add max_age_time method (#789)
* feat: replate time::Duration with chrono::Duration

* feat: rename max_age method which accepts `Duration` to max_age_time and add new max_age method accepting isize of seconds

* feat: replace `time:Duration` with `chrono:Duration` in repo `actix-http`
2019-04-19 13:54:44 -07:00
Douman
1e7f97a111 Add Normalization middleware for in place (#783) 2019-04-19 13:53:49 -07:00
Nikolay Kim
420d3064c5 Add .peer_addr() #744 2019-04-16 10:11:38 -07:00
Nikolay Kim
7a28b32f6d Rename test::call_success to test::call_service 2019-04-15 07:44:07 -07:00
Nikolay Kim
ab4fda6084 update tests 2019-04-14 20:20:33 -07:00
Nikolay Kim
ee33f52736 make extractor config type explicit 2019-04-13 16:35:25 -07:00
Nikolay Kim
4f30fa9d46 Remove generic type for request payload, always use default 2019-04-13 14:50:54 -07:00
Nikolay Kim
9bb40c249f add h1::SendResponse future; renamed to MessageBody::size 2019-04-10 12:24:17 -07:00
Nikolay Kim
75b213a6f0 refactor FromRequest trait 2019-04-07 14:43:07 -07:00
Nikolay Kim
748289f0ff use custom headers map; more optimizations 2019-04-06 15:02:02 -07:00
Nikolay Kim
bc834f6a03 remove some static contraints 2019-04-04 10:59:34 -07:00
Nikolay Kim
1e2bd68e83 Render error and return as response body 2019-04-03 19:55:19 -07:00
Haze
7d6085ddbd Add %U (URLPath) for logger (#752)
* Add %R (Route) for logger

* Requested Updates (Route => URLPath, %R => %U)
2019-04-03 17:41:42 -07:00
Nikolay Kim
bca31eb7ad remove Deref 2019-04-02 13:35:01 -07:00
Nikolay Kim
34695f4bce rename test methods; update tests 2019-03-31 20:43:00 -07:00
Nikolay Kim
d846328f36 fork cookie crate 2019-03-29 21:13:39 -07:00
Douman
00526f60dc Impl BodyEncoding for Response (#740) 2019-03-29 16:29:11 -07:00
Nikolay Kim
5795850bbb decompress payload in cpu threadpool 2019-03-28 11:08:24 -07:00
Nikolay Kim
e254fe4f9c allow to override response body encoding 2019-03-27 11:29:31 -07:00
Nikolay Kim
3edc515bac refactor RequestHead/ResponseHead 2019-03-27 10:38:01 -07:00
Nikolay Kim
faa3ea8e5b rename BodyLength to BodySize 2019-03-27 09:24:55 -07:00
Nikolay Kim
2629699b62 rename flate2-c feature to flate2-zlib 2019-03-26 18:46:06 -07:00
Nikolay Kim
1904b01fc0 add content-encoding decompression 2019-03-26 15:14:32 -07:00
Nikolay Kim
86a21c956c rename .middleware to .wrap 2019-03-25 13:02:10 -07:00
Nikolay Kim
c1e8d8363c fix errhandlers doc string 2019-03-24 11:49:26 -07:00
Nikolay Kim
913155d34c update doc strings 2019-03-24 11:47:23 -07:00
Nikolay Kim
ede32c8b3f export errhandlers module 2019-03-24 11:32:30 -07:00
Nikolay Kim
307b2e5b0e fix compress features 2019-03-24 11:29:35 -07:00
Nikolay Kim
bc01d39d4d add error response test for cors 2019-03-23 22:03:40 -07:00
Nikolay Kim
5b06f2bee5 port cors middleware 2019-03-23 21:29:16 -07:00
Nikolay Kim
60050307bd session feature is renamed to cookies 2019-03-23 11:18:31 -07:00
Nikolay Kim
1e069bb843 Merge branch '1.0' 2019-03-23 10:16:32 -07:00
David McGuire
cc7f6b5eef Fix preflight CORS header compliance; refactor previous patch. (#717) 2019-03-11 07:26:54 +03:00
Nikolay Kim
b8829bbf22 add identity middleware tests 2019-03-10 17:16:32 -07:00
Nikolay Kim
4d96abb639 use actix_web::Error for middleware errors 2019-03-10 16:35:38 -07:00
Nikolay Kim
16c42be4a2 simplify extractor configuration, config is optional now 2019-03-10 10:53:56 -07:00
Nikolay Kim
3a2035a121 fix doc tests 2019-03-09 21:15:26 -08:00
Nikolay Kim
be9031c55e update doc api 2019-03-09 20:48:05 -08:00
Nikolay Kim
12f0c78091 port identity middleware 2019-03-09 20:40:09 -08:00
Nikolay Kim
fde55ffa14 revert generic request parameter for service; support ServerConfig as new factory config 2019-03-09 09:49:11 -08:00
Nikolay Kim
60c048c8cd fix nested resources 2019-03-06 19:27:18 -08:00
Nikolay Kim
244fff9e0a added Logger middleware 2019-03-06 19:19:27 -08:00
Nikolay Kim
fe22e83144 refactor service registration process; unify services and resources 2019-03-06 15:47:15 -08:00