mirror of
https://github.com/Sean-Der/fail2rest.git
synced 2024-12-22 05:32:20 +01:00
43 lines
849 B
Go
43 lines
849 B
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/Sean-Der/fail2go"
|
|
"github.com/gorilla/mux"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
type Configuration struct {
|
|
Addr string
|
|
Fail2banSocket string
|
|
}
|
|
|
|
var fail2goConn *fail2go.Fail2goConn
|
|
|
|
func main() {
|
|
file, fileErr := os.Open("config.json")
|
|
|
|
if fileErr != nil {
|
|
fmt.Println("failed to open config:", fileErr)
|
|
os.Exit(1)
|
|
}
|
|
|
|
configuration := new(Configuration)
|
|
configErr := json.NewDecoder(file).Decode(configuration)
|
|
|
|
if configErr != nil {
|
|
fmt.Println("config error:", configErr)
|
|
os.Exit(1)
|
|
}
|
|
|
|
fail2goConn := fail2go.Newfail2goConn(configuration.Fail2banSocket)
|
|
r := mux.NewRouter()
|
|
|
|
globalHandler(r.PathPrefix("/global").Subrouter(), fail2goConn)
|
|
jailHandler(r.PathPrefix("/jail").Subrouter(), fail2goConn)
|
|
|
|
http.Handle("/", r)
|
|
http.ListenAndServe(configuration.Addr, nil)
|
|
}
|