安正超
d60deba9b6
fix(security): add IAM authorization to FTP read/metadata/cwd handlers (GHSA-3g29-xff2-92vp) ( #3347 )
...
fix(security): add IAM authorization to FTP read/metadata/cwd handlers
The FTP frontend's get() (RETR), metadata() (SIZE/MDTM), and cwd()
(CWD) handlers dispatched directly to the storage backend without
calling authorize_operation(). This allowed any authenticated FTP user,
including those with explicit Deny policies, to read arbitrary objects
and probe bucket existence regardless of IAM policy.
Add authorize_operation() calls matching the pattern used by the
write-path handlers (put, del, list, rmd) and the WebDAV driver:
- get(): S3Action::GetObject
- metadata() for files: S3Action::HeadObject
- metadata() for directories: S3Action::HeadBucket
- cwd(): S3Action::HeadBucket
Fixes: GHSA-3g29-xff2-92vp
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-11 05:48:53 +00:00
安正超
97dd825468
fix(ecstore): optimize ObjectInfo clone and fix critical TODOs ( #3149 )
...
* fix(ecstore): optimize ObjectInfo clone and fix critical TODOs
## ObjectInfo hot-path clone optimization (issue #653 item 2)
- Wrap user_defined (HashMap), user_tags (String), parts (Vec) in Arc
- Clone cost reduced from ~20 heap allocations to O(1) ref count bump
- Updated 11 downstream access sites with explicit deref where needed
## Critical TODO/FIXME fixes (issue #653 item 7)
- rpc/peer_s3_client.rs: descriptive error message for empty peer response
- set_disk/write.rs: concurrent rollback deletes via tokio::spawn + join_all
- store_list_objects.rs: resolved FIXME with explanation + 4 regression tests
- store/bucket.rs: namespace write locks for make_bucket and delete_bucket
Skipped TODOs (too risky without broader context):
- multipart.rs:30 nslock — causes lock timeout in existing tests
- bucket.rs:88 cached list_bucket — needs cache invalidation strategy
- bucket.rs:149 replication delete — needs replication subsystem integration
1134 tests pass (1 flaky under parallel execution, passes individually).
* fix: address PR #3149 review comments
- Preserve NamespaceLockQuorumUnavailable variant in bucket create/delete
- Fix cancellation test to actually test cancellation (keep senders open)
- Update ObjectInfo consumers in app/ for Arc-backed fields
- Update bucket_usecase.rs user_tags to Arc<String>
* fix: update ObjectInfo Arc consumers
* fix: address ecstore merge review comments
* fix: cancel blocked merge output sends
* fix(ecstore): satisfy ObjectInfo clone clippy
2026-06-01 00:44:58 +00:00
houseme
d74e6eb042
refactor(tls): centralize runtime foundation ( #3065 )
...
* refactor(targets): move notify net helpers from utils
* refactor(tls): centralize runtime foundation
* refactor(targets): move notify net helpers from utils
* refactor(tls): centralize runtime foundation
* feat(tls-runtime): add TLS debug state and admin handler
* refactor(tls-runtime): unify TLS debug consumer status view
* fix(tls): address PR3065 review feedback
* refactor(tls): align debug status payload types
* refactor(targets): harden TLS hot reload paths
* fix(targets): resolve review-4348251652 findings
* fix(targets): finalize tls runtime review follow-ups
* fix(targets): harden tls reload and review follow-ups
* fix(targets): align tls reload handling across targets
* fix(targets): finalize tls reload state and metrics updates
* chore(deps): trim unused TLS deps
* style(targets): normalize TLS reload formatting
* refactor(targets): introduce tls runtime adapter path
* chore: update workspace manifests for tls refactor
* fix(tls): stabilize material reload and audit workflow
* fix(targets): refresh tls fingerprint flow across sinks
* fix(tls): align runtime coordinator and http reader updates
* fix(sftp): simplify protocol error mapping
* fix(tls): harmonize material loading behavior
* fix(server): finalize tls material wiring in startup flow
* fix(protos): tighten tls generation cache and deps
2026-05-24 06:41:15 +00:00
Henry Guo
bca8b08c2b
fix: handle Windows paths in pre-commit tests ( #2974 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-15 14:04:51 +00:00
安正超
fd3fb77ed5
fix(sftp): avoid metadata on multipart copy ( #2935 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-13 07:44:09 +00:00
Henry Guo
fe5690ca70
fix(sftp): preserve open attrs metadata ( #2929 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-12 13:34:52 +00:00
安正超
25cf164461
test(protocols): cover SFTP host key reload failure ( #2928 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-12 10:40:23 +00:00
安正超
8169bd63e9
test(protocols): cover TLS reload fingerprint ordering ( #2927 )
2026-05-12 02:50:49 +00:00
houseme
6185d38911
fix(protocols): add hot reload for WebDAV FTPS and SFTP ( #2922 )
...
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-11 16:25:20 +00:00
Henry Guo
1c94f7a066
fix(sftp): classify backend errors by type ( #2909 )
2026-05-11 02:56:08 +00:00
houseme
53ec1b95d8
keep sftp e2e tests buildable ( #2897 )
2026-05-10 11:52:15 +00:00
安正超
65c62ab2ea
test(sftp): cover init session activity stamp ( #2898 )
2026-05-10 09:57:04 +00:00
安正超
c419cff348
test(sftp): cover init negotiation and platform gating ( #2896 )
2026-05-10 05:59:10 +00:00
escapecode
96b293bf8a
feat(sftp): add SFTPv3 protocol support ( #2875 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-10 03:48:42 +00:00
houseme
8892cbbdd7
feat: enhance WebDAV support with features and directory operations ( #2856 ) ( #2892 )
...
Signed-off-by: giter <giter@users.noreply.github.com >
Signed-off-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: giter <giter@users.noreply.github.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Lijiajie <lijiajie@ffcode.net >
Co-authored-by: cxymds <Cxymds@qq.com >
Co-authored-by: loverustfs <hello@rustfs.com >
Co-authored-by: 唐小鸭 <tangtang1251@qq.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
2026-05-09 16:45:09 +00:00
安正超
61d2e9fbc3
test(webdav): cover decoded path parsing ( #2729 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-29 07:30:40 +00:00
giter
90ce72122b
fix(webdav): decode URL-encoded filenames in path parsing ( #2722 )
...
Signed-off-by: giter <giter@users.noreply.github.com >
2026-04-28 14:06:05 +00:00
houseme
f77ccd5b23
chore: move mcp crate to standalone repository ( #2578 )
2026-04-17 12:42:26 +00:00
安正超
68d3dba9fc
fix: revert standalone #2351 artifacts (phase 5) ( #2535 )
2026-04-14 22:35:05 +08:00
安正超
2a3d127a86
revert: restore PutObjReader and remove PUT zero-copy chunk path ( #2351 phase 2) ( #2532 )
2026-04-14 16:35:03 +08:00
houseme
979626c370
refactor(utils): decouple config deps and move sys helpers ( #2520 )
...
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
2026-04-13 21:05:03 +08:00
houseme
32bf8f5bf3
feat(storage): add direct chunk GET fast path ( #2351 )
...
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: cxymds <Cxymds@qq.com >
2026-04-07 08:33:46 +08:00
weisd
5d302febb7
fix(rio): preserve reader capabilities and crypto safety ( #2363 )
2026-04-03 13:57:42 +08:00
houseme
19b8389dc4
fix(disk): Fix Usage Report Capacity Calculation ( #2274 )
...
Co-authored-by: cxymds <Cxymds@qq.com >
Co-authored-by: loverustfs <hello@rustfs.com >
Co-authored-by: heihutu <heihutu@gmail.com >
2026-03-24 23:47:30 +08:00
heihutu
3c28f0a0ba
feat(metrics): migrate system monitoring from rustfs-obs to rustfs-metrics ( #2242 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-03-20 18:52:33 +08:00
yxrxy
d3cff7d033
feat(webdav): add WebDAV protocol gateway ( #2158 )
...
Signed-off-by: yxrxy <1532529704@qq.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: 马登山 <Cxymds@qq.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-03-14 23:06:53 +08:00
安正超
9908a44c38
fix(protocols): return errors instead of panics for sync signatures ( #2120 )
...
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
2026-03-11 11:22:20 +08:00
houseme
8e4a1ef917
refactor(protocols): replace tar with astral-tokio-tar for async processing ( #2099 )
...
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
2026-03-08 15:18:15 +08:00
Senol Colak
b07383760f
Add OpenStack Swift API Support ( #2066 )
...
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: Copilot <noreply@github.com >
2026-03-08 01:11:35 +08:00
houseme
d17d2083d4
feat(targets): enhance webhook TLS support with custom CA and skip-verify ( #1994 )
...
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
Co-authored-by: heihutu <heihutu@gmail.com >
2026-02-27 21:24:49 +08:00
houseme
024a3107d8
build(deps): bump the dependencies group with 4 updates ( #1955 )
2026-02-25 19:21:20 +08:00
yxrxy
deb1dbedbb
fix(ftps): Fix basename extraction and implement recursive delete ( #1920 )
...
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
2026-02-24 20:49:57 +08:00
安正超
4211652991
refactor(app): add application layer module entry ( #1907 )
2026-02-22 22:15:37 +08:00
dependabot[bot]
ff8c1c782a
build(deps): bump libunftp from 0.21.0 to 0.22.0 in the dependencies group across 1 directory ( #1756 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: houseme <housemecn@gmail.com >
2026-02-09 13:43:47 +08:00
houseme
0b870d6301
build(deps): bump the dependencies group with 19 updates ( #1745 )
2026-02-07 12:22:14 +08:00
yxrxy
5c2eda356e
feat: migrate FTP/SFTP to protocols crate and update dependencies ( #1580 )
...
Signed-off-by: yxrxy <yxrxytrigger@gmail.com >
Signed-off-by: houseme <housemecn@gmail.com >
Signed-off-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2026-02-06 20:58:42 +08:00