Skip to content
Snippets Groups Projects
Commit d07c6e64 authored by Odin K. Henriksen's avatar Odin K. Henriksen
Browse files

Error message handling implemented

parent b172b9aa
No related branches found
No related tags found
1 merge request!2Merge react-branch into main.
......@@ -2,6 +2,7 @@ package api
import (
"dcsg2900-threattotal/utils"
"dcsg2900-threattotal/logs"
"encoding/json"
"fmt"
"io/ioutil"
......@@ -35,6 +36,7 @@ func CallAlienVaultUrl(url string) (response utils.FrontendResponse) {
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("ERROR READING JSON DATA", err)
logging.Logerror(err, "ERROR READING JSON DATA, AlienVault API")
}
var jsonResponse utils.AlienVaultURL
......@@ -42,6 +44,7 @@ func CallAlienVaultUrl(url string) (response utils.FrontendResponse) {
err = json.Unmarshal(body, &jsonResponse)
if err != nil {
fmt.Println("UNMARSHAL ERROR:\n\n", err)
logging.Logerror(err, "Unmarshal error AlienVault API")
}
//output:= string(body)
......@@ -82,6 +85,7 @@ func CallAlienVaultHash(hash string, response *utils.FrontendResponse2, wg *sync
//fmt.Print(string(res.Body))
if err != nil {
fmt.Println("ERROR IN Request", err)
logging.Logerror(err, "ERROR IN REQUEST, AlienVault API")
utils.SetGenericError(response)
}
if res.StatusCode == 200 {
......@@ -91,6 +95,7 @@ func CallAlienVaultHash(hash string, response *utils.FrontendResponse2, wg *sync
if err != nil {
fmt.Println("ERROR READING JSON DATA", err)
logging.Logerror(err, "ERROR Reading JSON response, AlienVault API")
utils.SetGenericError(response)
}
......@@ -143,6 +148,8 @@ func TestAlienVaultUrl(url string, response *utils.FrontendResponse2, wg *sync.W
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("ERROR READING JSON DATA", err)
logging.Logerror(err, "ERROR Reading JSON response, AlienVault API")
}
var jsonResponse utils.AlienVaultURL
......@@ -150,6 +157,7 @@ func TestAlienVaultUrl(url string, response *utils.FrontendResponse2, wg *sync.W
err = json.Unmarshal(body, &jsonResponse)
if err != nil {
fmt.Println("UNMARSHAL ERROR:\n\n", err)
logging.Logerror(err, "ERROR unmarshalling, AlienVault URLsearch API")
}
/*
......
......@@ -34,6 +34,7 @@ func UploadFileRetrieve(c *gin.Context) {
if value == nil {
if err != nil {
fmt.Println("Error:" + err.Error())
logging.Logerror(err, "ERROR getting file, Fileupload API")
}
fmt.Println("No Cache hit")
......@@ -50,6 +51,7 @@ func UploadFileRetrieve(c *gin.Context) {
response, err := utils.Conn.Do("SETEX", "file:"+id, utils.CacheDurationFile, fileData)
if err != nil {
fmt.Println("Error adding data to redis:" + err.Error())
logging.Logerror(err, "ERROR adding data to Redis, Fileupload API")
}
fmt.Println(response)
......@@ -59,6 +61,7 @@ func UploadFileRetrieve(c *gin.Context) {
responseBytes, err := json.Marshal(value)
if err != nil {
fmt.Println("Error handling redis response:" + err.Error())
logging.Logerror(err, "ERROR in RedisResponse, Fileupload API")
http.Error(c.Writer, "Failed retrieving api data.", http.StatusInternalServerError)
return
// Maybe do another call to delete the key from the database?
......@@ -74,6 +77,7 @@ func UploadFileRetrieve(c *gin.Context) {
err = json.Unmarshal(responseBytes, &fileData)
if err != nil {
fmt.Println("Error handling redis response:" + err.Error())
logging.Logerror(err, "ERROR handling redis response, fileupload API")
http.Error(c.Writer, "Failed retrieving api data.", http.StatusInternalServerError)
return
// Maybe do another call to delete the key from the database?
......@@ -93,7 +97,7 @@ func uploadFileRetrieveCall(id string) (data []byte, err error) {
fileData, err := json.Marshal(responseData)
if err != nil {
fmt.Println(err)
logging.Logerror(err)
logging.Logerror(err, "")
return nil, err
}
......@@ -117,19 +121,20 @@ func UploadFile(c *gin.Context) {
part, err := writer.CreateFormFile("file", file2.Filename)
if err != nil {
log.Println(err)
logging.Logerror(err, "")
}
// copy file locally
_, err = io.Copy(part, file3)
if err != nil {
logging.Logerror(err)
logging.Logerror(err, "")
}
// close writer
err = writer.Close()
if err != nil {
log.Println(err)
logging.Logerror(err)
logging.Logerror(err, "")
}
// prepare request towards API
......@@ -137,7 +142,7 @@ func UploadFile(c *gin.Context) {
if err != nil {
log.Println(err)
logging.Logerror(err)
logging.Logerror(err, "")
}
APIKey := utils.APIKeyVirusTotal
......@@ -153,7 +158,7 @@ func UploadFile(c *gin.Context) {
if err != nil {
log.Println(err)
logging.Logerror(err)
logging.Logerror(err, "")
}
defer res.Body.Close()
......@@ -169,7 +174,7 @@ func UploadFile(c *gin.Context) {
if unmarshalledID != nil {
log.Println(unmarshalledID)
logging.Logerror(err)
logging.Logerror(err, "")
}
encodedID := jsonResponse.Data.ID
......
......@@ -3,6 +3,7 @@ package api
import (
"bytes"
"dcsg2900-threattotal/utils"
"dcsg2900-threattotal/logs"
"encoding/json"
"fmt"
"io/ioutil"
......@@ -41,6 +42,7 @@ func CallGoogleUrl(url string) (response utils.FrontendResponse) {
req, err := http.NewRequest("POST", postURL, bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("Error: reading sending google api request")
logging.Logerror(err, "ERROR sending REQUEST, Google API")
}
req.Header.Set("Content-Type", "application/json; charset=UTF-8")
......@@ -57,6 +59,7 @@ func CallGoogleUrl(url string) (response utils.FrontendResponse) {
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("Error: reading google api response")
logging.Logerror(err, "ERROR reading google api response, Google API")
}
var jsonResponse utils.GoogleSafeBrowsing
......@@ -64,6 +67,7 @@ func CallGoogleUrl(url string) (response utils.FrontendResponse) {
err = json.Unmarshal(body, &jsonResponse)
if err != nil {
fmt.Println(err)
logging.Logerror(err, "ERROR Unmarshalling google api response, Google API")
}
output := string(body)
fmt.Println("BODY::!", output)
......@@ -129,6 +133,8 @@ func TestGoGoogleUrl(url string, response *utils.FrontendResponse2, wg *sync.Wai
req, err := http.NewRequest("POST", postURL, bytes.NewBuffer(jsonData))
if err != nil {
fmt.Println("Error: reading sending google api request")
logging.Logerror(err, "ERROR Sending google api request, Google API")
}
req.Header.Set("Content-Type", "application/json; charset=UTF-8")
......@@ -145,6 +151,8 @@ func TestGoGoogleUrl(url string, response *utils.FrontendResponse2, wg *sync.Wai
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("Error: reading google api response")
logging.Logerror(err, "ERROR reading google api response, Google API")
}
var jsonResponse utils.GoogleSafeBrowsing
......
......@@ -22,6 +22,7 @@ func HashIntelligence(c *gin.Context) {
if value == nil {
if err != nil {
fmt.Println("Error:" + err.Error())
logging.Logerror(err ,"Error in retrieving cache - hash-intelligence")
}
fmt.Println("No Cache hit")
......@@ -36,6 +37,8 @@ func HashIntelligence(c *gin.Context) {
response, err := utils.Conn.Do("SETEX", "hash:"+hash, utils.CacheDurationHash, hashInt)
if err != nil {
fmt.Println("Error adding data to redis:" + err.Error())
logging.Logerror(err, "Error adding data to redis, hash-intelligence")
}
fmt.Println(response)
......@@ -46,6 +49,7 @@ func HashIntelligence(c *gin.Context) {
responseBytes, err := json.Marshal(value)
if err != nil {
fmt.Println("Error handling redis response:" + err.Error())
logging.Logerror(err, "ERROR handling redis response, hash-intelligence")
http.Error(c.Writer, "Failed retrieving api data.", http.StatusInternalServerError)
return
// Maybe do another call to delete the key from the database?
......@@ -61,6 +65,7 @@ func HashIntelligence(c *gin.Context) {
err = json.Unmarshal(responseBytes, &hashInt)
if err != nil {
fmt.Println("Error handling redis response:" + err.Error())
logging.Logerror(err, "Error unmarshalling response, hash-intelligence")
http.Error(c.Writer, "Failed retrieving api data.", http.StatusInternalServerError)
return
// Maybe do another call to delete the key from the database?
......@@ -95,7 +100,7 @@ func hashSearch(hash string) (data []byte, err error) {
hashInt, err := json.Marshal(resultResponse)
if err != nil {
fmt.Println(err)
logging.Logerror(err)
logging.Logerror(err, "")
return nil, err
}
......
......@@ -2,6 +2,7 @@ package api
import (
"dcsg2900-threattotal/utils"
"dcsg2900-threattotal/logs"
"encoding/json"
"fmt"
"io/ioutil"
......@@ -39,6 +40,8 @@ func CallHybridAnalysisHash(hash string, response *utils.FrontendResponse2, wg *
res, err := client.Do(req)
if err != nil {
fmt.Println("Request error HybridA", err)
logging.Logerror(err, "Error in request to hybridAnalysis")
utils.SetGenericError(response)
}
defer res.Body.Close()
......@@ -123,6 +126,8 @@ func CallHybridAnalyisUrl(URL string) (VirusTotal utils.FrontendResponse, urlsca
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("Ioutil error:", err)
logging.Logerror(err, "Ioutil error HybridAnalysis: ")
}
//var jsonData map[string]interface{}
......@@ -145,6 +150,8 @@ func CallHybridAnalyisUrl(URL string) (VirusTotal utils.FrontendResponse, urlsca
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("Ioutil error:", err)
logging.Logerror(err, "Ioutil error HybridAnalysis: ")
}
var jsonResponse utils.HybridAnalysisURL
......@@ -224,6 +231,8 @@ func TestHybridAnalyisUrl(URL string, VirusTotal *utils.FrontendResponse2, urlsc
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("Ioutil error:", err)
logging.Logerror(err, "Ioutil error HybridAnalysis: ")
}
//var jsonData map[string]interface{}
......@@ -246,6 +255,8 @@ func TestHybridAnalyisUrl(URL string, VirusTotal *utils.FrontendResponse2, urlsc
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println("Ioutil error:", err)
logging.Logerror(err, "Ioutil error HybridAnalysis: ")
}
var jsonResponse utils.HybridAnalysisURL
......
......@@ -2,6 +2,7 @@ package api
import (
"dcsg2900-threattotal/utils"
"dcsg2900-threattotal/logs"
"encoding/json"
"fmt"
"net/http"
......@@ -21,6 +22,8 @@ func UrlIntelligence(c *gin.Context) {
if value == nil {
if err != nil {
fmt.Println("Error:" + err.Error())
logging.Logerror(err, "Error in cache lookup - Url-intelligence")
}
fmt.Println("No Cache hit")
......@@ -35,6 +38,7 @@ func UrlIntelligence(c *gin.Context) {
response, err := utils.Conn.Do("SETEX", "url:"+url, utils.CacheDurationUrl, URLint)
if err != nil {
fmt.Println("Error adding data to redis:" + err.Error())
logging.Logerror(err, "Error addding data to redis - Url-intelligence:")
}
// Print the response to adding the data (should be "OK")
......@@ -48,6 +52,7 @@ func UrlIntelligence(c *gin.Context) {
responseBytes, err := json.Marshal(value)
if err != nil {
fmt.Println("Error handling redis response:" + err.Error())
logging.Logerror(err, "Error handling redis response - Url-intelligence:")
http.Error(c.Writer, "Failed retrieving api data.", http.StatusInternalServerError)
return
// Maybe do another call to delete the key from the database?
......@@ -63,6 +68,7 @@ func UrlIntelligence(c *gin.Context) {
err = json.Unmarshal(responseBytes, &URLint)
if err != nil {
fmt.Println("Error handling redis response:" + err.Error())
logging.Logerror(err, "Error handling redis response - Url-intelligence:")
http.Error(c.Writer, "Failed retrieving api data.", http.StatusInternalServerError)
return
// Maybe do another call to delete the key from the database?
......
......@@ -55,6 +55,7 @@ func CallVirusTotal(id string) (response utils.ResultFrontendResponse, err error
if unmarshalledBody != nil {
log.Println(unmarshalledBody)
logging.Logerror(unmarshalledBody, "")
}
var test3 = make([]utils.FrontendResponse4, len(vtResponse.Data.Attributes.LastAnalysisResults))
......@@ -113,7 +114,6 @@ func CallVirusTotal(id string) (response utils.ResultFrontendResponse, err error
utils.SetResultFile(&response, engines)
log.Println("look here")
log.Println(response)
fmt.Println(response)
......
......@@ -3,6 +3,7 @@ package auth
import (
"crypto/sha256"
"dcsg2900-threattotal/utils"
"dcsg2900-threattotal/logs"
"encoding/json"
"fmt"
"net/http"
......@@ -59,6 +60,7 @@ func CodeToToken(code string) (token string, authenticated bool) {
rawIDToken, error := oauth2Token.Extra("id_token").(string)
if !error {
fmt.Println("No jwt returned.")
logging.Logerror(nil, "No JWT returned AUTH.go:")
return "", false
}
......@@ -66,6 +68,7 @@ func CodeToToken(code string) (token string, authenticated bool) {
idToken, err := utils.Verifier.Verify(utils.Ctx, rawIDToken)
if err != nil {
fmt.Println("Failed to validate the jwt.")
logging.Logerror(err, "Failed to validate JWT Auth.GO: ")
return
}
......@@ -82,6 +85,7 @@ func CodeToToken(code string) (token string, authenticated bool) {
marshalledTokens, err := json.Marshal(data)
if err != nil {
fmt.Println("Error marshalling tokens in CodeToToken")
logging.Logerror(err, "Error marshalling tokens in CodeToToken Auth.go:")
return "", false
}
......@@ -91,6 +95,7 @@ func CodeToToken(code string) (token string, authenticated bool) {
_, err = utils.Conn.Do("SETEX", "user:"+hash, (oauth2Token.Expiry.Unix() - time.Now().Unix()), marshalledTokens)
if err != nil {
fmt.Println("Error adding data to redis:" + err.Error())
logging.Logerror(err, "Error adding data to redis Auth.go:")
return "", false
}
//fmt.Println(response)
......@@ -124,6 +129,8 @@ func getAuth(hash string) (token string, err bool) {
if value == nil {
if error != nil {
fmt.Println("Error:" + error.Error())
logging.Logerror(error, "Error in CacheSearch getAuth:")
}
fmt.Println("No Cache hit")
return "", false
......@@ -133,10 +140,14 @@ func getAuth(hash string) (token string, err bool) {
error := json.Unmarshal(value.([]byte), &responseData)
if error != nil {
fmt.Println("Error unmarshalling")
logging.Logerror(error, "Error unmarshalling GetAuth:")
// If there is an error delete the key
value, error := utils.Conn.Do("DEL", token)
if error != nil {
fmt.Println("Failed deleting key in redis: ", err)
logging.Logerror(error, "Error Failed deleting redis key, getAuth:")
}
fmt.Println("Redis delete response: ", value)
return "", false
......@@ -171,6 +182,8 @@ func Logout(hash string) bool {
_, error := utils.Conn.Do("DEL", hash)
if error != nil {
fmt.Println("Error removing data from redis:" + error.Error())
logging.Logerror(error, "Error removing data from redis Auth.go:")
return false
}
......@@ -178,6 +191,8 @@ func Logout(hash string) bool {
resp, error := http.Get("https://auth.dataporten.no/openid/endsession?id_token_hint=" + userToken)
if error != nil {
fmt.Println("Error logging out from feide:" + error.Error() + ". HTTP status code: " + resp.Status)
logging.Logerror(error, "Error logging out of feide Auth.go:")
return false
}
......
......@@ -6,7 +6,7 @@ import (
"os"
)
func Logerror(msg error) {
func Logerror(err error, msg string) {
// log to custom file
LOG_FILE := "./logs/errorlog"
// open log file
......@@ -22,7 +22,8 @@ func Logerror(msg error) {
// optional: log date-time, filename, and line number
log.SetFlags(log.Lshortfile | log.LstdFlags)
log.Println(msg)
log.Println(msg, err)
}
func Loginfo(msg string){
......
......@@ -2,6 +2,7 @@ package storage
import (
"dcsg2900-threattotal/utils"
"dcsg2900-threattotal/logs"
"fmt"
"os"
......@@ -37,6 +38,8 @@ func AddToPool(key string, timeout int, data string) {
response, err := utils.Conn.Do("SETEX", key, timeout, data)
if err != nil {
fmt.Println("Error:" + err.Error())
logging.Logerror(err, "Error adding to redis pool redis.go:")
}
// Print the response to adding the data (should be "OK"
fmt.Println(response)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment