a dev's blog

Some thoughts about thoughts.

User-Impersonation mit Spring-Boot und Spring-Security

2016-02-21 Development Java Spring
Wenn man sich in andere rein versetzt… … dann kann das Einem unter Umständen das Leben erleichtern. Beispielweise wenn sich User X bei der eigenen Hotline meldet um einen Fehler in der Anwendung zu reporten. Vielleicht ist es aber auch gar kein Fehler, sondern ein User braucht Unterstützung bei irgendeinem Prozess, der von der Applikation abgedeckt wird. In beiden Fällen ist es meiner Erfahrung nach enorm hilfreich, wenn man selbst die Rolle des Users annehmen kann - und dies ohne zuvor sein Passwort zurücksetzen zu müssen, damit man sich selbst einen Login verschafft. Weiterlesen

PID Generation mit Spring-Boot

2016-02-19 Development Java Spring
Ich finde dich. Ich finde deine PID und dann bin ich dein Meister Die PID. Dieses nützliche kleine Ding. Man benötigt sie beispielsweise für Init-Skripte oder das Monitoring der Applikation. Aber wie finde ich die PID von einem Prozess? Klar… ganz einfach so: Nicht ernst meinen bitte, die bessere Lösung findet sich unten. ;) foo@bar:~ pgrep java 17889 30554 30555 Hmm…. Hilft nur bedingt gut. Versuchen wir es anders: Weiterlesen

Das funktionale execute-around-pattern mit Java 8

2016-02-17 Development Java
try… catch. catch.. catch…. catch. finally! Na? Weiß jeder was ich meine? Ich gehe einfach mal von einer tief-seufzenden und bejahenden Antwort aus. ;) Unser geliebtes Java bietet ein wirklich großartiges Exception-Handling. Das muss man ihm einfach zugestehen. Allerdings ist es leider auch so, dass wir als Java-Entwickler auch immer wieder den gleichen Code schreiben. Ein klassisches - allerdings wirklich das Paradebeispiel mit JBDC-Connections - ist folgendes: public void executeSql(Connection conn, String sql) { PreparedStatement statement = null; try { statement = conn. Weiterlesen

Ein eigener Maven-Quickstart-Archetype mit Java 8

2016-02-14 Development Java Maven
Gott sei dank nicht immer wieder Handarbeit Als Java-Entwickler hat man ja dank des großen Maven Universums einen ganzen Haufen an netten Tools, die einem während der gesamten Laufzeit des Projektes unterstützen. Aber was mich persönlich immer wieder nervt ist die Tatsache, dass der normale Maven-Quickstart in einem alten Java 7 Kleid und einem total veralteten JUnit 3 daher kommt. Der perfekte Guide Auf der Maven-Projektseite findet man bereits einen wahnsinnig gut gelungen Guide, dem man eigentlich nichts mehr hinfügen kann. Weiterlesen

Danke Jackson. Danke, dass es dich gibt!

2016-02-13 Development Java
Man kann CSV-Dateien lesen oder man kann sie lesen lassen Ersteres war lange der Weg, den ich gegangen bin wenn es darauf ankam. Klar wurden Werkzeuge wie apache-commons-csv herangezogen. Aber alles in allem hat es sich jedes mal aufs neue sehr - na wie soll ich sagen - altmodisch und mit angezogener Handbremse angezogen angefühlt. Zufällig war ich neulich auf der Projektseite von Jackson unterwegs und da sind mir ein paar ziemlich coole Databindings über den Weg gelaufen. Weiterlesen

Wissen was der User macht. MDC Logging mit Spring-Boot.

2016-02-11 Development Java Spring
Eine Logmeldung ohne User-Informationen ist nichts Wert… … aber wer will schon bei jeder Zeile den Usernamen übergeben? Was ist schöner? LOG.info("foo {}", username) oder LOG.info("foo")? Und welche Lösung ist konsequenter? Und wie suggestiv sind diese Fragen? ;) Ich habe die Erfahrung gemacht, dass es in vielen Situationen sinnvoll ist die Log-Meldungen durch Context-Informationen anzureichern, die den aktuellen Prozess besser darstellen. Eine Grundlegende Funktion, die ich in jeder Webapplikation sehe ist ein Filter, der - falls ein User eingeloggt ist - dafür sorgt, dass der Username in jeder Logmeldung auftaucht. Weiterlesen

Reverse Proxy capabilities within your Spring-Boot application

2016-02-10 Development Java Spring
Kein Apache httpd, kein nginx, nur deine Spring-Boot-Anwendung Auf zum nächsten Artikel im Spring-Boot Umfeld. Heute schauen wir uns an, wie wir andere Dienste, die eigentlich unter einer anderen Adresse erreichbar sind, nativ über unsere Applikation erreichbar machen. Als Beispiel soll die Integration einer Elasticsearch-Instanz dienen. Elasticsearch - um kurz einen Ausflug zu unternehmen - ist eine äußerst skalierbare Volltext-Suche mit der großartigen Eigenschaft, dass sie über ein REST-Interface angesprochen werden kann. Weiterlesen
Ältere Beiträge Neuere Beiträge