From 8e10b7bbc8ae31acc8db5876ef3034d8ddb323e0 Mon Sep 17 00:00:00 2001
From: emtunhei <emtunhei@stud.ntnu.no>
Date: Tue, 22 Feb 2022 11:18:35 +0100
Subject: [PATCH] Added authentication class

---
 .../java/com/application/Credentials.java     |   5 ++
 .../application/DataBase/Authentication.java  |  44 ++++++++++++++++++
 src/main/java/com/application/Main.java       |   9 +++-
 .../sf-drying-optimization-1e234ad2b0f4.json  |  12 +++++
 .../application/DataBase/Authentication.class | Bin 0 -> 3333 bytes
 target/classes/com/application/Main.class     | Bin 1515 -> 1731 bytes
 6 files changed, 69 insertions(+), 1 deletion(-)
 create mode 100644 src/main/java/com/application/Credentials.java
 create mode 100644 src/main/java/com/application/DataBase/Authentication.java
 create mode 100644 target/classes/com.application/sf-drying-optimization-1e234ad2b0f4.json
 create mode 100644 target/classes/com/application/DataBase/Authentication.class

diff --git a/src/main/java/com/application/Credentials.java b/src/main/java/com/application/Credentials.java
new file mode 100644
index 0000000..7f1a1f6
--- /dev/null
+++ b/src/main/java/com/application/Credentials.java
@@ -0,0 +1,5 @@
+package com.application;
+
+public class Credentials {
+    String projectId = "MY_PROJECT_ID";
+}
diff --git a/src/main/java/com/application/DataBase/Authentication.java b/src/main/java/com/application/DataBase/Authentication.java
new file mode 100644
index 0000000..76edde3
--- /dev/null
+++ b/src/main/java/com/application/DataBase/Authentication.java
@@ -0,0 +1,44 @@
+package com.application.DataBase;
+
+import com.application.Credentials;
+import com.google.auth.oauth2.GoogleCredentials;
+import com.google.auth.oauth2.ServiceAccountCredentials;
+import com.google.cloud.bigquery.BigQuery;
+import com.google.cloud.bigquery.BigQueryOptions;
+import com.google.cloud.bigquery.Dataset;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+public class Authentication{
+
+    public static void explicit() throws IOException {
+        // TODO(developer): Replace these variables before running the sample.
+        String projectId = String.valueOf(new Credentials());
+        File credentialsPath = new File(".\\src\\main\\resources\\com.application\\sf-drying-optimization-1e234ad2b0f4.json");
+
+        // Load credentials from JSON key file. If you can't set the GOOGLE_APPLICATION_CREDENTIALS
+        // environment variable, you can explicitly load the credentials file to construct the
+        // credentials.
+        GoogleCredentials credentials;
+        try (FileInputStream serviceAccountStream = new FileInputStream(credentialsPath)) {
+            credentials = ServiceAccountCredentials.fromStream(serviceAccountStream);
+        }
+
+        // Instantiate a client.
+        BigQuery bigquery =
+                BigQueryOptions.newBuilder()
+                        .setCredentials(credentials)
+                        .setProjectId(projectId)
+                        .build()
+                        .getService();
+
+        // Use the client.
+        System.out.println("Datasets:");
+        for (Dataset dataset : bigquery.listDatasets().iterateAll()) {
+            System.out.printf("%s%n", dataset.getDatasetId().getDataset());
+        }
+    }
+
+}
diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java
index b0e9ece..c23bf11 100644
--- a/src/main/java/com/application/Main.java
+++ b/src/main/java/com/application/Main.java
@@ -1,17 +1,24 @@
 package com.application;
 
+import com.application.DataBase.Authentication;
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
 import javafx.scene.control.Button;
 import javafx.stage.Stage;
+
+import java.io.IOException;
+import java.nio.file.Paths;
 import java.util.Objects;
 
+import static com.application.DataBase.Authentication.explicit;
+
 public class Main extends Application {
     Button button;
-    public static void main(String[] args) {
+    public static void main(String[] args) throws IOException {
         //System.out.println("Hello world!");
+        //Authentication test = explicit();
         launch(args);
     }
 
diff --git a/target/classes/com.application/sf-drying-optimization-1e234ad2b0f4.json b/target/classes/com.application/sf-drying-optimization-1e234ad2b0f4.json
new file mode 100644
index 0000000..9444592
--- /dev/null
+++ b/target/classes/com.application/sf-drying-optimization-1e234ad2b0f4.json
@@ -0,0 +1,12 @@
+{
+  "type": "service_account",
+  "project_id": "sf-drying-optimization",
+  "private_key_id": "1e234ad2b0f42caff46c54993f72e6ed7a6e47f5",
+  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9uUivxQCvsUYW\nM2GCJaioM4/KdHIhkgbtGFKtYacQcvJaE1z9RsgTBThWAYXblkigptJ9pCOPIpFR\naqDGujua7+bEm37eQ8pEAPiiSHqNWaevzSjS9OZ8vLD+0AdDy17HuL1KjnR6vJi6\nBRfVfvu3DtzxJbsUutxTwjDTUIZqg6QLeRja0sfa5r1lbqJ6o/uK99fYi3cuW9XW\nbK5czMROw+lNeVU9S2B/5EfezeD+Qtt0hPL6IVdz5oCtbQY9Sj/C+N+tyjPYYXKG\neEZhfvVZOmilIyTupXH+5CJfezxYP6Weg0nD8a6Zt71FSces82PufCU/swiEgh9/\n9zv+anPrAgMBAAECggEAJxcI6eY+OPTeiu51NbqKoHVXOBB7/3y13p33Uu/e2x3D\n31lD/I9b48dcjyPrL44sUqVskySBixlFNbAxhiCS7V5mfrXHEwaGozJMCCvEzGDf\nkvJDagu5fZPnJ+k2xfoeAiqHHdhyGWPIV/N6sKtkM5hlX241uJSzlrJZGwDpYQJ5\na2s5YIw+wLZ90Ybj/V7mvZ0UFLDJV6JztIg1pxSC0CTA7Fz6oZdwIKytBGcYSved\n8tkVPufkL7LtYoNZFrzkgPrTBpm0Teq+XUpCazIySEcOBySbdlhdhMf66nawY1Tx\nRsRUxTtWuFrtDl3XIFOv8C1iAtDiPA4b4Yb8sTR2eQKBgQDuz7xvxYeZdzyFWZlI\nQRVvJAYWT2p2bhImSA9I097B8mWtQ/TY5qankwFcuP+nu3u2MKYRszPrIt5eoH73\nMFi2cqMHOVmsx8JALG4vWlkNNKier06JnuJjH6hh5nQBU+cFuhkHIVfbjBnCiSz8\nizIZxeFG88JfqZFVBR6OIpYyzQKBgQDLYRLQGseonf8Rdv5oRLAL49Q+NnimC2Mo\n7io+DqlhbTFWxE0M6DUZO9C+MesHHSCmw3ZgqT6ykQPxCKZ6ZLQzQzDRqNi+4vy7\n2+BFwKqvUIJtMP0cLNMBRpsjmYMXQqhHGFAHuDsRyyKu0YTUayEB4/MBBnoqnC48\nygBudP5xlwKBgQDQTBu1dhqHTkxYl8UuE66paUdx8EURFYL5JwNF5581lcL/9PU8\ntzoHkh6vDKHZYJtQV3CSobcYUiqZaO41l1LZmHYAmBJStU4GgXp+DRT9gr/M4WXk\nfdRC11scQVFP0yn/gcnQwVGLqtDRMKsvgA3sEwAizfztSc781GFJYnuVxQKBgQCC\npQoDuqA1FcFLA8hrTGxWRvUJPc6Ew13gZhWmpZ5y4kTGevUP7H5nhkASXVifyjs2\nROtfLnkDFhqVFDx09Qm4wFm05KTPAlrdhmHsDNbYJXyTDdwZ5EVrVWLFHJDUOVKF\n0P1f6B2x0W6nJBoSpfqfD0IDj5iclJUzIYPjcK4eYwKBgFfUiZhVj4cWPb1k2MJf\nXC0LBmFgqiW9w4rXfyEXtRSRbO4661TvVHw66SF09hwzz/+MW2R7HLi1IWZNyRF3\nXw39WtI8bmUsLTJbH6gshanmu8cSPLBt82WlRd6gS+SMxyZ65wY/kt9adfIolefm\nICsfIETnkHRpwF3RurchKfjk\n-----END PRIVATE KEY-----\n",
+  "client_email": "svc-students-sf-drying-opt@sf-drying-optimization.iam.gserviceaccount.com",
+  "client_id": "106308201919438112497",
+  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
+  "token_uri": "https://oauth2.googleapis.com/token",
+  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
+  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/svc-students-sf-drying-opt%40sf-drying-optimization.iam.gserviceaccount.com"
+}
diff --git a/target/classes/com/application/DataBase/Authentication.class b/target/classes/com/application/DataBase/Authentication.class
new file mode 100644
index 0000000000000000000000000000000000000000..1c24a29d0486c9f6a5e96e7aab2e56836ed64a19
GIT binary patch
literal 3333
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

literal 0
HcmV?d00001

diff --git a/target/classes/com/application/Main.class b/target/classes/com/application/Main.class
index eb18a797bdc462372cca23ffe5d5f8827b0f3610..7d55c32207fc5bd82f4e0c84a73f2cd7f65254af 100644
GIT binary patch
delta 817
zcmaFOeVDiY)W2Q(7#J8#7&5sS#2HMu7)%+=xERD3%()mW7%Vv$thgAg8Em*1Y#Hp>
z8SJ?j92gwg8JyS|oY@>E9bf<fHisq%gNuQi!G(*#mB9@}xPu4}5a9_Tyx1AM*%^Eo
z8Q79aOG@(d7#U=JvJ%TCR&8};DM>9ZVPw$sNzTvJPb?_N$xKcx$;{8wcS$TsbV@8v
z)psl{$w<vBfr?u*GH|(8B&QaD6cw{G_)gYkY%^nL@MC1)3eGPrN=|jl%t>Wr;Pg$*
z%+t$CEKB5JkYbQ#XYl7?2w({0VF+SSVrK~EVF+Oeo&1i`Ts4e`A)FzCogtEkA&McI
zk%0%KM?WvML_ajhhn*pYhar|BZn77XuDldOJUc@I4?`kD5)VT%LkbT=Du_s9Natb5
zV33|Xjmd#4Ghg4+AMC!#r<i0C)rs^KBLhcj1<3E2C5#N(8pMaj<|j-W7^TG+#2FYE
z7#SECBp4(a7#Nrt7(t$9U}TV)yq-m@UY3D@fekD#$RNkSz`z4$vogptC@?TEa55+|
zC^0ZG$S^Q4xH2#@FoDE&FfjRO?O<Tu$iTqB!~imYkAazifkBLcg+ZKwgFympkQhWU
zgEE5(0|NsK11p0ngBk-PgF2YU$e_W%$e_tkuLU)I83Q{53j+g#lh!r{79rMc3~W0X
z*bgvp>|o$Lz`*6Zn}Iu0M}&b#gn@56gMgnl%Qgl<Z4m~(Z45%%A`Cp+7=*QTw=sxl
zZ(|TeI7^9vgMooTl|hU_i$Rq^n?Z{~hry6Rm%)NTkHMBfpTUvAzy<79Er``nPctw$
pF=#XBFfcNRG3YSpGUzcdF{m=gGUziHFfha2Z^*#NU<3{UV*qHuld=E+

delta 610
zcmX@i`<grJ)W2Q(7#J8#7~;7Y#25^?7(^KixfqNXj5!!gxEM?s%(xiL87$ZtEV&r0
z7_8YDY}grW*&HSvU;qI&hb9Pvi-C*5j*G#b!2v`#f(R!N;S3^N*cn{e8Qdo3ADvvz
z*doBlz~x$zoLW$lnV(n8&fq@zAEUH@B!d(Wg9n2mJA)?=gBOGMWJ4x%RUaM(Uj{#R
z27exg0ER$D2A-_MvPAv7)Dr#BARl&yARdNbhLFj<Ou9;v4591{VLS}s3=upGkql8h
z4ACGWh9Q=RA&x<ckwIkQ1Chxem^Arv67$ma;r4G{z`TL6UX($Mfq{XMfq_AsL4tvS
zfti7kL6Sj=fssL)fq_Avfe|dns<oYgaU%l*0~3P`0|NsaSdg1RmVtqR2h3(=kYkW%
zU|`^6P+(AmYBq*z-oe0x(9Ffa#K6G7&%nYUz#v<XWP%cdGT13945|!FVC$DLurshQ
zFfcf2ZDU{-V%f&Px`To300a9D295&^oW8pmxFU5#7`R0kc(*g~`)RXmV-V05Vc^}y
zAgC?Ez`cz@NLzOsgRu5C1`&kyN(>wf3=FaiVhl<Qstl3J3|b5-42BG<3>FM(47LpF
z42}#MV2^1*tcH4wfx(GEjX|A(kwJ_>he3lulYxmrl|hz4i$R-#nL&qvfq{jAkwKS%
KkwFg}O!@#=Mo`57

-- 
GitLab