
Ein ernsthaft fehlerhaftes Java -Projekt zum Unterrichten von Owasp Top 10 - 2017 -Konzepten.
DO NOT USE ANY PART OF THIS CODE IN PRODUCTION.
Mit diesen Anweisungen werden Sie für die Entwicklung und Testzwecke eine Kopie des Projekts auf Ihrer lokalen Maschine in Betrieb genommen.
Sie werden brauchen:
Installieren Sie JDK und konfigurieren Sie Umgebungsvariablen JAVA_HOME und PATH ordnungsgemäß. Einige Richtlinien finden Sie in diesem Stackoverflow -Beitrag.
Öffnen Sie eine Eingabeaufforderung und stellen Sie sicher, dass alles reibungslos funktioniert:

Unzipp MySQL und gehen Sie zum bin -Verzeichnis. Führen Sie den folgenden Befehl aus ( nicht für Produktionsumgebungen empfohlen ):
mysqld --initialize-insecure
Dieser Befehl initialisiert das Datenverzeichnis und erstellt ein 'root'@'localhost' Superuser -Konto mit leerem Passwort.
Um den Service unter Windows -Maschinen zu installieren, rennen Sie:
mysqld --install
Um den Service zu starten, laufen Sie schließlich:
sc start mysql
Um zu überprüfen, ob die Installation erfolgreich war, geben Sie den Befehl mysql -uroot aus: 
Geben Sie exit ein und drücken Sie Enter , um aus der MySQL -Konsole herauszukommen.
Wir müssen unsere Beispieldatenbank erstellen und sie mit Beispieldaten füllen. Die SQL -Datei heißt testdb.sql. Laden Sie es in das MySQL bin -Verzeichnis herunter und führen Sie den folgenden Befehl aus: Führen Sie den folgenden Befehl aus:
mysql -uroot < testdb.sql
Wenn alles reibungslos verläuft, können Sie die Befehle ausstellen und die Ergebnisse wie unten gezeigt sehen:

Ändern Sie schließlich das root in 123456 , da leere Passwörter nicht per Payara -Server akzeptiert werden (nächster Schritt). Beachten Sie, dass das Passwort selbst sowie die folgende Methode zum Ändern des Kennworts völlig unsicher sind:
mysqladmin --user=root password "123456"
Laden Sie Payara Server sowie MySQL Connector/j herunter und extrahieren Sie sie. Ich habe Letzteres an C:tmpmysql-connector-java-8.0.18.jar extrahiert.
Stellen Sie sicher, dass Sie den Anweisungen zum Installieren und Konfigurieren von JDK-11 befolgt haben. Starten Sie den Payara -Server mit dem folgenden Befehl:
asadmin start-domain
Installieren Sie als Nächstes MySQL Connector/J:
asadmin add-library C:tmpmysql-connector-java-8.0.18.jar
Hier ist eine Momentaufnahme, wie die Dinge aussehen sollten:

Open Payara -Webkonsole und navigieren Sie zu Resources → JDBC → JDBC Connection Pools . Klicken Sie auf das New Wutton.

Füllen Sie für Schritt 1 die Informationen genau wie folgt aus:

Scrollen Sie für Schritt 2 nach unten, bis Sie die Additional Properties sehen:

Sie müssen die folgenden Eigenschaften festlegen (alphabetisch sortiert):
allowPublicKeyRetrieval - Ob der Client den öffentlichen Schlüssel automatisch vom Server anfordern darf. Auf true eingestellt. (Nicht in Produktionsumgebungen empfohlen)DatabaseName - Der Name der Datenbank, mit der Sie eine Verbindung herstellen möchten. In diesem Fall testdb .Password : Das Passwort für den angegebenen Benutzer. Hier ist es 123456 .ServerName : Der Ort des MySQL -Servers. In diesem Fall localhost .sslMode : Ob SSL zur Verbindung zum MySQL -Server verwendet wird. Stellen Sie es auf DISABLED . (Nicht in Produktionsumgebungen empfohlen)URL und Url : Die zu verwendende JDBC -URL. Setzen Sie es hier auf jdbc:mysql://localhost:3306/testdb .User : Der Benutzername für die Verbindung zur Datenbank. Hier ist es root . Klicken Sie auf die Taste Finish . Klicken Sie auf den neu erstellten Verbindungspool. Klicken Sie auf der Registerkarte General auf die Schaltfläche Ping . Wenn alles richtig läuft, sollten Sie Folgendes sehen:

Erstellen Sie in ähnlicher Weise einen anderen Verbindungspool namens MySQL_readonly_Pool . Der Schritt 1 entspricht dem vorherigen Verbindungspool. Setzen Sie für Schritt 2 die Additional Properties wie folgt:
allowPublicKeyRetrieval: true .DatabaseName: testdb .Password: MyVeryLongPassphrase .ServerName: localhost .sslMode: DISABLED .URL: jdbc:mysql://localhost:3306/testdb .Url: jdbc:mysql://localhost:3306/testdb .User: readonly . Wir müssen die JDBC -Ressourcen einrichten. Gehen Sie zu Resources → JDBC → JDBC Resources und klicken Sie auf New . Füllen Sie das Formular wie folgt aus:
JNDI Name: jdbc/MySQL_root_DataSourceConnection Pool: MySQL_root_Pool
In ähnlicher Weise tun Sie dies für den zweiten Verbindungspool:
JNDI Name: jdbc/MySQL_readonly_DataSourceConnection Pool: MySQL_readonly_PoolGeben Sie schließlich den folgenden Befehl aus, um den Payara -Server zu stoppen.
asadmin stop-domain
Dies geschieht, da die Intellij -Idee den Server automatisch startet.
Öffnen Sie das Projekt in der Intellij -Idee. Es informiert Sie darüber, dass Web framework is detected :

Klicken Sie auf Configure , um das Fenster Setup Frameworks zu öffnen. Klicken Sie dann einfach auf OK:

Wählen Sie Run → Edit Configurations... Offene Templates → GlassFish Server → Local . Klicken Sie auf Configure :

Wählen Sie GlassFish Home . Bei korrekter Auswahl erkennt Intellij die GlassFish Version automatisch:

Klicken Sie auf OK . Wählen Sie im Dropdown-Feld Server Domain domain1 aus.

Klicken Sie Apply . Sie haben jetzt eine ordnungsgemäße Glasfischvorlage, die Sie über mehrere Projekte hinweg verwenden können. Für jedes Projekt müssen Sie jedoch das "Artefakt" so konfigurieren, dass er erschöpft werden soll. Bis zu diesem Zweck klicken Sie auf den + links und wählen Sie GlassFish Server → Local :

In der Unterseite warnt Intellij Sie, dass No artifacts configured . Klicken Sie einfach auf die Schaltfläche Fix .

Klicken Sie dann im Fenster Artifacts auf das + Zeichen und wählen Sie Web Application Exploded → From Modules

Wählen Sie das einzige verfügbare Modul, dh OWASP-JAVA , und klicken Sie auf OK.

Klicken Sie auf OK, um zur Run/Debug Configurations zurückzukehren. Am Ende sehen Sie noch eine Warnung: Debug settings are invalid or not suitable for local debugging . Klicken Sie auf die Schaltfläche Fix , und Intellij kümmert sich um Sie.

Sie können das Projekt jetzt ausführen. Intellij öffnet automatisch Ihren Standardbrowser und navigiert nach http://localhost:8080/OWASP_Java_war_exploded/ :

Geben Sie die folgenden Anmeldeinformationen ein:
kambiz1Wenn alles richtig funktioniert, werden Sie auf die Benutzer -Homepage weitergeleitet:

Andernfalls müssen Sie sich möglicherweise Glassfish -Protokolle ansehen, wie intellij berichtet, um zu sehen, was schief gelaufen ist.

Übrigens verwende ich das Grep -Konsolen -Plugin, um die Protokolle einfacher zu analysieren.