Skip to content

Commit 2afd755

Browse files
committed
Update libraries, changed small details
1 parent 38e6973 commit 2afd755

File tree

14 files changed

+160
-119
lines changed

14 files changed

+160
-119
lines changed

example.env .example.env

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
1-
ENV=local
1+
## General settings
22
PORT=9081
3-
#dummy sym key
4-
HS256=LZ2TY3NKFKLJJFQY3WU56RPZ7KBX2NU4VIIIRC42DZGJJCN65N3A====
3+
ENV=local
4+
HS256=test-seed
5+
DEV=test
6+
7+
#Set admins by email
58
69

10+
#DB settings
711
DB_PATH=postgresql://postgres:password@db:5432/flatfeestack?sslmode=disable
812
DB_DRIVER=postgres
913
DB_SCRIPTS=init.sql
14+
#This inserts dummy users
15+
USERS=[email protected]:pw2;tom:pw1
1016

17+
#Email settings
1118
1219
EMAIL_FROM_NAME=Flatfeestack
1320
EMAIL_URL=https://nope.ch/mailer
1421
EMAIL_TOKEN=%%EMAIL_TOKEN%%
1522
EMAIL_PREFIX=https://test.flatfeestack.io
1623

24+
#Auth specific settings
1725
PWFLOW=true
1826
DETAILS=true
1927
USER_ENDPOINTS=true

Dockerfile

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
FROM golang:1.19-alpine AS base
22
RUN apk update && apk add --update make gcc musl-dev
33
WORKDIR /app
4-
COPY go.* Makefile cache ./
4+
COPY go.* cache ./
5+
RUN go mod download
56
#here we build cache.go, as this takes ages to compile and does not change
6-
RUN make dep && make build && rm fastauth cache.go
7+
RUN go build && rm fastauth cache.go
78

89
FROM base as builder
910
COPY *.go *.sql login.html banner.txt ./
10-
RUN make build test
11+
RUN go build
1112

12-
FROM gcr.io/distroless/static
13-
WORKDIR /home/nonroot
13+
FROM alpine:3.17
14+
RUN addgroup -S nonroot -g 31323 && adduser -S nonroot -G nonroot -u 31323
15+
WORKDIR /app
1416
COPY --from=builder /app/login.html /app/banner.txt /app/fastauth /app/rmdb.sql /app/init.sql ./
1517
USER nonroot
16-
VOLUME /home/nonroot/fastauth.db
17-
ENTRYPOINT ["/home/nonroot/fastauth"]
18+
ENTRYPOINT ["/app/fastauth"]

Makefile

-13
This file was deleted.

controller.go

+24-4
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import (
99
"encoding/hex"
1010
"encoding/json"
1111
"fmt"
12+
"github.com/go-jose/go-jose/v3"
1213
"github.com/gorilla/mux"
1314
"github.com/gorilla/schema"
1415
log "github.com/sirupsen/logrus"
1516
"golang.org/x/crypto/scrypt"
1617
"golang.org/x/text/language"
17-
"gopkg.in/square/go-jose.v2"
1818
"html/template"
1919
"io"
2020
"io/ioutil"
@@ -24,6 +24,10 @@ import (
2424
"strings"
2525
)
2626

27+
type Timewarp struct {
28+
Offset int `json:"offset"`
29+
}
30+
2731
type EmailRequest struct {
2832
MailTo string `json:"mail_to,omitempty"`
2933
Subject string `json:"subject"`
@@ -926,8 +930,8 @@ func oauth(w http.ResponseWriter, r *http.Request) {
926930
}
927931
}
928932

929-
//https://tools.ietf.org/html/rfc6749#section-1.3.1
930-
//https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce
933+
// https://tools.ietf.org/html/rfc6749#section-1.3.1
934+
// https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce
931935
func authorize(w http.ResponseWriter, r *http.Request) {
932936
keys := r.URL.Query()
933937
rt := keys.Get("response_type")
@@ -1006,6 +1010,13 @@ func logout(w http.ResponseWriter, r *http.Request, claims *TokenClaims) {
10061010
}
10071011
}
10081012

1013+
func timeWarpOffset(w http.ResponseWriter, _ *http.Request, _ string) {
1014+
tw := Timewarp{
1015+
Offset: secondsAdd,
1016+
}
1017+
writeJson(w, tw)
1018+
}
1019+
10091020
func timeWarp(w http.ResponseWriter, r *http.Request, adminEmail string) {
10101021
m := mux.Vars(r)
10111022
h := m["hours"]
@@ -1019,7 +1030,8 @@ func timeWarp(w http.ResponseWriter, r *http.Request, adminEmail string) {
10191030
return
10201031
}
10211032

1022-
hoursAdd += hours
1033+
seconds := hours * 60 * 60
1034+
secondsAdd += seconds
10231035
log.Printf("time warp: %v", timeNow())
10241036

10251037
//since we warp, the token will be invalid
@@ -1073,3 +1085,11 @@ func updateUser(w http.ResponseWriter, r *http.Request, admin string) {
10731085
}
10741086
w.WriteHeader(http.StatusNoContent)
10751087
}
1088+
1089+
func writeJson(w http.ResponseWriter, obj interface{}) {
1090+
w.Header().Set("Content-Type", "application/json")
1091+
var err = json.NewEncoder(w).Encode(obj)
1092+
if err != nil {
1093+
writeErr(w, http.StatusBadRequest, "invalid_grant", "not-found", "Could encode json: %v", err)
1094+
}
1095+
}

example-hello/hello.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package main
33
import (
44
"flag"
55
"fmt"
6+
"github.com/go-jose/go-jose/v3/jwt"
67
"github.com/joho/godotenv"
7-
"gopkg.in/square/go-jose.v2/jwt"
88
"log"
99
"net/http"
1010
"os"

example-mail/mailer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"flag"
77
"fmt"
88
"github.com/domodwyer/mailyak/v3"
9+
"github.com/go-jose/go-jose/v3/jwt"
910
"github.com/joho/godotenv"
1011
log "github.com/sirupsen/logrus"
11-
"gopkg.in/square/go-jose.v2/jwt"
1212
"net/http"
1313
"net/smtp"
1414
"os"

example-tokenizer/tokenizer.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import (
99
"encoding/hex"
1010
"flag"
1111
"fmt"
12+
"github.com/go-jose/go-jose/v3"
13+
"github.com/go-jose/go-jose/v3/jwt"
1214
"golang.org/x/crypto/ed25519"
13-
"gopkg.in/square/go-jose.v2"
14-
"gopkg.in/square/go-jose.v2/jwt"
1515
"log"
1616
"os"
1717
"strings"

example-upload/fileupload.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import (
1515
"encoding/base32"
1616
"flag"
1717
"fmt"
18+
"github.com/go-jose/go-jose/v3/jwt"
1819
"github.com/joho/godotenv"
19-
"gopkg.in/square/go-jose.v2/jwt"
2020
"log"
2121
"net/http"
2222
"os"

example-upload/go.mod

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
module example-upload
22

3-
go 1.16
3+
go 1.19
4+
5+
require (
6+
github.com/go-jose/go-jose/v3 v3.0.0
7+
github.com/joho/godotenv v1.4.0
8+
)
49

510
require (
611
github.com/google/go-cmp v0.5.6 // indirect
7-
github.com/joho/godotenv v1.3.0
812
github.com/stretchr/testify v1.7.0 // indirect
913
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 // indirect
10-
gopkg.in/square/go-jose.v2 v2.6.0
1114
)

example-upload/go.sum

+12-10
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
22
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3+
github.com/go-jose/go-jose/v3 v3.0.0 h1:s6rrhirfEP/CGIoc6p+PZAeogN2SxKav6Wp7+dyMWVo=
4+
github.com/go-jose/go-jose/v3 v3.0.0/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8=
5+
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
36
github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
47
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
5-
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
6-
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
8+
github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg=
9+
github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
710
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
811
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
912
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
13+
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1014
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
1115
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
16+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
17+
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
1218
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI=
1319
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
14-
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
15-
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
16-
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
17-
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
18-
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
19-
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
20+
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
21+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
22+
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
23+
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
2024
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
2125
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
22-
gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
23-
gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
2426
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
2527
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

go.mod

+17-17
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
module fastauth
22

3-
go 1.17
3+
go 1.19
44

55
require (
66
github.com/dimiro1/banner v1.1.0
7-
github.com/domodwyer/mailyak/v3 v3.3.3
8-
github.com/felixge/httpsnoop v1.0.2
9-
github.com/go-ldap/ldap/v3 v3.4.1
7+
github.com/domodwyer/mailyak/v3 v3.3.4
8+
github.com/felixge/httpsnoop v1.0.3
9+
github.com/go-jose/go-jose/v3 v3.0.0
10+
github.com/go-ldap/ldap/v3 v3.4.4
1011
github.com/gorilla/mux v1.8.0
1112
github.com/gorilla/schema v1.2.0
1213
github.com/joho/godotenv v1.4.0
13-
github.com/kjk/dailyrotate v0.0.0-20191009232928-ae3b0facf5a6
1414
github.com/lib/pq v1.10.4
15-
github.com/mattn/go-sqlite3 v1.14.9
16-
github.com/sirupsen/logrus v1.8.1
17-
github.com/stretchr/testify v1.7.0
15+
github.com/lor00x/goldap v0.0.0-20180618054307-a546dffdd1a3
16+
github.com/mattn/go-sqlite3 v1.14.16
17+
github.com/sirupsen/logrus v1.9.0
18+
github.com/stretchr/testify v1.8.1
1819
github.com/vjeantet/ldapserver v1.0.2-0.20201119091145-9f1711e226a4
19-
github.com/xlzd/gotp v0.0.0-20181030022105-c8557ba2c119
20-
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
21-
golang.org/x/text v0.3.7
22-
gopkg.in/square/go-jose.v2 v2.6.0
20+
github.com/xlzd/gotp v0.1.0
21+
golang.org/x/crypto v0.3.0
22+
golang.org/x/text v0.4.0
23+
github.com/go-jose/go-jose/v3 v3.0.0
2324
)
2425

2526
require (
26-
github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c // indirect
27+
github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e // indirect
2728
github.com/common-nighthawk/go-figure v0.0.0-20200609044655-c4b36f998cf2 // indirect
2829
github.com/davecgh/go-spew v1.1.1 // indirect
29-
github.com/go-asn1-ber/asn1-ber v1.5.1 // indirect
30+
github.com/go-asn1-ber/asn1-ber v1.5.4 // indirect
3031
github.com/google/go-cmp v0.5.2 // indirect
3132
github.com/kr/pretty v0.1.0 // indirect
32-
github.com/lor00x/goldap v0.0.0-20180618054307-a546dffdd1a3 // indirect
3333
github.com/mattn/go-isatty v0.0.12 // indirect
3434
github.com/pmezard/go-difflib v1.0.0 // indirect
35-
golang.org/x/sys v0.0.0-20200929083018-4d22bbb62b3c // indirect
35+
golang.org/x/sys v0.2.0 // indirect
3636
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
37-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
37+
gopkg.in/yaml.v3 v3.0.1 // indirect
3838
)

0 commit comments

Comments
 (0)