Secrets - Geheimnisse sicher hinterlegen

Dieses Beispiel zeigt, wie man Geheimnisse in einer Java Applikation sicher hinterlegen kann.

Voraussetzung

  • Du weisst, was mit Geheimnissen gemeint ist.
  • Du weisst was Umgebungsvariablen sind.
  • Du weisst was Maven ist und kannst Maven-Projekte aufsetzen.
  • Du weisst wie man bei Maven ein Paket hinzufügt.

Vorbereitungsarbeiten

Neu bei it-ninja?
Die Anleitung enthält ein paar Befehle und Fachbegriffe, welche dir wahrscheinlich noch nichts sagen. Mach dir deswegen keine Sorgen. In den kommenden Modulen werden wir dir alles Schritt für Schritt erklären und schon bald bist auch du ein it-ninja.

Um die folgenden Aufgaben erfolgreich umzusetzen musst du folgende Schritte erledigen:

  1. Beim ersten Mal:

    1. IntelliJ IDEA installieren -> IntelliJ IDEA einrichten
    2. Git-Repository einrichten -> Persönliches Git-Repository
  2. Öffne eine CMD-Shell und wechsle ins Verzeichnis von deinem Git-Repository

  3. Stelle sicher, dass alle Dateien im Git-Repository commited sind. Mit git status kannst du dir eine Übersicht verschaffen:

    1
    
    git status
    
  4. Erstelle einen neuen Branch für die Übung:

    1
    
    git checkout -b "templates/it-ninja_01_Tools_05_secrets_01_SimpleExample"
    

    Du kannst auch einen kürzeren Namen für den Branch wählen. Wir nutzen templates am Anfang des Branches für Branches, welche den original Source-Code von den Übungen enthalten.

  5. Lade den Source-Code zu den Übungen herunter und entpacke den Inhalt im lokalen Repository ins Root-Verzeichnis: [[itninja_localrepo|C:\\Users\\u123456\\repos.local\\it-ninjas-lab]]). Den Source-Code kannst du hier herunterladen: download | online

  6. Commite den original Source-Code, damit er sicher im Repository ist:

    1
    2
    
    git add .
    git commit -m "Initial version from it-ninja"
    
  7. Erstelle einen neuen Branch um deine Lösung zu implementieren:

    1
    
    git checkout -b "labs/it-ninja_01_Tools_05_secrets_01_SimpleExample"
    

    Auch hier kannst Du einen kürzeren Namen für den Branch wählen. Nutze labs am Anfang des Branches für Branches, welche Code von dir enthalten.

    Pro-Tip: Du kannst jederzeit einen weitere Branch machen, z.B. wenn du mal etwas ausprobieren willst. Alternativ kannst du auch in der History einen alten Stand wiederherstellen, was aber weniger flexibel ist.

  8. Starte IntelliJ und öffne mit File/Open das Verzeichnis mit dem Source-Code. Wenn du alles korrekt gemacht hast solltest du den Code in deinem Benutzerverzeichnis finden:

Nun bist du bereit, die untenstehenden Aufgaben zu lösen.

Übung

Das Beispiel zeigt, wie ein Projekt korrekt aufgesetzt wird, damit es sicher in einem Git-Repository gesichert werden kann.

Schaue dir die Datei .env.template an und folge den Anweisungen dort. Ersetze dabei das_geheimnis mit mein_geheimnis.

Passe das Maven-Konfigurationsfile (pom.xml) an:

1
2
3
4
5
6

<dependency>
<groupId>io.github.cdimascio</groupId>
<artifactId>dotenv-java</artifactId>
<version>3.0.0</version>
</dependency>

Wenn Du alles korrekt erledigt hast, sollte der Unittest erfolgreich durchlaufen:

1
mvn test
it-ninja tip
Wenn du den Unittest anschaust, wirst du feststellen, dass auch dort nirgends das Geheimnis im Klartext steht. Um zu testen, ob du das Geheimnis korrekt konfiguriert hast vergleichen wir es mit einem Hash. Der Hash kann nicht zurück in einen Klartext verwandelt werden, aber mit der Funktion match kann man feststellen, ob ein Wert den gleich Hash erzeugt und so verifizieren, ob der Wert korrekt ist.

Zuletzt geändert July 1, 2025: Format by prettier (32788ea34)