Skip to content
Snippets Groups Projects
Commit 5a6fbcda authored by Eilert Tunheim's avatar Eilert Tunheim
Browse files

Added notification popup for input parameter sql injection

parent 34422818
No related branches found
No related tags found
No related merge requests found
Showing with 39 additions and 26 deletions
package com.application.DB;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
......@@ -15,14 +13,6 @@ public final class Constants {
// Empty constructor
}
// Today's date
public static String CURRENT_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
public static String TIME_LEFT = "";
// Number of manual moisture checks
public static int NUMBER_OF_CHECKS = 1;
// Number of wanted drying periods
public static int NUMBER_OF_PERIODS = 2;
......@@ -32,8 +22,7 @@ public final class Constants {
// Confidence interval
public static final double CONFIDENCE_INTERVAL = 0.80;
// Non linear regression
public static final double ADJUST_REGRESSION = 5.0;
// Current sawmill settings;
public static final String PROJECT_ID = "sf-drying-optimization";
......
package com.application.DB;
import com.application.GUI.NotificationPopUp;
import com.google.cloud.bigquery.*;
import org.joda.time.DateTime;
......@@ -362,7 +361,7 @@ public class DB {
String extraInputParameter = "";
extraInputParameter += extraUserInput;
if(locationID == 124){
extraInputParameter += "AND CalculatedStart BETWEEN \"1990-01-01 00:00:00\" AND \"" + CURRENT_DATE + "\" ";
extraInputParameter += "AND CalculatedStart BETWEEN \"1990-01-01 00:00:00\" AND \"" + HelpingFunctions.CURRENT_DATE + "\" ";
}
if(locationID == 174){
// KILIN_ID starts at 0 not 1 in the database.
......@@ -375,8 +374,8 @@ public class DB {
"SELECT MAX("+ nameParameter +") as DryingSchedule, MAX("+kilinName+") as Kiln_ID, " + startDryingTime + ", MAX("+stopDryingTime+") as DryingCompleted " +
"FROM `" + PROJECT_ID + "." + locationID + "." + valmeticsTableName + "` " +
"WHERE " + kilinName + " = " + kilinID + " " +
"AND "+startDryingTime+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + CURRENT_DATE + "\" " +
"AND "+stopDryingTime+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + CURRENT_DATE + "\" " +
"AND "+startDryingTime+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + HelpingFunctions.CURRENT_DATE + "\" " +
"AND "+stopDryingTime+" BETWEEN \"1990-01-01 00:00:00\" AND \"" + HelpingFunctions.CURRENT_DATE + "\" " +
extraInputParameter +
"AND LOWER(" +nameParameter+ ") NOT LIKE LOWER("+'"'+"%"+ "test" +"%"+'"'+") " +
"Group by "+ startDryingTime + " " +
......@@ -608,7 +607,7 @@ public class DB {
// Sqlstatement
final String sqlStatement =
"INSERT INTO " + PROJECT_ID + "." + LOCATION_ID + "." + MAN_MOISTURE_TABLE + "(moisture,tree_species,dimensions,sawset,moisture_goal,no_moisture_check,start_time,stop_time,finished) " +
"VALUES("+moisture+","+treeSpecies+","+dimensions+","+sawset+","+moistureGoal+","+NUMBER_OF_CHECKS+","+startTime+","+stopTime+","+IS_FINISHED+") ";
"VALUES("+moisture+","+treeSpecies+","+dimensions+","+sawset+","+moistureGoal+","+ HelpingFunctions.NUMBER_OF_CHECKS+","+startTime+","+stopTime+","+IS_FINISHED+") ";
System.out.println(sqlStatement);
......
......@@ -27,6 +27,14 @@ public class HelpingFunctions {
public static String DIMENSIONS = "";
public static String SAWSET = "";
public static String MOISTURE_GOAL = "";
// Number of manual moisture checks
public static int NUMBER_OF_CHECKS = 1;
// Today's date
public static String CURRENT_DATE = "";
public static String TIME_LEFT = "";
static Map<String,String> manMoist = new HashMap<>();
/**
......
package com.application.GUI;
import com.application.DB.Constants;
import com.application.DB.HelpingFunctions;
import javafx.application.Platform;
import javafx.collections.FXCollections;
......@@ -117,8 +116,8 @@ public class InputPopUpWindow {
startButton.setOnAction(e -> {
// Sets the start time
Constants.CURRENT_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
HelpingFunctions.START_TIME = CURRENT_DATE;
HelpingFunctions.CURRENT_DATE = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
HelpingFunctions.START_TIME = HelpingFunctions.CURRENT_DATE;
// Retrieves the user inputs
HelpingFunctions.TREE_SPECIES = treeSpeciesList.getValue();
......@@ -134,27 +133,46 @@ public class InputPopUpWindow {
// If the input is null, sets the value to be empty
if (treeSpeciesList.getValue() == null) {
HelpingFunctions.TREE_SPECIES = "";
err = false;
} else if (treeSpeciesList.getValue().length() > 10) {
treeSpeciesList.setPromptText("A maximum of 10 characters is allowed!");
NotificationPopUp.displayNotificationWindow("Maximum 10 characters is allowed for input parameters!");
treeSpeciesList.setValue("");
err = true;
} else {
err = false;
}
if (dimensionsList.getValue() == null) {
HelpingFunctions.DIMENSIONS = "";
err = false;
} else if (dimensionsList.getValue().length() > 10) {
dimensionsList.setPromptText("A maximum of 10 characters is allowed!");
NotificationPopUp.displayNotificationWindow("Maximum 10 characters is allowed for input parameters!");
dimensionsList.setValue("");
err = true;
} else {
err = false;
}
if (sawsetList.getValue() == null) {
HelpingFunctions.SAWSET = "";
err = false;
} else if (sawsetList.getValue().length() > 10) {
sawsetList.setPromptText("A maximum of 10 characters is allowed!");
NotificationPopUp.displayNotificationWindow("Maximum 10 characters is allowed for input parameters!");
sawsetList.setValue("");
err = true;
} else {
err = false;
}
if (moistureList.getValue() == null) {
HelpingFunctions.MOISTURE_GOAL = "";
err = false;
} else if (moistureList.getValue().length() > 10) {
moistureList.setPromptText("A maximum of 10 characters is allowed!");
NotificationPopUp.displayNotificationWindow("Maximum 10 characters is allowed for input parameters!");
moistureList.setValue("");
err = true;
} else {
err = false;
}
......
......@@ -14,7 +14,6 @@ import javafx.stage.Stage;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import static com.application.DB.Constants.*;
import static com.application.DB.HelpingFunctions.IS_FINISHED;
public class OutputPopUpWindow {
......@@ -50,7 +49,7 @@ public class OutputPopUpWindow {
!moistureCheckTextField.getCharacters().toString().equals("Please enter a value")) {
HelpingFunctions.STOP_TIME = null;
DB.pushManMoisture(moistureCheckTextField.getCharacters().toString());
NUMBER_OF_CHECKS++;
HelpingFunctions.NUMBER_OF_CHECKS++;
window.close();
} else {
moistureCheckTextField.setPromptText("Please enter a value");
......
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment