KDE4.DE

KDE4 Info Blog. Zusätzlich werden viele weitere Linux Themen behandelt

Sonar + SVN + Kerberos – svn: E170001: Negotiate

Erstmal möchte ich mich nun nach längerer, gesundheitsbedingter Pause, mal wieder melden, doch leider fehlte bisher das richtige Thema, nun habe ich eins :-).

Die Herausforderung bestand darin einen SonarQube Server ans laufen zu bekommen, der bestehende Projekte zu gefüttert bekommt. Dazu verwende ich den Kollegen Jenkins und entsprechend den SonarQube-Scanner. Das Subversion Repository was verwendet wird ist via Kerberos geschützt und greift im Hintergrund zur Authentifizierung auf ein Windows ActiveDirectory zu.

Ich habe im SonarQube das SCM SVN Plugin installiert  und entsprechend mit credentials ausgestattet habe aber permanent folgenden Fehler bekommen

java.lang.IllegalStateException: Error when executing blame for file
....
Caused by: org.tmatesoft.svn.core.SVNAuthenticationException: svn: E170001: Negotiate authentication failed: 'No valid credentials provided'

Abhilfe schaffte dann im Jenkins selbst den Sonar-Scanner Task beim Parameter 
JVM Options = -Dsvnkit.http.methods=Basic,Digest,Negotiate,NTLM 

Auszustatten, denn von Hause aus braucht das SvnKit welches im Sonar Plugin verwendet wird die Basic Authentication, so teilen wir der JVM mit, dass für SVN Kit auch Negotiate zugelassen ist, dann klappt es auch mit der Authentifizierung.

Klassenkonstrukt aus einem XSD zaubern

Ja, anhand der Überschrift werden die Java Entwickler sagen, klar haben wir, geht doch schon lange und funktioniert super. Aber was ist mit PHP. Bisher war mir keine Möglichkeit bekannt, wie ich das ganze auch in PHP hinbekomme. Einen Umfangreichen Wandler / Interpreter zu schreiben schien mir zu aufwändig und ich habe mich im Netz auf die Suche gemacht. Nun habe ich folgende spannende OpenSource Projekt gefunden, welches dies ermöglicht pibx.de. Es nennt sich PiBX XML Bindings für PHP und funktioniert, trotz frühem Entwicklungsstadium super. Auf jeden Fall werde ich die weiteren Entwicklungen verfolgen.

Was denkt ihr darüber, oder kennt ihr Andere Werkzeuge die so etwas für / oder in PHP erledigen?