mirror of
https://github.com/fafhrd91/actix-web
synced 2024-11-27 17:52:56 +01:00
files: Don't use canonical path when serving file (#2156)
This commit is contained in:
parent
981c54432c
commit
ce50cc9523
@ -1,6 +1,9 @@
|
|||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
* For symbolic links, `Content-Disposition` header no longer shows the filename of the original file. [#2156]
|
||||||
|
|
||||||
|
[#2156]: https://github.com/actix/actix-web/pull/2156
|
||||||
|
|
||||||
|
|
||||||
## 0.6.0-beta.4 - 2021-04-02
|
## 0.6.0-beta.4 - 2021-04-02
|
||||||
|
@ -754,4 +754,19 @@ mod tests {
|
|||||||
let res = test::call_service(&srv, req).await;
|
let res = test::call_service(&srv, req).await;
|
||||||
assert_eq!(res.status(), StatusCode::OK);
|
assert_eq!(res.status(), StatusCode::OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn test_symlinks() {
|
||||||
|
let srv = test::init_service(App::new().service(Files::new("test", "."))).await;
|
||||||
|
|
||||||
|
let req = TestRequest::get()
|
||||||
|
.uri("/test/tests/symlink-test.png")
|
||||||
|
.to_request();
|
||||||
|
let res = test::call_service(&srv, req).await;
|
||||||
|
assert_eq!(res.status(), StatusCode::OK);
|
||||||
|
assert_eq!(
|
||||||
|
res.headers().get(header::CONTENT_DISPOSITION).unwrap(),
|
||||||
|
"inline; filename=\"symlink-test.png\""
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,10 +83,10 @@ impl Service<ServiceRequest> for FilesService {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// full file path
|
// full file path
|
||||||
let path = match self.directory.join(&real_path).canonicalize() {
|
let path = self.directory.join(&real_path);
|
||||||
Ok(path) => path,
|
if let Err(err) = path.canonicalize() {
|
||||||
Err(err) => return Box::pin(self.handle_err(err, req)),
|
return Box::pin(self.handle_err(err, req));
|
||||||
};
|
}
|
||||||
|
|
||||||
if path.is_dir() {
|
if path.is_dir() {
|
||||||
if let Some(ref redir_index) = self.index {
|
if let Some(ref redir_index) = self.index {
|
||||||
|
1
actix-files/tests/symlink-test.png
Symbolic link
1
actix-files/tests/symlink-test.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
test.png
|
Loading…
Reference in New Issue
Block a user