20:01:22
icon

RFC 7033 - WebFinger
datatracker.ietf.org/doc/html/
> A WebFinger resource MAY redirect the client; if it does, the redirection MUST only be to an "https" URI and the client MUST perform certificate validation again when redirected.
リダイレクト時に証明書の検証をしろとわざわざ要求しているの、ひいき目に見てもWebFingerプロトコルの領分ではないし、接続の再利用などを考えると実際のところ怪しい記述な気がするのだよなあ

20:01:27
icon

他にも4.1.節ではリクエストのURLのクエリ部分を作る方法について、パラメタの名前と値をパーセントエンコードして`=`でつなげてさらにパラメタ間を`&`でつなげて……などと1段落かけて`x-www-form-urlencoded`の再発明をしているし(これに関してはWHATWGのURL Standardへの参照を避けたいからとか?)、4.2.節ではエラーの場合においてもnon-secureなHTTPで再試行してはならない(MUST)などと要求している(TLSへの執着が激しいな)

20:02:05
icon

それでいて、JRD文書の`subject`がリクエストの`resource`と異なる場合にクライアントが行うべき処理のような重要なケースについての記述が抜けているという。この場合は新たな`subject`を`resource`としてWebFingerクエリを再試行するのが一般的なのだけど、それはあくまで実装が気を利かせて勝手にやっているだけであって、規格として定められたわけではないっぽいのが困りどころである(これが規格に明記されていたら`subject`をカノニカル化しない実装に対してその旨を堂々と指摘できて話が楽だっただろうに)

20:05:53
icon

こうしてMisskeyユーザは`threads.net`の代わりに`www.threads.net'を目にすることになったというわけです(?)
QT: fedibird.com/@tesaguri/1116463
[参照]

Web site image
tesaguri 🦀🦝 (@tesaguri@fedibird.com)
Web site image
投稿の参照(1件) by tesaguri 🦀🦝 (@tesaguri@fedibird.com)
20:06:00
icon

まあMisskeyについては<github.com/misskey-dev/misskey>の"wontfix"ラベルが外されているから、対応する気がないわけではないのだろうけど

Web site image
Wrong account names of users of Mastodon instances where WEB_DOMAIN != LOCAL_DOMAIN · Issue #7922 · misskey-dev/misskey
20:16:31
icon

WebFingerのクライアントライブラリみたいなのはないこともないけど、少なくとも私が探した時点ではどれもリソースを取得してJRDをデシリアライズする薄いラッパといった感じで、このあたりの処理を扱っているものはなかったと記憶している。まあ難しい処理でもないから必要なら自分で書けば良いわけだけど(一応多少のセキュリティ上の配慮が求められる処理ではあるけど)

20:23:21
icon

(いや、その多少のセキュリティ上の配慮のせいで真面目にやろうとするとそこそこのテストコードが必要になるわけだけど)

20:35:17
icon

一般論として、ユーザの制御の及ばないところで`hyper`やら`reqwest`やらのクライアントを生成するライブラリは使うのに気が引けるところがある。これをされると例えばせっかくアプリケーション側で持っているコネクションプールを利用できないし、証明書だのプロクシだのの細かい設定も反映させられない