From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH proxmox-backup 1/2] openid: move helper from config to api2
Date: Thu, 1 Jul 2021 14:58:32 +0200 [thread overview]
Message-ID: <20210701125833.2773190-1-f.gruenbichler@proxmox.com> (raw)
it's not really needed in the config module, and this makes it easier to
disable the proxmox-openid dependency linkage as a stop-gap measure.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
src/api2/access/openid.rs | 17 ++++++++++++++---
src/config/domains.rs | 14 --------------
2 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/src/api2/access/openid.rs b/src/api2/access/openid.rs
index ea6133b4..91a26279 100644
--- a/src/api2/access/openid.rs
+++ b/src/api2/access/openid.rs
@@ -11,7 +11,8 @@ use proxmox::{list_subdirs_api_method};
use proxmox::{identity, sortable};
use proxmox::tools::fs::open_file_locked;
-use proxmox_openid::OpenIdAuthenticator;
+use proxmox_openid::{OpenIdAuthenticator, OpenIdConfig};
+
use crate::server::ticket::ApiTicket;
use crate::tools::ticket::Ticket;
@@ -22,6 +23,16 @@ use crate::config::cached_user_info::CachedUserInfo;
use crate::api2::types::*;
use crate::auth_helpers::*;
+fn openid_authenticator(realm_config: &OpenIdRealmConfig, redirect_url: &str) -> Result<OpenIdAuthenticator, Error> {
+ let config = OpenIdConfig {
+ issuer_url: realm_config.issuer_url.clone(),
+ client_id: realm_config.client_id.clone(),
+ client_key: realm_config.client_key.clone(),
+ };
+ OpenIdAuthenticator::discover(&config, redirect_url)
+}
+
+
#[api(
input: {
properties: {
@@ -77,7 +88,7 @@ pub fn openid_login(
let (domains, _digest) = crate::config::domains::config()?;
let config: OpenIdRealmConfig = domains.lookup("openid", &realm)?;
- let open_id = config.authenticator(&redirect_url)?;
+ let open_id = openid_authenticator(&config, &redirect_url)?;
let info = open_id.verify_authorization_code(&code, &private_auth_state)?;
@@ -171,7 +182,7 @@ fn openid_auth_url(
let (domains, _digest) = crate::config::domains::config()?;
let config: OpenIdRealmConfig = domains.lookup("openid", &realm)?;
- let open_id = config.authenticator(&redirect_url)?;
+ let open_id = openid_authenticator(&config, &redirect_url)?;
let url = open_id.authorize_url(PROXMOX_BACKUP_RUN_DIR_M!(), &realm)?
.to_string();
diff --git a/src/config/domains.rs b/src/config/domains.rs
index d08efc24..775c02f3 100644
--- a/src/config/domains.rs
+++ b/src/config/domains.rs
@@ -3,8 +3,6 @@ use lazy_static::lazy_static;
use std::collections::HashMap;
use serde::{Serialize, Deserialize};
-use proxmox_openid::{OpenIdAuthenticator, OpenIdConfig};
-
use proxmox::api::{
api,
schema::*,
@@ -95,18 +93,6 @@ pub struct OpenIdRealmConfig {
pub username_claim: Option<OpenIdUserAttribute>,
}
-impl OpenIdRealmConfig {
-
- pub fn authenticator(&self, redirect_url: &str) -> Result<OpenIdAuthenticator, Error> {
- let config = OpenIdConfig {
- issuer_url: self.issuer_url.clone(),
- client_id: self.client_id.clone(),
- client_key: self.client_key.clone(),
- };
- OpenIdAuthenticator::discover(&config, redirect_url)
- }
-}
-
fn init() -> SectionConfig {
let obj_schema = match OpenIdRealmConfig::API_SCHEMA {
Schema::Object(ref obj_schema) => obj_schema,
--
2.30.2
next reply other threads:[~2021-07-01 12:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-01 12:58 Fabian Grünbichler [this message]
2021-07-01 12:58 ` [pbs-devel] [PATCH proxmox-backup 2/2] openid: conditionally disable api endpoint Fabian Grünbichler
2021-07-05 6:11 ` [pbs-devel] applied-series: [PATCH proxmox-backup 1/2] openid: move helper from config to api2 Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210701125833.2773190-1-f.gruenbichler@proxmox.com \
--to=f.gruenbichler@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.