-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
66 lines (52 loc) · 1.88 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// SiGa-Go on Riigi allkirjastamisteenust kasutav Go-keelne näidisrakendus.
package main
import (
"encoding/json"
"flag"
"fmt"
"io/ioutil"
"log"
"github.com/e-gov/SiGa-Go/siga"
)
// SiGa-ga suhtlemise klient valmistatakse rakenduse töö algul. Klient on
// globaalmuutujas. ID-kaardiga ja m-ID-ga allkirjastamisele on eraldi,
// fikseeritud seansi ID väärtused (session).
// See on vastuvõetav, kuna näidisrakendus on mõeldud kasutamiseks
// lokaalses masinas, ühe, aeglaselt tegutseva kasutaja poolt.
// Tootmisrakendus muidugi vajab korralikku seansihaldust, kogu ahela
// Sirvikurakendus <-> Serverirakendus <-> SiGa vahel.
var sigaClient siga.Client
// Loo seansid.
const isession = "SiGA_Go_IDCard_Signing"
const msession = "SiGA_Go_mID_Signing"
// main loeb sisse SiGa-Go seadistuse, loob ja käivitab HTTPS kliendi Riigi
// allkirjastamisteenusega suhtlemiseks ja HTTPS serveri kasutajaliidesest
// saabuvate päringute teenindamiseks.
func main() {
fmt.Println("SiGa-Go: Alustan tööd")
cFilePtr := flag.String(
"conf",
"certs/siga-conf-PParmakson.json", "Seadistusfaili asukoht")
flag.Parse()
// Loe seadistusfail.
bytes, err := ioutil.ReadFile(*cFilePtr)
if err != nil {
log.Fatal("SiGa-Go: Viga seadistusfaili lugemisel: ", err)
}
var conf siga.Conf
// Parsi seadistusfail.
if err := json.Unmarshal(bytes, &conf); err != nil {
log.Fatal("SiGa-Go: Viga seadistusfaili parsimisel: ", err)
}
// Loo SiGa klient.
sigaClient = CreateSIGAClient(conf)
// Loo HTTPS server. See peab olema peaprogrammis viimane, sest ListenAndServe
// juurest ei lähe täitmisjärg edasi. XXX: Uurida, parem lahendus?
CreateServer()
// TODO: Kas sigaClient sulgemine on vajalik?
// defer c.Close()
}
// Märkmed
// Imporditud pakis deklareeritud f-de poole pöördumisel kasuta eesliitena
// pakinime.
// https://forum.golangbridge.org/t/go-module-and-importing-local-package/11649