2016-04-18 19 views
0

Ich arbeite für einen Kunden. Dieser Client verwendet Hudson für die fortlaufende Integration und möchte Benutzer über den Standard-CAS (Central Authentication Service) authentifizieren. Also habe ich versucht, ein Plugin zu entwickeln, das zu Hudson hinzugefügt werden kann, um CAS einzurichten. Ich begann ein Plugin aus dem bestehenden Plugin "cas1" zu entwickeln. Es ist das erste Mal, dass ich ein Plugin für Hudson entwickelt habe. Und ich habe eine Java-Klasse erstellt, die SecurityRealm erweitert. Wenn ich Hudson starte und zur Hudson-Verwaltung gehe -> Sicherheit verwalten, wähle ich die CAS-Sicherheit (mein neues Plugin) und gebe die CAS-URL, die Hudson-HostName-URL ein und speichere sie. Der Registrierungslink wird oben rechts auf der Seite angezeigt.Hudson Central Authentication Service

Ich möchte die Seite zur CAS-Authentifizierungsseite umleiten, wenn der Benutzer auf den Registrierungslink klickt.

Wie kann ich das tun?

Ich habe versucht, den folgenden HTML-Code zu ändern, um die Anzeige des grundlegenden Authentifizierungsdialogfelds von Hudson zu vermeiden.

<a onclick="showLoginDialog(); return false;" href="/login?from=%2F"> 

Antwort

0

konnte ich Hudson Authentifizierung an der CAS-Authentifizierung Seite, das Überschreiben die Methode "getLoginUrl()" umleiten:

@Override 
public String getLoginUrl() { 
    return casServerUrl; 
} 

und das Hinzufügen von meiner eigenen "loginLink.jelly" Datei im Paket „Ressourcen/myCasSecurityRealm ". Und in dieser Datei ersetzt ich den Link:

<a style="color:inherit" href="${rootURL}/${app.securityRealm.loginUrl}?from=${from}"><b>${%login}</b></a> 

von

<a style="color:inherit" href="${app.securityRealm.loginUrl}"><b>${%login}</b></a> 

Nun, wenn ich auf dem Anmelde-Link klicken, meine CAS-Authentifizierung Seite angezeigt wird.