mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-03 03:55:58 +01:00
Ignore signed-commit verification error (#3256)
This commit is contained in:
@@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user