mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-03 12:05:59 +01:00
24 lines
719 B
Scala
24 lines
719 B
Scala
package ssh
|
|
|
|
import org.apache.sshd.server.PublickeyAuthenticator
|
|
import org.apache.sshd.server.session.ServerSession
|
|
import java.security.PublicKey
|
|
import service.SshKeyService
|
|
import servlet.Database
|
|
import javax.servlet.ServletContext
|
|
|
|
class PublicKeyAuthenticator(context: ServletContext) extends PublickeyAuthenticator with SshKeyService {
|
|
|
|
override def authenticate(username: String, key: PublicKey, session: ServerSession): Boolean = {
|
|
Database(context) withSession { implicit session =>
|
|
getPublicKeys(username).exists { sshKey =>
|
|
SshUtil.str2PublicKey(sshKey.publicKey) match {
|
|
case Some(publicKey) => key.equals(publicKey)
|
|
case _ => false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|