resolución de dependencias sbt con autenticación básica
ivy basic-authentication (3)
¿Qué hay de agregar lo siguiente a tus ~ / .ivy2 / .credentials?
realm=maven repository
host=rep.com:8080
user=username
password=password
y luego use Credentials(Path.userHome / ".ivy2" / ".credentials")
debe asegurarse de que su reino esté configurado correctamente: curl http://rep.com:8080 -vv 2>&1 | egrep "realm|host"
curl http://rep.com:8080 -vv 2>&1 | egrep "realm|host"
(podría estar equivocado, pero ''host'' puede tener que coincidir con el encabezado del host, es decir, rep.com:8080, no solo rep.com).
hth
Tengo nginx para mi repositorio maven con autorización básica.
Mi build.sbt tiene:
credentials += Credentials("maven repository", "rep.com", "sbt", "password")
resolvers ++= Seq(
"maven repository" at "http://rep.com:8080/"
)
pero, sbt no puede encontrar el módulo porque sbt no usa autorización básica.
Mis registros de nginx se ve como:
012/07/22 20:02:21 [error] 3338#0: *14 no user/password was provided for basic authentication, client: 8.32.39.29, server: rep.com, request: "HEAD /some/cool_2.9.1/0.1-SNAPSHOT/cool_2.9.1-0.1-SNAPSHOT.pom HTTP/1.1", host: "rep.com:8080"
No quiero publicar artefactos a través de nginx. La autenticación básica solo necesita acceso restringido a los artefactos.
¿Cómo puedo restringir el acceso y trabajar con el repositorio en sbt?
No sé si funciona, pero intente agregar la autenticación básica en la URL:
resolvers ++= Seq(
"maven repository" at "http://username:[email protected]:8080/"
)
Tuve el mismo problema con un repositorio SVN que utiliza AUTH básico. Esta publicación y la mencionada anteriormente me dieron la respuesta que resumiré a continuación.
Como se mencionó anteriormente, se trata de hacer que el reino sea correcto:
En build.sbt configuro mi resolución de la siguiente manera:
resolvers += {
Credentials.add("<realm>", "<svnhost?", "<username>", "<password>")
Resolver.url("name", url("http://<svnhost>/<path>/"))(Resolver.ivyStylePatterns)
}
Para encontrar el valor de reino que es el primer parámetro para Credentials.add, lo hice
curl http://<svn host> -v
y usó el valor del Reino Básico reportado en el encabezado WWW-Authenticate:
WWW-Authenticate: Basic realm="<realm>"
Espero que esto ayude.