Browse Source

Add Auditing Method

Sasan Torabkheslat 5 years ago
parent
commit
1ab64a5d5b
2 changed files with 43 additions and 11 deletions
  1. 1 1
      handler.go
  2. 42 10
      main.go

+ 1 - 1
handler.go

@@ -85,7 +85,7 @@ func (h *handler) login(c echo.Context) error {
 	payload := strings.NewReader(params.Encode())
 	client := &http.Client{}
 	req, err := http.NewRequest(method, _url, payload)
-
+	audit("Recieved Login request from:" + RealIP)
 	if err != nil {
 		fmt.Println(err)
 	}

+ 42 - 10
main.go

@@ -1,26 +1,58 @@
 package main
 
 import (
-	"net/http"
-
+	"fmt"
 	"github.com/labstack/echo"
+	"log"
+	"log/syslog"
+	"net/http"
+	"os"
 )
 
+var _appversion string = "0.1"
+var _appname string = "ZiTel-Sysbo-WS"
+
+func audit(txt string) {
+
+	syslogger, err := syslog.New(syslog.LOG_INFO, _appname)
+	if err != nil {
+		log.Fatalln(err)
+	}
+	log.SetOutput(syslogger)
+	log.Println(txt)
+
+}
+
+var RealIP string
+
+func extractIP(next echo.HandlerFunc) echo.HandlerFunc {
+	return func(c echo.Context) error {
+		RealIP = c.RealIP()
+		audit("Recieved request from: " + RealIP)
+		return next(c)
+	}
+}
 func main() {
-	e := echo.New()
-	e.GET("/", func(c echo.Context) error {
+	if len(os.Args) != 3 {
+		fmt.Println("Wrong Usage:\n\t ./CMD IP Port")
+		audit("Application in the wrong way")
+		os.Exit(1)
+	}
+	echoHandler := echo.New()
+	echoHandler.Use(extractIP)
+	audit("Application " + _appname + " (" + _appversion + ") Started by " + os.Getenv("USER"))
+	echoHandler.GET("/", func(c echo.Context) error {
 		return c.String(http.StatusOK, "Hello, World!")
 	})
 
 	h := &handler{}
+	echoHandler.POST("/login", h.login)
 
-	e.POST("/login", h.login)
-
-	e.GET("/private", h.private, isLoggedIn)
+	echoHandler.GET("/private", h.private, isLoggedIn)
 
-	e.GET("/admin", h.private, isLoggedIn, isAdmin)
+	echoHandler.GET("/admin", h.private, isLoggedIn, isAdmin)
 
-	e.POST("/token", h.token)
+	echoHandler.POST("/token", h.token)
 
-	e.Logger.Fatal(e.Start(":1323"))
+	echoHandler.Logger.Fatal(echoHandler.Start(os.Args[1] + ":" + os.Args[2]))
 }