feat(server): authorized requests
This commit is contained in:
parent
bc19158747
commit
a7e0c03b58
3 changed files with 29 additions and 7 deletions
|
|
@ -17,15 +17,28 @@ use std::sync::Arc;
|
|||
use tokio::{fs, io::AsyncWriteExt};
|
||||
use tower::util::ServiceExt;
|
||||
use tower_http::services::{ServeDir, ServeFile};
|
||||
use tower_http::validate_request::ValidateRequestHeaderLayer;
|
||||
use uuid::Uuid;
|
||||
|
||||
pub fn router() -> Router<crate::Global> {
|
||||
Router::new()
|
||||
.route("/:repo", post(post_package_archive).delete(delete_repo))
|
||||
.route("/:repo/:arch", delete(delete_arch_repo))
|
||||
.route(
|
||||
"/:repo",
|
||||
post(post_package_archive)
|
||||
.delete(delete_repo)
|
||||
.layer(ValidateRequestHeaderLayer::bearer("test")),
|
||||
)
|
||||
.route(
|
||||
"/:repo/:arch",
|
||||
delete(delete_arch_repo).layer(ValidateRequestHeaderLayer::bearer("test")),
|
||||
)
|
||||
// Routes added after the layer do not get that layer applied, so the GET requests will not
|
||||
// be authorized
|
||||
.route(
|
||||
"/:repo/:arch/:filename",
|
||||
delete(delete_package).get(get_file),
|
||||
delete(delete_package)
|
||||
.layer(ValidateRequestHeaderLayer::bearer("test"))
|
||||
.get(get_file),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -57,6 +70,8 @@ async fn post_package_archive(
|
|||
match res {
|
||||
// Insert the newly added package into the database
|
||||
Ok(pkg) => {
|
||||
tracing::info!("Added '{}' to repository '{}'", pkg.file_name(), repo);
|
||||
|
||||
// Query the repo for its ID, or create it if it does not already exist
|
||||
let repo_entity = db_repo::Entity::find()
|
||||
.filter(db_repo::Column::Name.eq(&repo))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue