From 845a18ccf4e563bdae6aadbd40642ed2a9f10bc6 Mon Sep 17 00:00:00 2001 From: Kamil Piotrowski Date: Tue, 17 Dec 2019 12:49:12 +0100 Subject: [PATCH] Updated code and switched to go mod --- Gopkg.lock | 80 ------------------------------------------------ Gopkg.toml | 3 -- auth/auth.go | 23 +++++++++++--- auth/static.go | 2 +- auth/template.go | 6 ++-- go.mod | 9 ++++++ go.sum | 47 ++++++++++++++++++++++++++++ 7 files changed, 78 insertions(+), 92 deletions(-) delete mode 100644 Gopkg.lock delete mode 100644 Gopkg.toml create mode 100644 go.mod create mode 100644 go.sum diff --git a/Gopkg.lock b/Gopkg.lock deleted file mode 100644 index 445d618..0000000 --- a/Gopkg.lock +++ /dev/null @@ -1,80 +0,0 @@ -# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. - - -[[projects]] - digest = "1:870d441fe217b8e689d7949fef6e43efbc787e50f200cb1e70dbca9204a1d6be" - name = "github.com/inconshreveable/mousetrap" - packages = ["."] - pruneopts = "UT" - revision = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75" - version = "v1.0" - -[[projects]] - digest = "1:31e761d97c76151dde79e9d28964a812c46efc5baee4085b86f68f0c654450de" - name = "github.com/konsorten/go-windows-terminal-sequences" - packages = ["."] - pruneopts = "UT" - revision = "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e" - version = "v1.0.2" - -[[projects]] - digest = "1:87c2e02fb01c27060ccc5ba7c5a407cc91147726f8f40b70cceeedbc52b1f3a8" - name = "github.com/sirupsen/logrus" - packages = ["."] - pruneopts = "UT" - revision = "e1e72e9de974bd926e5c56f83753fba2df402ce5" - version = "v1.3.0" - -[[projects]] - digest = "1:645cabccbb4fa8aab25a956cbcbdf6a6845ca736b2c64e197ca7cbb9d210b939" - name = "github.com/spf13/cobra" - packages = ["."] - pruneopts = "UT" - revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" - version = "v0.0.3" - -[[projects]] - digest = "1:c1b1102241e7f645bc8e0c22ae352e8f0dc6484b6cb4d132fa9f24174e0119e2" - name = "github.com/spf13/pflag" - packages = ["."] - pruneopts = "UT" - revision = "298182f68c66c05229eb03ac171abe6e309ee79a" - version = "v1.0.3" - -[[projects]] - branch = "master" - digest = "1:058e9504b9a79bfe86092974d05bb3298d2aa0c312d266d43148de289a5065d9" - name = "golang.org/x/crypto" - packages = ["ssh/terminal"] - pruneopts = "UT" - revision = "8dd112bcdc25174059e45e07517d9fc663123347" - -[[projects]] - branch = "master" - digest = "1:7427036b6d926b3d1fa0773771820735b35554a98296f1074df440ee30a97296" - name = "golang.org/x/net" - packages = ["websocket"] - pruneopts = "UT" - revision = "16b79f2e4e95ea23b2bf9903c9809ff7b013ce85" - -[[projects]] - branch = "master" - digest = "1:1be6480d6816d23e125645a42e38c9a2637a460d8470f432be6ffc02306c5488" - name = "golang.org/x/sys" - packages = [ - "unix", - "windows", - ] - pruneopts = "UT" - revision = "b294cbcfc56d2a65a30c02c78722b5df061e99b8" - -[solve-meta] - analyzer-name = "dep" - analyzer-version = 1 - input-imports = [ - "github.com/sirupsen/logrus", - "github.com/spf13/cobra", - "golang.org/x/net/websocket", - ] - solver-name = "gps-cdcl" - solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml deleted file mode 100644 index 5c879c7..0000000 --- a/Gopkg.toml +++ /dev/null @@ -1,3 +0,0 @@ -[prune] - go-tests = true - unused-packages = true diff --git a/auth/auth.go b/auth/auth.go index b7e5d68..8fe4247 100644 --- a/auth/auth.go +++ b/auth/auth.go @@ -110,7 +110,10 @@ func (c *CognitoAuth) GetToken() (*CognitoToken, error) { defer server.Close() go c.serveWebSocket(responseChan, errorChan) go c.serveAuthPage(errorChan, &server) - openBrowser(fmt.Sprintf("http://localhost:%s", serverPort)) + err := openBrowser(fmt.Sprintf("http://localhost:%s", serverPort)) + if err != nil { + return nil, fmt.Errorf("cannot open the Internet browser for authentication: %s", err.Error()) + } select { case err := <-errorChan: @@ -132,27 +135,32 @@ func (c *CognitoAuth) hash() string { } func (c *CognitoAuth) getTokenFromFile() *CognitoToken { - file, err := os.OpenFile(c.getTokenPath(), os.O_RDONLY, 0660) + fileName := c.getTokenPath() + file, err := os.OpenFile(fileName, os.O_RDONLY, 0660) if err != nil { return nil } b, err := ioutil.ReadAll(file) if err != nil { + os.Remove(fileName) return nil } token := &CognitoToken{} err = json.Unmarshal(b, token) if err != nil { + os.Remove(fileName) return nil } token.auth = c - if token.ExpirationDate.Unix() >= time.Now().Unix() { - return token + if token.ExpirationDate.Unix() < time.Now().Unix() { + os.Remove(fileName) + return nil } - return nil + + return token } func (c *CognitoAuth) saveToken(token CognitoToken) { @@ -164,6 +172,11 @@ func (c *CognitoAuth) saveToken(token CognitoToken) { } data, _ := json.Marshal(token) + err = file.Truncate(0) + if err != nil { + log.Warn("Failed to clear file token", err.Error()) + return + } _, err = file.Write(data) if err != nil { log.Warn("Failed to write to file token", err.Error()) diff --git a/auth/static.go b/auth/static.go index 69640c0..a20f919 100644 --- a/auth/static.go +++ b/auth/static.go @@ -81,7 +81,7 @@ func cognitohosteduilauncherJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cognitohosteduilauncher.js", size: 869768, mode: os.FileMode(436), modTime: time.Unix(1570780544, 0)} + info := bindataFileInfo{name: "cognitohosteduilauncher.js", size: 869768, mode: os.FileMode(436), modTime: time.Unix(1570781493, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/auth/template.go b/auth/template.go index 8c32539..c322973 100644 --- a/auth/template.go +++ b/auth/template.go @@ -53,11 +53,11 @@ func openBrowser(url string) error { log.Debug("Opening browser") switch runtime.GOOS { case "linux": - return exec.Command("xdg-open", url).Start() + return exec.Command("xdg-open", url).Run() case "windows": - return exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start() + return exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Run() case "darwin": - return exec.Command("open", url).Start() + return exec.Command("open", url).Run() default: return fmt.Errorf("unsupported platform") } diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..0fad249 --- /dev/null +++ b/go.mod @@ -0,0 +1,9 @@ +module github.com/nordcloud/cognito-go-auth + +go 1.13 + +require ( + github.com/sirupsen/logrus v1.4.2 + github.com/spf13/cobra v0.0.5 + golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..93b72ca --- /dev/null +++ b/go.sum @@ -0,0 +1,47 @@ +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=