Neuigkeiten von trion.
Immer gut informiert.

Artikel in der Kategorie 'java'

Spring Boot API Lokalisierung 1 Nov

Geschrieben von Thomas Kruse am 1. November 2024

Typischerweise sind APIs zur Verarbeitung durch andere Systeme gedacht. Wenn die Ausgaben jedoch für Menschen bestimmt sind, kann es sinnvoll sein, diese zu lokalisieren.
Das Spring Framework bringt dazu bereits Bausteine mit, ebenso Spring WebMVC für die Web bzw. API-Schicht. Am Beispiel einer Spring Boot Anwendung wird der konkrete Einsatz illustriert.

OAuth 2.0 Login: Keycloak Rollen auf Spring Security Authorities mappen 23 Okt

Geschrieben von Leonard Wagner am 23. Oktober 2024

In einem vorherigen Artikel haben wir uns damit befasst, wie man Keycloak Rollen als Spring Security Authorities verfügbar macht, wenn Spring Boot als Resource Server agiert. In diesem Folgebeitrag betrachten wir nun den Fall, in dem unsere Spring Boot Anwendung die Rolle eines OAuth 2.0 Client einnimmt und einen OAuth 2.0 Login mit Keycloak implementiert. Auch hier wollen wir die Rollen aus Keycloak korrekt mappen.

Spring MockMvc Tests mit AssertJ 14 Okt

Geschrieben von Leonard Wagner am 14. Oktober 2024

Spring Framework 6.2 bzw. Spring Boot 3.4 bringt eine interessante Neuerung für Entwickler, die ihre Unit- und Integrationstests mit AssertJ schreiben: MockMvc Tests können nun auch mit AssertJ formuliert werden (GitHub Issue). Bisher musste für Controller-Tests mit MockMvc auf die Hamcrest-Syntax zurückgegriffen werden, was zu uneinheitlichen Test-Code führen konnte. Mit dem Release von Spring Boot 3.4 im November 2024 kann die vertraute AssertJ assertThat() API auch in Verbindung mit MockMvc verwendet werden, was das Testen von Web-Controllern eleganter und konsistenter macht. In diesem Artikel zeigen wir, welche Anpassungen am Code notwendig sind, um diese neue Möglichkeit nutzen zu können.

Datenbankdokumentation in Spring Boot mit Schemacrawler 5 Aug

Geschrieben von Thomas Kruse am 5. August 2024

Dokumentation ist ein Thema, dass gerne hinten angestellt wird.
Quasi "wenn noch Zeit ist". Vergleichbar mit Tests wird Dokumentation von manchen Personen als schlecht investierte Zeit angesehen. Erschwerend kommt hinzu, dass die Pflege aufwendig ist: Wird die Software weiterentwickelt, so müssen oft auch Tests und Dokumentation nachgezogen werden.

Wir haben gute Erfahrungen damit gemacht, Dokumentation - wo möglich - zu generieren. Dabei kann sowohl der Java Quellcode als Quelle dienen, als auch Ergebnisse von automatisiert ausgeführten Tests.
Auf diese Weise kann die Dokumentation nah am Quellcode mitgepflegt werden, die Wahrscheinlichkeit sinkt, dass dies nicht bedacht oder vergessen wird.

In diesem Beitrag geht es darum, auch die Dokumentation der verwendeten Datenbankschemata zu dokumentieren. Dazu werden die Werkzeuge Testcontainers, Schemacrawler und JUnit miteinander verknüpft.

OAuth 2.0 Resource Server: Keycloak Rollen auf Spring Security Authorities mappen 15 Jul

Geschrieben von Leonard Wagner am 15. Juli 2024

In vielen modernen Anwendungen nutzen wir Keycloak zur Authentifizierung für den Zugriff auf Spring Boot Anwendungen. Dabei werden Benutzer und ihre Rollen in Keycloak gespeichert bzw. von Keycloak bereitgestellt. In einer Spring-Anwendung möchten wir diese Rollen nun nutzen, um den Zugriff auf Ressourcen zu autorisieren. In einem weiteren Blogpost betrachten wir Fall in dem unsere Anwendung als OAuth 2.0 Client agiert und einen OAuth 2.0 Login implementiert.

Java Magazin Schwerpunkt: Event-Sourcing, MQTT, Kubernetes und Angular 12 Jul

Geschrieben von Thomas Kruse am 12. Juli 2024

Fullstack in modern - von Offlinefähigkeit bis hin zu Echtzeitanwendungen. Gemeinsam mit dem Java Magazin haben wir einen Artikelschwerpunkt entwickelt, in dem wir im Rahmen einer Beispielanwendung einige der Technologien vorstellen, mit denen wir auch in Kundenprojekten Architekturanforderungen umsetzen.

Dabei nutzen wir für die Beispielanwendung MQTT als Messagingsystem um Events bis in das browserbasierte Frontend auf Basis von Angular als ein Kommunikationsweg nutzen.

Als Sonderdruck ist der Schwerpunkt im PDF Format als Download am Ende von diesem Beitrag zu finden.

Method Security in Spring: User für asynchrone und zeitgesteuerte Aufgaben 8 Jul

Geschrieben von Thomas Kruse am 8. Juli 2024

Mit Spring Security können unter anderem Webanwendungen (Spring WebMVC) auf einfache und flexible Weise abgesichert werden. Dabei ist der typische Weg über Security-Filter-Chains die Webschicht von Spring WebMVC mit Spring Security abzusichern. Doch reicht das aus?
Diese rhetorische Frage lässt sich mit vielleicht beantworten: Gibt es keine Programmierfehler oder Logikfehler, so kann das bereits ausreichen. Denn erreicht kein Request unberechtigt die Controller-Schicht, dann kann nichts passieren.

Doch in Zeiten zunehmender Cyberbedrohungen sollte keine Anwendung lediglich durch eine Schicht gesichert werden. Verteidigung in der Tiefe kann dank Spring Security leichtgewichtig mit Method Security umsetzen. Eine deutliche Verbesserung.

In unserem letzten Spring Security Training kam die Frage auf, wie sich dies mit periodischen Aufgaben innerhalb der Spring Anwendung kombinieren lässt. Das soll als Anlass dienen, sowohl periodische als auch asynchrone Ausführung, z.B. durch Message-Queue Nachrichten in Kombination mit Method Security darzustellen.

Schwerpunkt im Java Magazin 25 Mär

Geschrieben von Stefan Reuter am 25. März 2024

In einer Welt, in der technologische Innovationen das Tempo vorgeben, ist es entscheidend, stets auf dem neuesten Stand zu bleiben und aus erster Hand von den Besten zu lernen. Diesen Monat haben wir bei trion einen besonderen Grund zum Feiern: Drei unserer Top-Experten, Thomas Kruse, Karsten Sitterberg und Stefan Reuter, haben im Java Magazin einen bemerkenswerten Schwerpunkt gesetzt. Ihre Beiträge reflektieren nicht nur ihr tiefgreifendes Verständnis für moderne Softwareentwicklung, sondern bieten auch praxisnahe Lösungen für aktuelle und zukünftige Herausforderungen.

Trion auf der JAX 2023 in Mainz 6 Apr

Geschrieben von Sophie Beckmann am 6. April 2023

Die Trion GmbH nimmt regelmäßig an der JAX-Konferenz teil, einer der größten Konferenzen für Java-Entwickler und IT-Profis in Europa. Auf der JAX und W-JAX präsentiert Trion seine neuesten Technologien und Lösungen, darunter auch Cloud-Lösungen...

Cassandra Schema Migration mit Spring Boot 2 Jun

Geschrieben von Thomas Kruse am 2. Juni 2022

Cassandra ist eine noSQL Datenbank, die insbesondere im Kontext großer Datenmengen bei sehr hoher Verfügbarkeit eingesetzt wird. Dabei ist bei Cassandra entscheidend, dass das Schema passend zu den jeweils zu unterstützenden Anwendungsfällen konzipiert ist: Nur so wird die hohe Geschwindigkeit von Cassandra und die Verfügbarkeit sicher gestellt.

Doch Anforderungen können sich ändern, und damit muss auch die Anwendung angepasst werden. Das kann sich auch auf die Datenstrukturen in Cassandra auswirken.
Ein Weg, damit umzugehen, sind Cassandra Materialized Views oder ein kompletter Datenexport als CSV und Re-Import. Bei den für Cassandra typischen großen Datenmengen ist das selten praktikabel.

Unabhängig davon, um man sehr kleine Datenmengen in Cassandra vorhält, zum Beispiel zur Entwicklungszeit, oder eine spezielle Migrationsanwendung für den produktiven Einsatz mit Cassandra erstellt: Die Migrationen sollten sich einfach verwalten und in der Versionskontrolle ablegen lassen.

Antipatterns bei der Android-Entwicklung 18 Apr

Geschrieben von Till Schulte am 18. April 2022

Android-Entwicklung kommt mit seinen Eigenheiten, spezifischen Dos and Don’ts einher. Dieser Artikel fasst einige praktische Entwickler Erfahrungen zusammen. Man muss ja nun nicht alle Fehler selber machen 😉.

Eine "responsive" App entwickeln

Cassandra 4 mit Testcontainers in Spring Boot 1 Feb

Geschrieben von Thomas Kruse am 1. Februar 2022

Cassandra 4 ist ein lang erwartetes Release der Cassandra Datenbank. Dabei hat sich nicht nur einiges in der Datenbank selbst geändert, sondern auch die Java Libraries für den Zugriff haben einige API Änderungen erfahren.
In dem Zuge sind viele andere Projekte aktuell noch nicht soweit, gute Unterstützung für Cassandra 4 zu bieten. Spring Boot bzw. Spring Data Cassandra ist jedoch bereits soweit, dass aktuelle Treiber genutzt werden. Dort stellt sich die Frage, wie das Thema Unit Test bzw. Integrationstest mit Cassandra 4 umgesetzt werden kann.

Zur Desktop Version des Artikels