Das Corporate Booking Tool (CBT) ist eine Webanwendung, die
es Firmenkunden einfacher macht Hotelreservierungen zu vorher mit
Hotels vereinbarten Vorzugsraten zu buchen.
Das Front-End musste ersetzt werden, da die Sicherheitsrichtlinien
von Sabre eine Content-Security-Policy vorschreiben, welche Inline-
JavaScript und Inline-Styles verbietet. Bis zu diesem Zeitpunkt
wurden Scripte direkt in die JSP Templates geschrieben, und
mitunter direkt mit Variablen aus den Templates gefüllt, welches
an vielen Stellen Cross-Site-Scripting ermöglichte. Um diese
Schwachstellen zu beheben habe ich sämtliche Inline-Scripte
in eigene ES-Modul-Dateien extrahiert, welche mit esbuild in
einzelne, für jede einzelne Seite angepasste und minifizierte Scripte
kompiliert wurden. Ich nutzte die Gelegenheit um die Scripte auf
Typescript um zu ziehen. Des weiteren entwarf und implementierte
ich einen Client für Tabellenansichten. Dieser Client ist in der Lage
Tabellendaten beim Back-End mit mehreren Filtern, Sortierungen
und Paging an zu fragen. Dies geschieht auf eine typsichere Art und
Weise, welche keine unbekannten Felder, Filter, Sortierungen usw.
zulässt und SQL-Injection vermeidet. Zur Umsetzung nutzte ich
Teilweise Widgets/Componenten des firmeneigenen UI-Frameworks.
Dieses ist in JavaScript geschrieben, welches mich dazu veranlasste
Typescript-Deklarationen für dessen ES-Module zu schreiben und
den Erstellern zur Verfügung zu stellen.
Aufgaben
? Einrichten einer Build-Pipeline für das Front-End
? Neuentwurf und Implementierung des Front-End codes
? Umzug der HTML-Templating Lösung von JSP nach Thymeleaf
Für eine amerikanische Firma im
Hospitality-EDV Bereich. Sabre Hospitality Solutions ist dabei nur
ein kleinerer Teil der Gesamtfirma Sabre, welche ihren Ursprung
und heutigen Geschäftsbereich in der Datenverarbeitung der
Flugindustrie hat.