1
0
Fork 0

Merge pull request #257 from Step7750/fix-nfc-mobile

Fixes NFC Response for Mobile Yubikey OTP Login
Dieser Commit ist enthalten in:
Daniel García 2018-11-17 15:28:41 +01:00 committet von GitHub
Commit 17052b665f
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23
2 geänderte Dateien mit 15 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -507,9 +507,9 @@ struct EnableYubikeyData {
#[derive(Deserialize, Serialize, Debug)] #[derive(Deserialize, Serialize, Debug)]
#[allow(non_snake_case)] #[allow(non_snake_case)]
struct YubikeyMetadata { pub struct YubikeyMetadata {
Keys: Vec<String>, Keys: Vec<String>,
Nfc: bool, pub Nfc: bool,
} }
use yubico::Yubico; use yubico::Yubico;

Datei anzeigen

@ -269,6 +269,19 @@ fn _json_err_twofactor(providers: &[i32], user_uuid: &str, conn: &DbConn) -> Api
result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map); result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map);
} }
Some(TwoFactorType::YubiKey) => {
let twofactor = match TwoFactor::find_by_user_and_type(user_uuid, TwoFactorType::YubiKey as i32, &conn) {
Some(tf) => tf,
None => err!("No YubiKey devices registered"),
};
let yubikey_metadata: two_factor::YubikeyMetadata = serde_json::from_str(&twofactor.data).expect("Can't parse Yubikey Metadata");
let mut map = JsonMap::new();
map.insert("Nfc".into(), Value::Bool(yubikey_metadata.Nfc));
result["TwoFactorProviders2"][provider.to_string()] = Value::Object(map);
}
_ => {} _ => {}
} }
} }