Move oidc to dedicated crate

This commit is contained in:
Lennart
2025-04-20 21:40:03 +02:00
parent 5e4cdc6a12
commit be9712241c
12 changed files with 42 additions and 11 deletions

View File

@@ -7,7 +7,6 @@ repository.workspace = true
publish = false
[dependencies]
openidconnect.workspace = true
askama.workspace = true
askama_web.workspace = true
actix-session = { workspace = true }
@@ -20,10 +19,10 @@ rust-embed.workspace = true
futures-core.workspace = true
hex.workspace = true
mime_guess.workspace = true
reqwest.workspace = true
rand.workspace = true
chrono.workspace = true
chrono-humanize.workspace = true
uuid.workspace = true
url.workspace = true
tracing.workspace = true
rustical_oidc.workspace = true

View File

@@ -1,4 +1,3 @@
pub use crate::oidc::OidcConfig;
use serde::{Deserialize, Serialize};
fn default_true() -> bool {

View File

@@ -14,13 +14,13 @@ use actix_web::{
use askama::Template;
use askama_web::WebTemplate;
use assets::{Assets, EmbedService};
use oidc::configure_oidc;
use rand::{Rng, distributions::Alphanumeric};
use routes::{
addressbook::{route_addressbook, route_addressbook_restore},
calendar::{route_calendar, route_calendar_restore},
login::{route_get_login, route_post_login, route_post_logout},
};
use rustical_oidc::{OidcConfig, configure_oidc};
use rustical_store::{
Addressbook, AddressbookStore, Calendar, CalendarStore,
auth::{AuthenticationMiddleware, AuthenticationProvider, User},
@@ -31,13 +31,12 @@ use std::sync::Arc;
mod assets;
mod config;
pub mod nextcloud_login;
mod oidc;
mod routes;
pub const ROUTE_NAME_HOME: &str = "frontend_home";
pub const ROUTE_USER_NAMED: &str = "frontend_user_named";
pub use config::{FrontendConfig, OidcConfig};
pub use config::FrontendConfig;
pub fn generate_app_token() -> String {
rand::thread_rng()

View File

@@ -1,4 +1,4 @@
use crate::{FrontendConfig, OidcConfig, oidc::ROUTE_NAME_OIDC_LOGIN};
use crate::{FrontendConfig, OidcConfig};
use actix_session::Session;
use actix_web::{
HttpRequest, HttpResponse, Responder,
@@ -7,6 +7,7 @@ use actix_web::{
};
use askama::Template;
use askama_web::WebTemplate;
use rustical_oidc::ROUTE_NAME_OIDC_LOGIN;
use rustical_store::auth::AuthenticationProvider;
use serde::Deserialize;
use tracing::instrument;

16
crates/oidc/Cargo.toml Normal file
View File

@@ -0,0 +1,16 @@
[package]
name = "rustical_oidc"
version.workspace = true
edition.workspace = true
description.workspace = true
repository.workspace = true
[dependencies]
openidconnect.workspace = true
serde = { workspace = true }
reqwest.workspace = true
# TODO: Remove this dependency
rustical_store = { workspace = true }
actix-web = { workspace = true }
actix-session = { workspace = true }
thiserror = { workspace = true }