Jenkins Login per Java Download Manager

Diskutiere Jenkins Login per Java Download Manager im Netzwerkprogrammierung Bereich.
P

PG_97

Moin,

eine Frage in die Runde. Derzeit bin ich dabei einen kleinen Update Manager für unsere Firmenprodukte zu schreiben. Dieser bezieht die Updatepakete von Jenkins und lädt diese im Programm hoch.
Der Download Manager steht soweit, es hapert leider an der Autentifizierung für Jenkins (http). Mit einem Basic Authenticator habe ich es schon versucht.

Wisst Ihr wie das beim Jenkins mit dem Login läuft?
 
sascha-sphw

sascha-sphw

Der Jenkins login läuft mit API Token. Dazu musst Du Dich mit dem enstprechenden User beim Jenkins anmelden und unter Configure kannst Du dann API Token erstellen.

Im Build Job dann noch über Enable project-based security die entsprechenden Rechte setzen.

Edit: Ich habe das mit einer Software Registry (REST Service) gelöst, der Jenkins verbindet sich, nachdem er eine neuen Version gebaut hat, mit der Registry und registriert diese dort. Meine Page sowie der Updater des Programms verbinden sich dann nur noch mit der Registry. Somit kann ich später, für nicht Freie Software einen Auth Service anbinden, damit jeder Nutzer seine eigenen Zugansdaten bekommt.
 
Zuletzt bearbeitet:
P

PG_97

Zweierlei Fragen tun sich mir auf:
Einerseits muss ich den Token erstellen, dann überreiche ich diesen Token Jenkins. Was ich mich frage, wie überreiche ich diesen Token? Die zweite Frage, gibt es für die Token Erstellung und das überreichen dieses Token eine einfache Java - Methode ohne das ich mit Maven und Co. arbeiten muss?

Sorry für die Fragen, aber ich kenne mich weder mit Jenkins oder Authentifizierung in Java überhaupt nicht aus. Das einzige was ich hinbekommen habe ist die einfache Authentifizierung. Das ist halt mein erstes mal...
 
sascha-sphw

sascha-sphw

Was ich mich frage, wie überreiche ich diesen Token?
https://${UPDATE_USER}:${UPDATE_TOKEN}@${JENKINS_HOME}/${PATH_TO_ARTIFACT}

Die zweite Frage, gibt es für die Token Erstellung und das überreichen dieses Token eine einfache Java - Methode ohne das ich mit Maven und Co. arbeiten muss?
Die Token Erstellung geht nur manuell über die Jenkins GUI. Das Überreichen geht über die URL und die kannst Du aufrufen mit was immer Du möchtest. Aber ggf. verstehe ich die Frage falsch.
 
D

Dukel

Du kannst auch die Artifakte von Jenkins in ein Repo (entweder ein Fileshare, Web Dienst oder eine Applikation wie z.B. Nexus) nach erfolgtem Build legen und musst dann vom Update Manager nicht aufs Jenkins sondern auf das Repo zugreifen.
 
P

PG_97

Also ich kriege diesen Token von Jenkins, den muss ich ja in JWT packen. Gibt es in Java, ohne das ich Maven und Co. nutzen muss, eine Methode, die diesen Token in eine Jason Datei schreibt und diese übergibt? Das übergeben würde ich ja mit https://${UPDATE_USER}:${UPDATE_TOKEN}@${JENKINS_HOME}/${PATH_TO_ARTIFACT} machen.
 
sascha-sphw

sascha-sphw

Ein JWT / JSON brauchst Du eigentlich nicht (außer Euer Jenkins wurde dahingehend modifiziert). Einfach die Werte (${...}) in der URL ersetzen und gut.
 
L

LimDul

Das Token musst du einmal manuell aus Jenkins kopieren und irgendwo in deinem Programm als Konfiugrationsdatei oder sonstiges ablegen.

Es gibt keine Möglichkeit Jenkins zu fragen nach dem Token - das Token brauchst du um Jenkins überhaupt fragen zu könne.
 
P

PG_97

Ah, okay. Danke!
Wahrscheinlich werde ich das mit Verbindung über zweierlei Wege leiten müssen. Einerseits basic Autentifizierung und Jenkins Autentifizierung. Je nach ausgewählter Login-Methode nimmt dann das Programm bei der Authentifizierung den Token bzw. User und PW und dann der normale Download.

Bei der Jenkins Authentifizierung dann sagen, bei 403, nehme diese Zeichenkette und übergebe diesen an Jenkins mithilfe der URL und lade dann die Datei runter. Ich verstehe.... Demnach jetzt das ganze noch einbauen und dann sollte es funktionieren. Okay... Dann mal frisch ans Werk.
 
P

PG_97

Joar ginge auch. Muss ich mal schauen.
Wäre eine große Herausforderung halt....;)
 
mrBrown

mrBrown

Wahrscheinlich werde ich das mit Verbindung über zweierlei Wege leiten müssen. Einerseits basic Autentifizierung und Jenkins Autentifizierung. Je nach ausgewählter Login-Methode nimmt dann das Programm bei der Authentifizierung den Token bzw. User und PW und dann der normale Download.

Bei der Jenkins Authentifizierung dann sagen, bei 403, nehme diese Zeichenkette und übergebe diesen an Jenkins mithilfe der URL und lade dann die Datei runter. Ich verstehe.... Demnach jetzt das ganze noch einbauen und dann sollte es funktionieren. Okay... Dann mal frisch ans Werk.
Warum auf zwei Wegen?

Du musst einfach nur immer den Token nutzen, im Idealfall mit einem extra Nutzer im Jenkins, der keinerlei Rechte außer die zum Runterladen absolut nötigen besitzt.
 
P

PG_97

FTP Server mit Basic Authentifizierung und Jenkins mit ultra komplexer Methode.

Dafür brauchst du zweierlei Wege.
 
mrBrown

mrBrown

Ach so...du willst die Sachen aber nicht aus dem Jenkins runter und per FTP wieder irgendwo hochladen?

FTP Server mit Basic Authentifizierung und Jenkins mit ultra komplexer Methode.
Die Jenkins-Variante ist Basic Authentifizierung, nur dass das Passwort ein zufälliger Token statt dem Plaintext-Passwort des Nutzers ist.
 
P

PG_97

Nee, zwei Möglichkeiten zum Downloaden um dann in unserer Software hochzuladen, wo das Update verteilt und installiert wird.
 
Thema: 

Jenkins Login per Java Download Manager

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben