How do I get the project running? ‐ Entwicklerdokumentation - IU-Internationale-Hochschule-Augsburg/fallstudie-thema-2-online-umfragesystem GitHub Wiki
Gliederung:
- Klonen des Projekts
- Projekt auschecken
- Gradle einrichten
- Eigene Encryption mit Jasypt durchführen
- Datenbank in die IDE einbinden
Klonen des Projekts:
- Zuerst die URL in HTTPS im github-Repository kopieren
- Daraufhin ggf. noch einen neuen Ordner erstellen und im Terminal mit cd [Ordner] in den entsprechenden Ordner gehen, wo das Projekt dann schlussendlich liegen soll
- Dort dann den Command "git clone [github-Link]" ausführen
- Das Projekt sollte nun erfolgreich geklont sein
Projekt auschecken:
- Zuerst die IDE öffnen. Bei mir ist es standardmäßig IntelliJ
- Nun auf Open Project klicken und den Ordner heraussuchen, in den man das Projekt geklont hat
- Daraufhin das Projekt auf der Ordnerebene fallstudie-thema-2-online-umfragesystem öffnen
- In IntelliJ wird man dann gefragt, ob man dem Projekt vertrauen kann; dort dann auf Trust Project klicken
- Nun unten rechts (in der alten Version) und oben links (in der neueren Version) auf das Git-Symbol klicken und den entsprechenden Branch (normalerweise main, bei mir aktuell create-cloud-database) mit einem Klick auf den Branch und dann auf Checkout auschecken
Gradle einrichten: ggf. muss man ab und an Gradle neu laden/aktualisieren
- Nun das Projekt noch einmal schließen und auf einer tieferen Ebene öffnen: fallstudie-thema-2-online-umfragesystem => MVP => survey-application (Oft erscheint da auch noch ein schwarzes Code-Symbol)
- Dann erscheint ein Fenster Open or Import Project. Die Auswahlmöglichkeiten sind: Open as Gradle Project oder as Maven Project. Bitte einmal Gradle Project auswählen
- Daraufhin die Settings von IntelliJ öffnen und in der Suchleiste nach Gradle suchen. Dort coretto-17 hinzufügen (ggf. vorher downloaden) und die Auswahl speichern.
- Nun bitte die Run Configurations öffnen:
- ...und über das +-Symbol eine neue Run Configuration für Spring Boot hinzufügen:
- Die Configuration sollte dann vorerst wie folgt aussehen:
-
Also noch einmal Java 17 auswählen, -cp survey-application.main auswählen und noch folgenden Pfad für die ausführbare Klasse angeben: com.surveymaster.SurveyApplication
-
Dann die Eingaben speichern und die Run Configurations wieder schließen
Eigene Encryption mit Jasypt durchführen: Die eckigen Klammern "[ ]" müssen ebenfalls mit gelöscht/ausgetauscht werden
- Zuerst muss das jasypt.jar file online unter folgendem Link heruntergeladen werden: https://mvnrepository.com/artifact/org.jasypt/jasypt/1.9.3
- Ist die Webseite aufgerufen, so klickt an dann unter Files auf jar:
- Nun geht man mit dem Command cd [Downloads] in der Kommandozeile in den Ordner, wo man das .jar-file gespeichert hat (Bei mir ist es Downloads)
- Dann führt man einen weiteren Command wie folgt aus: java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI "input=[plain password/data to be encrypted]" "password=[secret key used in encrypting data]" "algorithm=PBEWITHHMACSHA512ANDAES_256" "ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator"
- Das sollte dann der Output sein:
- Der lange Schlüssel unter OUTPUT muss dann kopiert werden und mit einem ENC() in die Datei application.yaml eingefügt werden. Dabei muss der bisherige Schlüssel herausgenommen werden, denn dieser ist nur für mich:
Zwei verschiedene Möglichkeiten, das zweite, festgelegte Passwort ebenfalls nicht zu veröffentlichen:
Zum Kopieren der Commands:
- -Djasypt.encryptor.password=[festgelegtes Passwort aus der Kommandozeile]
Sources für die Encryption:
Obidiagha, S. (2020). Data Encryption on Spring Boot application.properties file. https://stanleyobi.medium.com/data-encryption-on-spring-boot-application-properties-file-bf6ecb644bfe.
Techie, J. (2021). Spring Boot Password Encryption using Jasypt. https://medium.com/@javatechie/spring-boot-password-encryption-using-jasypt-e92eed7343ab.
Datenbank in die IDE einbinden:
- Rechts am seitlichen Rand in IntelliJ auf das Database-Symbol klicken
- Dann über einen Klick auf das +-Symbol => Data Source => PostgreSQL eine neue Data Source anlegen
- Daraufhin bitte einige Angaben zur Datenbank und den entsprechenden Anmeldedaten tätigen. Diese sind auch hier zu finden: https://github.com/IU-Internationale-Hochschule-Augsburg/fallstudie-thema-2-online-umfragesystem/wiki
- Nun ggf. noch fehlende Driver installieren, wenn IntelliJ das mit einem Download missing driver files anbietet
- Dann auf Test Connection klicken. Wenn dies erfolgreich war, dann auf Apply oder OK klicken und die Datenbank ist fertig eingebunden