code it

Martins Tech Blog

StyleCop Upgrade Dialog verhindern

StyleCop ist ein wirklich gutes Tool zur Unterstützung der Durchsetzung von Coding Guidelines. Mit Version 4.5 ist es auch nicht mehr notwendig zusätzlicher AddOns zu installieren, damit es sich automatisch in Resharper integriert - das übernimmt alles die Installationsroutine von StyleCop.
 
Seit der Installation beglückt mich StyleCop nun aber jeden Morgen mit der freudigen Nachricht, dass es wieder eine neue Version zum Herunterladen gibt, die ich doch bitte installieren soll. Vielleicht waren die Releasezyklen von StyleCop auch bisher so kurz und ich habe es nur nicht gemerkt, weil es dieses Check-Feature bisher nicht gab. Auf jeden Fall kann dieser Dialog ganz schön nervig sein, da er wenn man ihn denn mit Nein beantwortet, bei jedem Start von Visual Studio wieder kommt und es keine offensichtliche Möglichkeit gibt, diesen zu unterbinden.
 
Für das Problem gibt es zwei Lösungen:
Die erste Lösung setzt voraus, dass man Resharper installiert. In diesem Fall gibt es in den Optionen von Resharper unter dem Punkt Tools/StyleCop die Möglichkeit, einzustellen, ob und wann StyleCop nach Upgrades suchen soll. Im Standard ist hier "Every Time Visual Studio starts" aktiviert.
Die zweite Lösung ist das manuelle Setzen der Einstellungen in der Registry. Die Einstellungen finden sich dort unter HKEY_CURRENT_USER\Software\CodePlex\StyleCop.
 
Wenn man der Diskussion auf Codeplex und der dort genannten Releaseplanung Glauben schenken darf, wird es in Version 5.0 von Stylecop auch eine Möglichkeit geben, diese Einstellung direkt über einen von StyleCop mitgelieferten Konfigurationsdialog zu editieren (für all die Anwender, die kein Resharper haben).
Sie benötigen Unterstützung bei der Umsetzung Ihrer Projekte?
Ich bin käuflich. Nehmen Sie mit mir Kontakt auf.

Kommentar schreiben

Loading

SSLPeerUnverifiedException in Verbindung mit Android und IIS8

code it

Martins Tech Blog

SSLPeerUnverifiedException in Verbindung mit Android und IIS8

Das Backend für meine App sollt nur über eine https-Verbindung erreichbar sein. Alles kein Problem dachte ich mir, schnell ein SSL-Zertifikat besorgt und dieses der https-Bindung der Webanwendung zugewiesen. Alles kein Problem und auch der Browser zeigt das kleine grüne Schloss an und der Zertifizierungspfad war ok.

Um so überraschter war ich, dass meine Android App nun jeden Request mit einer Exception quittierte: 
javax.net.ssl.SSLPeerUnverifiedException (SSL peer not authenticated)

Laut Dokumentation passiert das, wenn man ein selbst signiertes Zertifikat verwendet und die Tipps im Web sind sehr breit gestreut - unter anderem "stelle den HttpClient doch so ein, dass er allen Zertifikaten vertraut". Das hilft bei selbst signierten Zertifikaten für eine Demo sicher, für eine echte App mit Kundendaten verwende ich diesen Tipp lieber nicht.

Was war nun aber Ursache für das Problem? Ich hatte im IIS in der https-Bindung den Haken bei "Require Server Name Indication (SNI)" gesetzt. Diese Einstellung sorgt eigentlich dafür, dass sich mehrere verschlüsselt abrufbare Websites unterschiedlicher Domains einen Server mit nur einer IP Adresse teilen können. Allerdings können ältere Browser damit Probleme haben. Offenbar zählt der HttpClient in Android / Java dazu, denn kaum hatte ich den Haken entfernt, ließ sich problemlos auf meine REST-API über HTTPS zugreifen.

Update 14.08.2015
Nach einiger Recherche habe ich nun herausgefunden, dass die neueren HttpClients durchaus in der Lage sind, mit SNI umzugehen. In der App in der das Problem auftrat hatte ich Spring for Android in der Version 1 verwendet. Der HttpClient dort hat das Problem mit SNI. Die neuere Version 2 von Spring for Android verwendet einen HttpClient, der problemlos damit umgehen kann.
Sie benötigen Unterstützung bei der Umsetzung Ihrer Projekte?
Ich bin käuflich. Nehmen Sie mit mir Kontakt auf.

Kommentar schreiben

Loading