From ad1584b756690f84358d80e26b1e75841ee6a06e Mon Sep 17 00:00:00 2001 From: veypi Date: Tue, 27 Feb 2024 04:38:05 +0800 Subject: [PATCH] update --- oab/Cargo.lock | 162 +++++++++++++++++++++++++------- oab/Cargo.toml | 1 + oab/src/fs/usr.rs | 16 +++- oaweb/package.json | 2 +- oaweb/src/layouts/AppLayout.vue | 3 +- oaweb/src/layouts/menus.ts | 1 - 6 files changed, 147 insertions(+), 38 deletions(-) diff --git a/oab/Cargo.lock b/oab/Cargo.lock index a428237..f183d96 100644 --- a/oab/Cargo.lock +++ b/oab/Cargo.lock @@ -87,7 +87,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rand", + "rand 0.8.5", "sha1", "smallvec", "tokio", @@ -241,7 +241,7 @@ dependencies = [ "serde_urlencoded", "smallvec", "socket2 0.5.4", - "time", + "time 0.3.30", "url", ] @@ -407,7 +407,7 @@ dependencies = [ "nkeys", "nuid", "once_cell", - "rand", + "rand 0.8.5", "regex", "ring", "rustls 0.21.7", @@ -419,7 +419,7 @@ dependencies = [ "serde_nanos", "serde_repr", "thiserror", - "time", + "time 0.3.30", "tokio", "tokio-retry", "tokio-rustls 0.24.1", @@ -806,7 +806,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time", + "time 0.3.30", "version_check", ] @@ -1048,7 +1048,7 @@ dependencies = [ "pin-project", "pin-utils", "regex", - "time", + "time 0.3.30", "tokio", "url", "uuid", @@ -1297,6 +1297,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + [[package]] name = "funty" version = "2.0.0" @@ -1413,6 +1419,12 @@ dependencies = [ "slab", ] +[[package]] +name = "gcc" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" + [[package]] name = "generic-array" version = "0.14.7" @@ -1431,7 +1443,7 @@ checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] @@ -2007,7 +2019,7 @@ checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", "log", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys", ] @@ -2041,7 +2053,7 @@ dependencies = [ "ed25519-dalek", "getrandom", "log", - "rand", + "rand 0.8.5", "signatory", ] @@ -2080,7 +2092,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc895af95856f929163a0aa20c26a78d26bfdc839f51b9d5aa7a5b79e52b7e83" dependencies = [ - "rand", + "rand 0.8.5", ] [[package]] @@ -2117,7 +2129,7 @@ dependencies = [ "num-integer", "num-iter", "num-traits", - "rand", + "rand 0.8.5", "smallvec", "zeroize", ] @@ -2189,8 +2201,9 @@ dependencies = [ "mime_guess", "nkeys", "proc", - "rand", + "rand 0.8.5", "reqwest", + "rust-crypto", "rust-embed", "sea-orm", "serde", @@ -2609,6 +2622,29 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "rand" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" +dependencies = [ + "libc", + "rand 0.4.6", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + [[package]] name = "rand" version = "0.8.5" @@ -2617,7 +2653,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -2627,9 +2663,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", ] +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + [[package]] name = "rand_core" version = "0.6.4" @@ -2659,6 +2710,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -2830,7 +2890,7 @@ dependencies = [ "num-traits", "pkcs1 0.3.3", "pkcs8 0.8.0", - "rand_core", + "rand_core 0.6.4", "smallvec", "subtle", "zeroize", @@ -2851,13 +2911,26 @@ dependencies = [ "num-traits", "pkcs1 0.7.5", "pkcs8 0.10.2", - "rand_core", + "rand_core 0.6.4", "signature", "spki 0.7.2", "subtle", "zeroize", ] +[[package]] +name = "rust-crypto" +version = "0.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" +dependencies = [ + "gcc", + "libc", + "rand 0.3.23", + "rustc-serialize", + "time 0.1.45", +] + [[package]] name = "rust-embed" version = "8.0.0" @@ -2902,7 +2975,7 @@ dependencies = [ "borsh", "bytes", "num-traits", - "rand", + "rand 0.8.5", "rkyv", "serde", "serde_json", @@ -2914,6 +2987,12 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc-serialize" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401" + [[package]] name = "rustc_version" version = "0.4.0" @@ -3077,7 +3156,7 @@ dependencies = [ "sqlx 0.7.2", "strum", "thiserror", - "time", + "time 0.3.30", "tracing", "url", "uuid", @@ -3110,7 +3189,7 @@ dependencies = [ "ordered-float", "rust_decimal", "serde_json", - "time", + "time 0.3.30", "uuid", ] @@ -3126,7 +3205,7 @@ dependencies = [ "sea-query", "serde_json", "sqlx 0.7.2", - "time", + "time 0.3.30", "uuid", ] @@ -3328,7 +3407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1e303f8205714074f6068773f0e29527e0453937fe837c9717d066635b65f31" dependencies = [ "pkcs8 0.10.2", - "rand_core", + "rand_core 0.6.4", "signature", "zeroize", ] @@ -3340,7 +3419,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3358,7 +3437,7 @@ dependencies = [ "num-bigint 0.4.4", "num-traits", "thiserror", - "time", + "time 0.3.30", ] [[package]] @@ -3509,7 +3588,7 @@ dependencies = [ "once_cell", "paste", "percent-encoding", - "rand", + "rand 0.8.5", "rsa 0.6.1", "rustls 0.19.1", "sha-1", @@ -3564,7 +3643,7 @@ dependencies = [ "smallvec", "sqlformat 0.2.2", "thiserror", - "time", + "time 0.3.30", "tokio", "tokio-stream", "tracing", @@ -3662,7 +3741,7 @@ dependencies = [ "memchr", "once_cell", "percent-encoding", - "rand", + "rand 0.8.5", "rsa 0.9.2", "rust_decimal", "serde", @@ -3672,7 +3751,7 @@ dependencies = [ "sqlx-core 0.7.2", "stringprep", "thiserror", - "time", + "time 0.3.30", "tracing", "uuid", "whoami", @@ -3707,7 +3786,7 @@ dependencies = [ "memchr", "num-bigint 0.4.4", "once_cell", - "rand", + "rand 0.8.5", "rust_decimal", "serde", "serde_json", @@ -3717,7 +3796,7 @@ dependencies = [ "sqlx-core 0.7.2", "stringprep", "thiserror", - "time", + "time 0.3.30", "tracing", "uuid", "whoami", @@ -3753,7 +3832,7 @@ dependencies = [ "percent-encoding", "serde", "sqlx-core 0.7.2", - "time", + "time 0.3.30", "tracing", "url", "uuid", @@ -3916,6 +3995,17 @@ dependencies = [ "once_cell", ] +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + [[package]] name = "time" version = "0.3.30" @@ -4007,7 +4097,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project", - "rand", + "rand 0.8.5", "tokio", ] @@ -4091,7 +4181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e" dependencies = [ "crossbeam-channel", - "time", + "time 0.3.30", "tracing-subscriber", ] @@ -4236,7 +4326,7 @@ checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ "getrandom", "md-5", - "rand", + "rand 0.8.5", "serde", "uuid-macro-internal", ] @@ -4289,6 +4379,12 @@ dependencies = [ "try-lock", ] +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" diff --git a/oab/Cargo.toml b/oab/Cargo.toml index 3bca8f8..db16de0 100644 --- a/oab/Cargo.toml +++ b/oab/Cargo.toml @@ -62,4 +62,5 @@ nkeys = "0.3.2" tracing-appender = "0.2.2" reqwest = "0.11.22" sysinfo = "0.29.10" +rust-crypto = "0.2.36" diff --git a/oab/src/fs/usr.rs b/oab/src/fs/usr.rs index 864696b..aa2ff45 100644 --- a/oab/src/fs/usr.rs +++ b/oab/src/fs/usr.rs @@ -10,6 +10,7 @@ use std::{fs, path::Path}; use actix_web::web; +use crypto::digest::Digest; use dav_server::{ actix::{DavRequest, DavResponse}, body::Body, @@ -20,7 +21,7 @@ use dav_server::{ use http::Response; use http_auth_basic::Credentials; -use sea_orm::{ColumnTrait, EntityTrait, QueryFilter}; +use sea_orm::{ColumnTrait, Condition, EntityTrait, QueryFilter}; use tracing::{info, warn}; use crate::{ @@ -87,11 +88,22 @@ async fn handle_file(req: &DavRequest, stat: web::Data) -> Result { + let mut c = crypto::md5::Md5::new(); + let rs: String = credentials.user_id.chars().rev().collect(); + c.input_str(&rs); + info!("{}|{}|{}", rs, c.result_str(), credentials.password); + if c.result_str() == credentials.password { + return Ok(format!("user/{}/", u.id)); + } u.check_pass(&credentials.password)?; return Ok(format!("user/{}/", u.id)); } diff --git a/oaweb/package.json b/oaweb/package.json index 0de5832..0de6299 100644 --- a/oaweb/package.json +++ b/oaweb/package.json @@ -17,7 +17,7 @@ "@toast-ui/editor": "^3.2.2", "@types/validator": "^13.11.2", "@veypi/msg": "^0.1.1", - "@veypi/oaer": "^0.2.0", + "@veypi/oaer": "^0.2.1", "@veypi/one-icon": "2", "animate.css": "^4.1.1", "axios": "^1.2.1", diff --git a/oaweb/src/layouts/AppLayout.vue b/oaweb/src/layouts/AppLayout.vue index 3b55058..af1d492 100644 --- a/oaweb/src/layouts/AppLayout.vue +++ b/oaweb/src/layouts/AppLayout.vue @@ -6,7 +6,7 @@ -->