mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-12 00:15:50 +01:00
Merge pull request #1020 from P1tt187/sshd-RSA-keyprovider
update sshd dependency, rsa keyprovider as default
This commit is contained in:
@@ -1,14 +1,14 @@
|
|||||||
import sbt._
|
|
||||||
import Keys._
|
|
||||||
import play.twirl.sbt.SbtTwirl
|
|
||||||
import com.earldouglas.xwp.JettyPlugin
|
import com.earldouglas.xwp.JettyPlugin
|
||||||
import sbtassembly._
|
import play.twirl.sbt.SbtTwirl
|
||||||
|
import sbt.Keys._
|
||||||
|
import sbt._
|
||||||
import sbtassembly.AssemblyKeys._
|
import sbtassembly.AssemblyKeys._
|
||||||
|
import sbtassembly._
|
||||||
|
|
||||||
object MyBuild extends Build {
|
object MyBuild extends Build {
|
||||||
val Organization = "gitbucket"
|
val Organization = "gitbucket"
|
||||||
val Name = "gitbucket"
|
val Name = "gitbucket"
|
||||||
val Version = "3.9.0"
|
val Version = "3.9.1"
|
||||||
val ScalaVersion = "2.11.6"
|
val ScalaVersion = "2.11.6"
|
||||||
val ScalatraVersion = "2.3.1"
|
val ScalatraVersion = "2.3.1"
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ object MyBuild extends Build {
|
|||||||
"org.apache.commons" % "commons-compress" % "1.9",
|
"org.apache.commons" % "commons-compress" % "1.9",
|
||||||
"org.apache.commons" % "commons-email" % "1.3.3",
|
"org.apache.commons" % "commons-email" % "1.3.3",
|
||||||
"org.apache.httpcomponents" % "httpclient" % "4.3.6",
|
"org.apache.httpcomponents" % "httpclient" % "4.3.6",
|
||||||
"org.apache.sshd" % "apache-sshd" % "0.11.0",
|
"org.apache.sshd" % "apache-sshd" % "1.0.0",
|
||||||
"org.apache.tika" % "tika-core" % "1.10",
|
"org.apache.tika" % "tika-core" % "1.10",
|
||||||
"com.typesafe.slick" %% "slick" % "2.1.0",
|
"com.typesafe.slick" %% "slick" % "2.1.0",
|
||||||
"com.novell.ldap" % "jldap" % "2009-10-07",
|
"com.novell.ldap" % "jldap" % "2009-10-07",
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
package gitbucket.core.ssh
|
package gitbucket.core.ssh
|
||||||
|
|
||||||
|
import java.security.PublicKey
|
||||||
|
|
||||||
import gitbucket.core.service.SshKeyService
|
import gitbucket.core.service.SshKeyService
|
||||||
import gitbucket.core.servlet.Database
|
import gitbucket.core.servlet.Database
|
||||||
import org.apache.sshd.server.PublickeyAuthenticator
|
import org.apache.sshd.server.auth.pubkey.PublickeyAuthenticator
|
||||||
import org.apache.sshd.server.session.ServerSession
|
import org.apache.sshd.server.session.ServerSession
|
||||||
import java.security.PublicKey
|
|
||||||
|
|
||||||
class PublicKeyAuthenticator extends PublickeyAuthenticator with SshKeyService {
|
class PublicKeyAuthenticator extends PublickeyAuthenticator with SshKeyService {
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,25 @@
|
|||||||
package gitbucket.core.ssh
|
package gitbucket.core.ssh
|
||||||
|
|
||||||
|
import java.io.File
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
import javax.servlet.{ServletContextEvent, ServletContextListener}
|
import javax.servlet.{ServletContextEvent, ServletContextListener}
|
||||||
|
|
||||||
import gitbucket.core.service.SystemSettingsService
|
import gitbucket.core.service.SystemSettingsService
|
||||||
import gitbucket.core.util.Directory
|
import gitbucket.core.util.Directory
|
||||||
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider
|
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
|
||||||
|
|
||||||
object SshServer {
|
object SshServer {
|
||||||
private val logger = LoggerFactory.getLogger(SshServer.getClass)
|
private val logger = LoggerFactory.getLogger(SshServer.getClass)
|
||||||
private val server = org.apache.sshd.SshServer.setUpDefaultServer()
|
private val server = org.apache.sshd.server.SshServer.setUpDefaultServer()
|
||||||
private val active = new AtomicBoolean(false)
|
private val active = new AtomicBoolean(false)
|
||||||
|
|
||||||
private def configure(port: Int, baseUrl: String) = {
|
private def configure(port: Int, baseUrl: String) = {
|
||||||
server.setPort(port)
|
server.setPort(port)
|
||||||
server.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(s"${Directory.GitBucketHome}/gitbucket.ser", "RSA"))
|
val provider = new SimpleGeneratorHostKeyProvider(new File(s"${Directory.GitBucketHome}/gitbucket.ser"))
|
||||||
|
provider.setAlgorithm("RSA")
|
||||||
|
provider.setOverwriteAllowed(false)
|
||||||
|
server.setKeyPairProvider(provider)
|
||||||
server.setPublickeyAuthenticator(new PublicKeyAuthenticator)
|
server.setPublickeyAuthenticator(new PublicKeyAuthenticator)
|
||||||
server.setCommandFactory(new GitCommandFactory(baseUrl))
|
server.setCommandFactory(new GitCommandFactory(baseUrl))
|
||||||
server.setShellFactory(new NoShell)
|
server.setShellFactory(new NoShell)
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package gitbucket.core.ssh
|
package gitbucket.core.ssh
|
||||||
|
|
||||||
import java.security.PublicKey
|
import java.security.PublicKey
|
||||||
import org.slf4j.LoggerFactory
|
|
||||||
import org.apache.commons.codec.binary.Base64
|
import org.apache.commons.codec.binary.Base64
|
||||||
|
import org.apache.sshd.common.config.keys.KeyUtils
|
||||||
|
import org.apache.sshd.common.util.buffer.ByteArrayBuffer
|
||||||
import org.eclipse.jgit.lib.Constants
|
import org.eclipse.jgit.lib.Constants
|
||||||
import org.apache.sshd.common.util.{KeyUtils, Buffer}
|
import org.slf4j.LoggerFactory
|
||||||
|
|
||||||
|
|
||||||
object SshUtil {
|
object SshUtil {
|
||||||
|
|
||||||
@@ -20,7 +23,7 @@ object SshUtil {
|
|||||||
try {
|
try {
|
||||||
val encodedKey = parts(1)
|
val encodedKey = parts(1)
|
||||||
val decode = Base64.decodeBase64(Constants.encodeASCII(encodedKey))
|
val decode = Base64.decodeBase64(Constants.encodeASCII(encodedKey))
|
||||||
Some(new Buffer(decode).getRawPublicKey)
|
Some(new ByteArrayBuffer(decode).getRawPublicKey)
|
||||||
} catch {
|
} catch {
|
||||||
case e: Throwable =>
|
case e: Throwable =>
|
||||||
logger.debug(e.getMessage, e)
|
logger.debug(e.getMessage, e)
|
||||||
|
|||||||
Reference in New Issue
Block a user