Updating to Rust 2018 - about to fix

This commit is contained in:
Matthew Scheirer 2018-12-06 14:46:36 -05:00
parent bebb3820ea
commit 7f52719948
4 changed files with 60 additions and 30 deletions

View File

@ -1,19 +1,21 @@
[package]
name = "oidc"
version = "0.1.0"
license = "Apache-2.0"
description = "OpenID Connect client library using Reqwest, Biscuit, and inth-oauth2"
readme = "README.md"
authors = ["Zanny <lordzanny@gmail.com>"]
categories = ["web-programming", "authentication"]
description = "OpenID Connect client library using Reqwest, Biscuit, and inth-oauth2"
documentation = "https://docs.rs/crate/oidc"
edition = "2018"
keywords = ["authentication", "client", "openid", "openid_connect", "web"]
documentation = "https://docs.rs/crate/oidc/0.1.0"
license = "Apache-2.0"
readme = "README.md"
repository = "https://gitlab.com/zanny/oidc-reqwest"
[dependencies]
base64 = "0.10"
biscuit = "0.1"
chrono = "0.4"
failure = "0.1"
inth-oauth2 = "0.16"
reqwest = { version = "0.9", features = ["hyper-011"] }
serde = "1"

View File

@ -76,19 +76,17 @@ fn tru() -> bool {
true
}
pub struct Discovered {
pub config: Config,
}
pub struct Discovered(pub Config);
impl Provider for Discovered {
type Lifetime = Expiring;
type Token = Token;
fn auth_uri(&self) -> &Url {
&self.config.authorization_endpoint
&self.0.authorization_endpoint
}
fn token_uri(&self) -> &Url {
&self.config.token_endpoint
&self.0.token_endpoint
}
}

View File

@ -1,33 +1,63 @@
use reqwest::Url;
// TODO these should all be const, or even better, static Urls...
const STATIC_URL_ERR_MSG: &str = "Static urls should always work!";
// TODO these should all be const, or even better, sttic Urls...a
pub fn google() -> Url {
Url::parse("https://accounts.google.com").expect("Static urls should always work!")
Url::parse("https://accounts.google.com").expect(STATIC_URL_ERR_MSG)
}
pub fn microsoft() -> Url {
Url::parse("https://login.microsoftonline.com/common/v2.0").expect(STATIC_URL_ERR_MSG)
}
pub fn paypal() -> Url {
Url::parse("https://www.paypalobjects.com/").expect("Static urls should always work!")
Url::parse("https://www.paypalobjects.com/").expect(STATIC_URL_ERR_MSG)
}
pub fn salesforce() -> Url {
Url::parse("https://login.salesforce.com").expect("Static urls should always work!")
Url::parse("https://login.salesforce.com").expect(STATIC_URL_ERR_MSG)
}
pub fn yahoo() -> Url {
Url::parse("https://login.yahoo.com").expect(STATIC_URL_ERR_MSG)
}
#[cfg(test)]
mod tests {
use reqwest::Client;
use discovery::discover;
#[test]
fn google_disco() {
let client = ::reqwest::Client::new();
::discovery::discover(&client, google()).unwrap();
let client = Client::new();
discover(&client, super::google()).unwrap();
}
#[test]
fn microsoft_disco() {
let client = Client::new();
let res = discover(&client, super::microsoft());
println!("Result: {:?}", res);
res.unwrap();
}
#[test]
fn paypal_disco() {
let client = ::reqwest::Client::new();
::discovery::discover(&client, paypal()).unwrap();
let client = Client::new();
discover(&client, super::paypal()).unwrap();
}
#[test]
fn salesforce_disco() {
let client = ::reqwest::Client::new();
::discovery::discover(&client, salesforce()).unwrap();
let client = Client::new();
discover(&client, super::salesforce()).unwrap();
}
#[test]
fn yahoo_disco() {
let client = Client::new();
discover(&client, super::yahoo()).unwrap();
}
}

View File

@ -39,7 +39,7 @@
//!
//! let config = oidc::discovery::discover(&http, issuer)?;
//! let jwks = oidc::discovery::jwks(&http, config.jwks_uri.clone())?;
//! let provider = oidc::discovery::Discovered { config };
//! let provider = oidc::discovery::Discovered(config);
//!
//! let client = oidc::new(id, secret, redirect, provider, jwks);
//! let auth_url = client.auth_url(Default::default());
@ -124,7 +124,7 @@ impl Client {
let client = reqwest::Client::new();
let config = discovery::discover(&client, issuer)?;
let jwks = discovery::jwks(&client, config.jwks_uri.clone())?;
let provider = Discovered { config };
let provider = Discovered(config);
Ok(Self::new(id, secret, redirect, provider, jwks))
}
@ -157,7 +157,7 @@ impl Client {
/// A reference to the config document of the provider obtained via discovery
pub fn config(&self) -> &Config {
&self.oauth.provider.config
&self.oauth.provider.0
}
/// Constructs the auth_url to redirect a client to the provider. Options are... optional. Use