Improve readability
This commit is contained in:
		
							parent
							
								
									54a87b25b3
								
							
						
					
					
						commit
						9b05b6ef28
					
				
					 1 changed files with 32 additions and 32 deletions
				
			
		|  | @ -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の場合は、ここで署名検証/更新処理まで実施して終了
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue