sidion labor

Entwickler Blog

WebAuthn und Spring Boot

Immer wieder kommt es zu Sicherheitslücken bei denen Passwörter entwendet und bekannt werden. Eine Seite, auf der man prüfen kann, ob die eigenen Passwörter schon mal in solch einer Sicherheitslücke aufgetaucht sind, ist „have i been pwned“ [4]. Dazu kommt, dass Passwörter oft mehrfach verwendet werden, so dass eine Sicherheitslücke auf einer unbedeutenden Seite dazu führen kann, dass auch das Passwort fürs Online-Banking bekannt wird. Physische Sicherheitsschlüssel schaffen hier Abhilfe, da für jede Webseite individuelle Zugangsdaten erzeugt werden, die nie diesen Sicherheitsschlüssel verlassen. Diese Funktion in eine Webseite einzubauen, ist genauso einfach wie eine traditionelle Benutzerregistrierung zu implementieren.

NGINX aus der Sicht eines Softwareentwicklers

Bei den reinen Webservern / Reverse-Proxys gibt es 2 Platzhirsche. Auf der einen Seite den Apache HTTP Server und auf der anderen Seite den NGINX. Letzteren möchte ich in diesem Artikel etwas unter die Lupe nehmen. Mir ist selbstverständlich bewusst, dass es schon einige NGINX Tutorials gibt. Deshalb werde ich hier dafür auch nicht darauf eingehen, dass man z.B. mittels 'nginx -t' seine Konfiguration checken lassen kann und es soll auch keine Schritt-für-Schritt Anleitung sein. Allerdings werde ich versuchen, es durch die "Entwickler Brille" für meine Entwickler Kollegen so einfach wie möglich zu beschreiben und nicht zu tief in das "Ops" von "DevOps" einzutauchen. Es gibt für uns Entwickler ein paar nützliche Dinge - vor allem in Verbindung mit Docker, die ich wirklich für erwähnenswert halte. Ein Projekt mit meinen Azubis ist letztendlich ausschlaggebender Grund dafür, weshalb ich mich über den Jahreswechsel mit NGINX auseinandersetzte. Außerdem habe ich für den Artikel ein Code-Repository erstellt, welches ich unter https://github.com/m1well/nginx-playground bereitstelle. In meinem Repo sind minimale Konfigurationen für einen Reverse-Proxy, Load-Balancer und Rate-Limiter vorhanden. Getestet werden die Funktionalitäten mit 3 weiteren NGINX Containern, welche als Dummy Services dienen.

Quarkus 2 versus Quarkus 1

Vor ein paar Tage hat die Quarkus Gemeinschaft eine neue Hauptversion veröffentlicht – Quarkus 2.

Quarkus 1 ist ausgezeichnet. Nicht nur wegen der Features die es beinhaltet, sondern hauptsächlich wegen der Tatsache, wie einfach es ist dadurch Software zu entwickeln. Jetzt kommt Quarkus 2 und bringt die Entwicklererfahrung nochmal auf ein anderes Level.

Streaming mit Apache Kafka @JAX 2021

Das erste Mal vor Kamera...Thomas Müller berichtet von seinem ersten Remote-Vortrag zum Thema "Streaming mit Apache Kafka", den er zusammen mit seinem Kollegen Winfried Bittner auf der JAX 2021 gehalten hat.

Algebraic Data Types in Java

Bei der Modellierung von Businessobjekten im Domain Driven Design kommt es vor, dass eine einfache Aufzählung (Enum) wie sie in Java standardmäßig vorhanden ist nicht ausreichend ist, da sich die einzelnen Ausprägungen unterscheiden bzw. verschiedene Eigenschaften haben.