[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taldir] branch master updated (7c7ea95 -> 5dee01a)
From: |
gnunet |
Subject: |
[taler-taldir] branch master updated (7c7ea95 -> 5dee01a) |
Date: |
Tue, 19 Apr 2022 17:53:22 +0200 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a change to branch master
in repository taldir.
from 7c7ea95 Switch to postgres
new be90eab move from json to ini
new 5dee01a add config ini
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
config.json | 13 -------------
go.mod | 1 +
taldir.conf | 17 +++++++++++++++++
taldir.go | 42 +++++++++++++++++++++++-------------------
4 files changed, 41 insertions(+), 32 deletions(-)
delete mode 100644 config.json
create mode 100644 taldir.conf
diff --git a/config.json b/config.json
deleted file mode 100644
index a03be20..0000000
--- a/config.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "production": false,
- "validators": ["email","phone"],
- "email_sender": "taldir@taler.net",
- "host": "https://taldir.net/",
- "bind_to": "localhost:11000",
- "salt": "ChangeMe",
- "pq_host": "localhost",
- "pq_port": 5432,
- "pq_user": "taldir",
- "pq_password": "secret",
- "pq_dbname": "taldir"
-}
diff --git a/go.mod b/go.mod
index 0a2a8bc..24be3e6 100644
--- a/go.mod
+++ b/go.mod
@@ -8,6 +8,7 @@ require (
github.com/jcmturner/gokrb5/v8 v8.2.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect
+ gopkg.in/ini.v1 v1.66.4 // indirect
gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect
gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect
gopkg.in/jcmturner/goidentity.v3 v3.0.0 // indirect
diff --git a/taldir.conf b/taldir.conf
new file mode 100644
index 0000000..b60110c
--- /dev/null
+++ b/taldir.conf
@@ -0,0 +1,17 @@
+[taldir]
+production = false
+validators = "email phone"
+host = "https://taldir.net"
+bind_to = "localhost:11000"
+salt = "ChangeMe"
+
+[taldir-email]
+sender = "taldir@taler.net"
+
+
+[taldir-pq]
+host = "localhost"
+port = 5432
+user = "taldir"
+password = "secret"
+db_name = "taldir"
diff --git a/taldir.go b/taldir.go
index eeb622e..2c3e914 100644
--- a/taldir.go
+++ b/taldir.go
@@ -13,6 +13,8 @@ import (
"net/smtp"
"crypto/sha256"
"gorm.io/driver/postgres"
+ "gopkg.in/ini.v1"
+ "strings"
)
type Configuration struct {
@@ -55,7 +57,7 @@ type Validation struct {
var db *gorm.DB
// Our configuration from the config.json
-var config Configuration
+var cfg *ini.File
// Map of supported validators as defined in the configuration
var validators map[string]bool
@@ -63,7 +65,7 @@ var validators map[string]bool
// Send an email for email identities
func sendEmail(recipient string, ref Validation) {
- from := config.EmailSender
+ from :=
cfg.Section("taldir-email").Key("sender").MustString("taldir@example.com")
to := []string{
recipient,
}
@@ -71,8 +73,10 @@ func sendEmail(recipient string, ref Validation) {
smtpHost := "localhost"
smtpPort := "587"
- message := fmt.Sprintf("Please click here to validate your Taldir identity:
%s%s", config.Host, ref.ValidationReference)
-
+ message := fmt.Sprintf("Please click here to validate your Taldir identity:
%s%s",
+ cfg.Section("taldir").Key("host").MustString("http://localhost"),
+ ref.ValidationReference)
+
err := smtp.SendMail(smtpHost+":"+smtpPort, nil, from, to, []byte(message))
if err != nil {
fmt.Println(err)
@@ -100,8 +104,8 @@ func returnSingleEntry(w http.ResponseWriter, r
*http.Request){
// Hashes an identity key (e.g. sha256(<email address>)) with a salt for
// Lookup and storage.
func hashIdentityKey(idkey string) string {
- fmt.Println("Using salt " + config.Salt)
- salt := make([]byte, len(config.Salt))
+ fmt.Println("Using salt " +
cfg.Section("taldir").Key("salt").MustString("ChangeMe"))
+ salt := make([]byte,
len(cfg.Section("taldir").Key("salt").MustString("ChangeMe")))
h := sha256.New()
h.Write([]byte(idkey))
h.Write(salt)
@@ -204,29 +208,29 @@ func handleRequests() {
myRouter.HandleFunc("/directory/{identity_key}",
returnSingleEntry).Methods("GET")
myRouter.HandleFunc("/validation/{reference}",
validateSingleEntry).Methods("GET")
myRouter.HandleFunc("/register/{identity}",
addPendingValidation).Methods("POST")
- fmt.Println("Listening on " + config.BindTo)
- log.Fatal(http.ListenAndServe(config.BindTo, myRouter))
+
log.Fatal(http.ListenAndServe(cfg.Section("taldir").Key("bind_to").MustString("localhost:11000"),
myRouter))
}
func main() {
- file, _ := os.Open("config.json")
- defer file.Close()
- decoder := json.NewDecoder(file)
- config = Configuration{}
- err := decoder.Decode(&config)
+ _cfg, err := ini.Load("taldir.conf")
if err != nil {
- fmt.Println("error:", err)
+ fmt.Printf("Failed to read config: %v", err)
+ os.Exit(1)
}
- if config.Production {
+ cfg = _cfg
+ if cfg.Section("taldir").Key("production").MustBool(false) {
fmt.Println("Production mode enabled")
}
validators = make(map[string]bool)
- fmt.Println(config.BindTo)
- fmt.Println("Enabled validators:", config.Validators)
- for _, a := range config.Validators {
+ for _, a := range
strings.Split(cfg.Section("taldir").Key("validators").String(), " ") {
validators[a] = true
}
- psqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s
sslmode=disable", config.PqHost, config.PqPort, config.PqUser,
config.PqPassword, config.PqDbname)
+ psqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s
sslmode=disable",
+ cfg.Section("taldir-pq").Key("host").MustString("localhost"),
+ cfg.Section("taldir-pq").Key("port").MustInt64(5432),
+ cfg.Section("taldir-pq").Key("user").MustString("taldir"),
+ cfg.Section("taldir-pq").Key("password").MustString("secret"),
+ cfg.Section("taldir-pq").Key("db_name").MustString("taldir"))
_db, err := gorm.Open(postgres.Open(psqlconn), &gorm.Config{})
if err != nil {
panic(err)
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taldir] branch master updated (7c7ea95 -> 5dee01a),
gnunet <=