main.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/labstack/echo"
  5. "log"
  6. "log/syslog"
  7. "net/http"
  8. "os"
  9. )
  10. var _appversion string = "0.1"
  11. var _appname string = "ZiTel-Sysbo-WS"
  12. func audit(txt string) {
  13. syslogger, err := syslog.New(syslog.LOG_INFO, _appname)
  14. if err != nil {
  15. log.Fatalln(err)
  16. }
  17. log.SetOutput(syslogger)
  18. log.Println(txt)
  19. }
  20. var RealIP string
  21. func extractIP(next echo.HandlerFunc) echo.HandlerFunc {
  22. return func(c echo.Context) error {
  23. RealIP = c.RealIP()
  24. audit("Recieved request from: " + RealIP)
  25. return next(c)
  26. }
  27. }
  28. func main() {
  29. if len(os.Args) != 3 {
  30. fmt.Println("Wrong Usage:\n\t ./CMD IP Port")
  31. audit("Application in the wrong way")
  32. os.Exit(1)
  33. }
  34. echoHandler := echo.New()
  35. echoHandler.Use(extractIP)
  36. audit("Application " + _appname + " (" + _appversion + ") Started by " + os.Getenv("USER"))
  37. echoHandler.GET("/", func(c echo.Context) error {
  38. return c.String(http.StatusOK, "Hello, World!")
  39. })
  40. h := &handler{}
  41. echoHandler.POST("/login", h.login)
  42. echoHandler.GET("/private", h.private, isLoggedIn)
  43. echoHandler.GET("/admin", h.private, isLoggedIn, isAdmin)
  44. echoHandler.POST("/token", h.token)
  45. echoHandler.Logger.Fatal(echoHandler.Start(os.Args[1] + ":" + os.Args[2]))
  46. }