Ignore signed-commit verification error (#3256)

This commit is contained in:
Naoki Takezoe
2023-03-18 21:58:15 +09:00
committed by GitHub
parent 3dd9b7e587
commit bae9b7ddc3

View File

@@ -1,8 +1,7 @@
package gitbucket.core.util package gitbucket.core.util
import java.io.ByteArrayInputStream import java.io.ByteArrayInputStream
import scala.jdk.CollectionConverters._ import scala.jdk.CollectionConverters._
import gitbucket.core.model.Profile._ import gitbucket.core.model.Profile._
import gitbucket.core.model.Profile.profile.blockingApi._ import gitbucket.core.model.Profile.profile.blockingApi._
import org.bouncycastle.bcpg.ArmoredInputStream import org.bouncycastle.bcpg.ArmoredInputStream
@@ -34,29 +33,33 @@ object GpgUtil {
} }
def verifySign(signInfo: JGitUtil.GpgSignInfo)(implicit s: Session): Option[JGitUtil.GpgVerifyInfo] = { def verifySign(signInfo: JGitUtil.GpgSignInfo)(implicit s: Session): Option[JGitUtil.GpgVerifyInfo] = {
new BcPGPObjectFactory(new ArmoredInputStream(new ByteArrayInputStream(signInfo.signArmored))) try {
.iterator() new BcPGPObjectFactory(new ArmoredInputStream(new ByteArrayInputStream(signInfo.signArmored)))
.asScala .iterator()
.flatMap { .asScala
case signList: PGPSignatureList => .flatMap {
signList case signList: PGPSignatureList =>
.iterator() signList
.asScala .iterator()
.flatMap { sign => .asScala
getGpgKey(sign.getKeyID) .flatMap { sign =>
.map { pubKey => getGpgKey(sign.getKeyID)
sign.init(new BcPGPContentVerifierBuilderProvider, pubKey) .map { pubKey =>
sign.update(signInfo.target) sign.init(new BcPGPContentVerifierBuilderProvider, pubKey)
(sign, pubKey) sign.update(signInfo.target)
} (sign, pubKey)
.collect { }
case (sign, pubKey) if sign.verify() => .collect {
JGitUtil.GpgVerifyInfo(pubKey.getUserIDs.next, pubKey.getKeyID.toHexString.toUpperCase) case (sign, pubKey) if sign.verify() =>
} JGitUtil.GpgVerifyInfo(pubKey.getUserIDs.next, pubKey.getKeyID.toHexString.toUpperCase)
} }
}
}
.toList
.headOption
} catch {
case _: Throwable => None
}
}
.toList
.headOption
} }
} }