Improve readability

This commit is contained in:
syuilo 2019-04-18 00:57:06 +09:00
parent 54a87b25b3
commit 9b05b6ef28
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69

View file

@ -36,41 +36,41 @@ export default async (job: Bull.Job): Promise<void> => {
if (keyIdLower.startsWith('acct:')) { if (keyIdLower.startsWith('acct:')) {
logger.warn(`Old keyId is no longer supported. ${keyIdLower}`); logger.warn(`Old keyId is no longer supported. ${keyIdLower}`);
return; return;
}
// アクティビティ内のホストの検証
const host = toPuny(new URL(signature.keyId).hostname);
try {
ValidateActivity(activity, host);
} catch (e) {
logger.warn(e.message);
return;
}
// ブロックしてたら中断
// TODO: いちいちデータベースにアクセスするのはコスト高そうなのでどっかにキャッシュしておく
const meta = await fetchMeta();
if (meta.blockedHosts.includes(host)) {
logger.info(`Blocked request: ${host}`);
return;
}
const _key = await UserPublickeys.findOne({
keyId: signature.keyId
});
if (_key) {
// 登録済みユーザー
user = await Users.findOne(_key.userId) as IRemoteUser;
key = _key;
} else { } else {
// アクティビティ内のホストの検証 // 未登録ユーザーの場合はリモート解決
const host = toPuny(new URL(signature.keyId).hostname); user = await resolvePerson(activity.actor) as IRemoteUser;
try { if (user == null) {
ValidateActivity(activity, host); throw new Error('failed to resolve user');
} catch (e) {
logger.warn(e.message);
return;
} }
// ブロックしてたら中断 key = await UserPublickeys.findOne(user.id).then(ensure);
// TODO: いちいちデータベースにアクセスするのはコスト高そうなのでどっかにキャッシュしておく
const meta = await fetchMeta();
if (meta.blockedHosts.includes(host)) {
logger.info(`Blocked request: ${host}`);
return;
}
const _key = await UserPublickeys.findOne({
keyId: signature.keyId
});
if (_key) {
// 登録済みユーザー
user = await Users.findOne(_key.userId) as IRemoteUser;
key = _key;
} else {
// 未登録ユーザーの場合はリモート解決
user = await resolvePerson(activity.actor) as IRemoteUser;
if (user == null) {
throw new Error('failed to resolve user');
}
key = await UserPublickeys.findOne(user.id).then(ensure);
}
} }
// Update Person activityの場合は、ここで署名検証/更新処理まで実施して終了 // Update Person activityの場合は、ここで署名検証/更新処理まで実施して終了