forked from mirrors/relay
Update webfinger dep
This commit is contained in:
parent
fdf20016b2
commit
0ffcb74de6
4 changed files with 9 additions and 15 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
@ -319,9 +319,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "actix-webfinger"
|
name = "actix-webfinger"
|
||||||
version = "0.3.0-alpha.3"
|
version = "0.3.0-alpha.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "120ce509b4ad2a0dedfbaebc1c1fb2b5e7bb34430a851c3eb264a704135e30a7"
|
checksum = "818ce271e9226dc9b8885c4f397fb0e6d9e8888c95cc8bf98fa20941b8b26d89"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix-http",
|
"actix-http",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
|
|
|
@ -17,7 +17,7 @@ anyhow = "1.0"
|
||||||
actix = "0.10.0-alpha.2"
|
actix = "0.10.0-alpha.2"
|
||||||
actix-rt = "1.0.0"
|
actix-rt = "1.0.0"
|
||||||
actix-web = { version = "3.0.0-alpha.1", features = ["rustls"] }
|
actix-web = { version = "3.0.0-alpha.1", features = ["rustls"] }
|
||||||
actix-webfinger = "0.3.0-alpha.3"
|
actix-webfinger = "0.3.0-alpha.5"
|
||||||
activitystreams = "0.5.0"
|
activitystreams = "0.5.0"
|
||||||
ammonia = "3.1.0"
|
ammonia = "3.1.0"
|
||||||
async-trait = "0.1.24"
|
async-trait = "0.1.24"
|
||||||
|
|
|
@ -140,7 +140,7 @@ async fn main() -> Result<(), anyhow::Error> {
|
||||||
.service(web::resource("/nodeinfo/2.0.json").route(web::get().to(nodeinfo)))
|
.service(web::resource("/nodeinfo/2.0.json").route(web::get().to(nodeinfo)))
|
||||||
.service(
|
.service(
|
||||||
web::scope("/.well-known")
|
web::scope("/.well-known")
|
||||||
.service(actix_webfinger::scoped::<_, RelayResolver>())
|
.service(actix_webfinger::scoped::<RelayResolver>())
|
||||||
.service(web::resource("/nodeinfo").route(web::get().to(nodeinfo_meta))),
|
.service(web::resource("/nodeinfo").route(web::get().to(nodeinfo_meta))),
|
||||||
)
|
)
|
||||||
.service(web::resource("/static/{filename}").route(web::get().to(statics)))
|
.service(web::resource("/static/{filename}").route(web::get().to(statics)))
|
||||||
|
|
|
@ -2,9 +2,8 @@ use crate::{
|
||||||
config::{Config, UrlKind},
|
config::{Config, UrlKind},
|
||||||
data::State,
|
data::State,
|
||||||
};
|
};
|
||||||
use activitystreams::context;
|
|
||||||
use actix_web::web::Data;
|
use actix_web::web::Data;
|
||||||
use actix_webfinger::{Link, Resolver, Webfinger};
|
use actix_webfinger::{Resolver, Webfinger};
|
||||||
use rsa_magic_public_key::AsMagicPublicKey;
|
use rsa_magic_public_key::AsMagicPublicKey;
|
||||||
use std::{future::Future, pin::Pin};
|
use std::{future::Future, pin::Pin};
|
||||||
|
|
||||||
|
@ -14,13 +13,14 @@ pub struct RelayResolver;
|
||||||
#[error("Error resolving webfinger data")]
|
#[error("Error resolving webfinger data")]
|
||||||
pub struct RelayError;
|
pub struct RelayError;
|
||||||
|
|
||||||
impl Resolver<(Data<State>, Data<Config>)> for RelayResolver {
|
impl Resolver for RelayResolver {
|
||||||
|
type State = (Data<State>, Data<Config>);
|
||||||
type Error = RelayError;
|
type Error = RelayError;
|
||||||
|
|
||||||
fn find(
|
fn find(
|
||||||
account: &str,
|
account: &str,
|
||||||
domain: &str,
|
domain: &str,
|
||||||
(state, config): (Data<State>, Data<Config>),
|
(state, config): Self::State,
|
||||||
) -> Pin<Box<dyn Future<Output = Result<Option<Webfinger>, Self::Error>>>> {
|
) -> Pin<Box<dyn Future<Output = Result<Option<Webfinger>, Self::Error>>>> {
|
||||||
let domain = domain.to_owned();
|
let domain = domain.to_owned();
|
||||||
let account = account.to_owned();
|
let account = account.to_owned();
|
||||||
|
@ -37,13 +37,7 @@ impl Resolver<(Data<State>, Data<Config>)> for RelayResolver {
|
||||||
let mut wf = Webfinger::new(&config.generate_resource());
|
let mut wf = Webfinger::new(&config.generate_resource());
|
||||||
wf.add_alias(&config.generate_url(UrlKind::Actor))
|
wf.add_alias(&config.generate_url(UrlKind::Actor))
|
||||||
.add_activitypub(&config.generate_url(UrlKind::Actor))
|
.add_activitypub(&config.generate_url(UrlKind::Actor))
|
||||||
.add_magic_public_key(&state.public_key.as_magic_public_key())
|
.add_magic_public_key(&state.public_key.as_magic_public_key());
|
||||||
.add_link(Link {
|
|
||||||
rel: "self".to_owned(),
|
|
||||||
href: Some(config.generate_url(UrlKind::Actor)),
|
|
||||||
template: None,
|
|
||||||
kind: Some(format!("application/ld+json; profile=\"{}\"", context())),
|
|
||||||
});
|
|
||||||
|
|
||||||
Ok(Some(wf))
|
Ok(Some(wf))
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue