arnaucube
arnaucube/darkID-prototypePublic Self-hosted repository
darkID-prototype/serverIDsigner/main.go
serverIDsigner/main.goRaw
 1package main
 2
 3import (
 4	"fmt"
 5	"log"
 6	"net/http"
 7
 8	mgo "gopkg.in/mgo.v2"
 9
10	"github.com/fatih/color"
11	"github.com/gorilla/handlers"
12
13	ownrsa "./ownrsa"
14)
15
16var userCollection *mgo.Collection
17
18var serverRSA ownrsa.RSA
19
20func main() {
21	color.Blue("Starting serverIDsigner")
22
23	//read configuration file
24	readConfig("config.json")
25
26	initializeToken()
27
28	//initialize RSA
29	serverRSA = ownrsa.GenerateKeyPair()
30	color.Blue("Public Key:")
31	fmt.Println(serverRSA.PubK)
32	color.Green("Private Key:")
33	fmt.Println(serverRSA.PrivK)
34
35	//mongodb
36	session, err := getSession()
37	check(err)
38	userCollection = getCollection(session, "users")
39
40	//run API
41	log.Println("api server running")
42	log.Print("port: ")
43	log.Println(config.Port)
44	router := NewRouter()
45	headersOk := handlers.AllowedHeaders([]string{"X-Requested-With", "Access-Control-Allow-Origin"})
46	originsOk := handlers.AllowedOrigins([]string{"*"})
47	methodsOk := handlers.AllowedMethods([]string{"GET", "HEAD", "POST", "PUT", "OPTIONS"})
48	log.Fatal(http.ListenAndServe(":"+config.Port, handlers.CORS(originsOk, headersOk, methodsOk)(router)))
49}