|
@@ -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]))
|
|
|
}
|