Open RShirohara opened 1 year ago
区別するインスタンスはサポートしないで良いかも
区別するインスタンスはサポートしないで良いかも
大文字と小文字を区別して一意性制約とするデータベースと 大文字と小文字を区別せずに一意性制約とするデータベースの同期など出来ないから それでいいというかそうせざるを得ないと思うわ。
WebFinger リクエストを生成する際に
username
を小文字へ正規化するため
これしなかったらどうなりますか?
これしなかったらどうなりますか?
相手側に大文字小文字違いの重複ユーザーがいなかったら、いちおう取得(&認識)できると思うのだわ。 ただし、相手側に大文字小文字違いの重複ユーザーがいた場合は 結局重複している方のユーザーはDBにINSERT出来なくて存在しないことにされると思うのだわ。
つまりなくても何かが新しく壊れることはないと
つまりなくても何かが新しく壊れることはないと
大文字小文字違いの重複ユーザーがいない場合のみうまく動くようになるが それ以外の場合は動作不定になるのでどちらかがベターかは私には判断できないわ
それ以外の場合は動作不定になる
二つのノートのactorが大文字小文字違いの重複ユーザーだったらいまでも動作不定になりそうですがどうでしょう
二つのノートのactorが大文字小文字違いの重複ユーザーだったらいまでも動作不定になりそうですがどうでしょう
確かにidの方はスキーマ上はcase sensitiveだわね。 かと言ってusernameの方をcase sensitiveに寄せられないし、めんどくさいわね。
確かに、WebFingerでlowercaseを使う理由は特にない。 lowercaseを使わないようにすれば、このIssueの問題である「WebFinger リクエストに失敗する」は解決する。 (その解決されたユーザーがDBにINSERT出来て認識出来るかどうかは保証できない) ではあるわね。
💡 Summary
username
の大文字と小文字を区別する ActivityPub 実装 (e.g. cloudflare/wildebeest) では、WebFinger リクエスト内のresource
クエリパラメータでも大文字と小文字が区別され、別のユーザとして扱われます。1. 重複するユーザが存在しない場合
- [@RShirohara@ap.third-branches.net](https://ap.third-branches.net/@RShirohara) ![image](https://user-images.githubusercontent.com/47940764/230941877-6e20bade-135f-4c42-8602-d3a85ec1d5e3.png)2. 重複するユーザが存在する場合
- [@test_foo@ap.third-branches.net](https://ap.third-branches.net/@test_foo) - [@Test_Foo@ap.third-branches.net](https://ap.third-branches.net/@Test_Foo) ![image](https://user-images.githubusercontent.com/47940764/230942030-824b7602-9ac6-4b0b-8c00-9c1675ebbaa0.png)Misskey は WebFinger リクエストを生成する際に
username
を小文字へ正規化するため、上記のような ActivityPub 実装からはリモートユーザが取得できません。🥰 Expected Behavior
username
に大文字を含むリモートユーザの情報を Misskey UI 上で確認できます。🤬 Actual Behavior
リモートユーザの
username
に大文字を含む場合、WebFinger リクエストが失敗します。📝 Steps to Reproduce
https://<misskey-instance>/<@username@domain>
の形式でリモートユーザの情報を取得する📌 Environment
v13.11.1
v.3342a88
Additional Info
Mastodon などの殆どの実装で
username
の大文字と小文字を区別していない (mastodon/mastodon#7658) ことは理解していますが、明確な仕様として定義された文章を確認できませんでした。