| @@ -100,11 +100,11 @@ require ( | |||||
| github.com/unknwon/paginater v0.0.0-20151104151617-7748a72e0141 | github.com/unknwon/paginater v0.0.0-20151104151617-7748a72e0141 | ||||
| github.com/urfave/cli v1.20.0 | github.com/urfave/cli v1.20.0 | ||||
| github.com/xanzy/go-gitlab v0.31.0 | github.com/xanzy/go-gitlab v0.31.0 | ||||
| github.com/yohcop/openid-go v0.0.0-20160914080427-2c050d2dae53 | |||||
| github.com/yohcop/openid-go v1.0.0 | |||||
| github.com/yuin/goldmark v1.1.25 | github.com/yuin/goldmark v1.1.25 | ||||
| github.com/yuin/goldmark-meta v0.0.0-20191126180153-f0638e958b60 | github.com/yuin/goldmark-meta v0.0.0-20191126180153-f0638e958b60 | ||||
| golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 | golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 | ||||
| golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e | |||||
| golang.org/x/net v0.0.0-20200506145744-7e3656a0809f | |||||
| golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d | golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d | ||||
| golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f | golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f | ||||
| golang.org/x/text v0.3.2 | golang.org/x/text v0.3.2 | ||||
| @@ -643,8 +643,8 @@ github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70 | |||||
| github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= | github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= | ||||
| github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | ||||
| github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= | github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= | ||||
| github.com/yohcop/openid-go v0.0.0-20160914080427-2c050d2dae53 h1:HsIQ6yAjfjQ3IxPGrTusxp6Qxn92gNVq2x5CbvQvx3w= | |||||
| github.com/yohcop/openid-go v0.0.0-20160914080427-2c050d2dae53/go.mod h1:f6elajwZV+xceiaqgRL090YzLEDGSbqr3poGL3ZgXYo= | |||||
| github.com/yohcop/openid-go v1.0.0 h1:EciJ7ZLETHR3wOtxBvKXx9RV6eyHZpCaSZ1inbBaUXE= | |||||
| github.com/yohcop/openid-go v1.0.0/go.mod h1:/408xiwkeItSPJZSTPF7+VtZxPkPrRRpRNK2vjGh6yI= | |||||
| github.com/yuin/goldmark v1.1.7/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.7/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||
| github.com/yuin/goldmark v1.1.25 h1:isv+Q6HQAmmL2Ofcmg8QauBmDPlUUnSoNhEcC940Rds= | github.com/yuin/goldmark v1.1.25 h1:isv+Q6HQAmmL2Ofcmg8QauBmDPlUUnSoNhEcC940Rds= | ||||
| github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||
| @@ -720,8 +720,8 @@ golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLL | |||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0= | golang.org/x/net v0.0.0-20200301022130-244492dfa37a h1:GuSPYbZzB5/dcLNCwLQLsg3obCJtX9IJhpXkvY7kzk0= | ||||
| golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||
| golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7+slrESplyjG25HgL+k= | |||||
| golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | |||||
| golang.org/x/net v0.0.0-20200506145744-7e3656a0809f h1:QBjCr1Fz5kw158VqdE9JfI9cJnl/ymnJWAdMuinqL7Y= | |||||
| golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= | |||||
| golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180620175406-ef147856a6dd/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| @@ -3,10 +3,19 @@ sudo: false | |||||
| language: go | language: go | ||||
| go: | go: | ||||
| - 1.3.3 | |||||
| - 1.4.2 | |||||
| - 1.5.2 | |||||
| - 1.6beta2 | |||||
| - 1.3.x | |||||
| - 1.4.x | |||||
| - 1.5.x | |||||
| - 1.6.x | |||||
| - 1.7.x | |||||
| - 1.8.x | |||||
| - 1.9.x | |||||
| - 1.10.x | |||||
| - 1.11.x | |||||
| - 1.12.x | |||||
| env: | |||||
| - GO111MODULE=on | |||||
| # Get deps, build, test, and ensure the code is gofmt'ed. | # Get deps, build, test, and ensure the code is gofmt'ed. | ||||
| script: | script: | ||||
| @@ -36,3 +36,12 @@ oid.Verify(...) | |||||
| ## License | ## License | ||||
| Distributed under the [Apache v2.0 license](http://www.apache.org/licenses/LICENSE-2.0.html). | Distributed under the [Apache v2.0 license](http://www.apache.org/licenses/LICENSE-2.0.html). | ||||
| ## Libraries | |||||
| Here is a set of libraries I found on GitHub that could make using this library easier depending on your backends. I haven't tested them, this list is for reference only, and in no particular order: | |||||
| - [Gacnt/myopenid](https://github.com/Gacnt/myopenid) "A Yohcop-Openid Nonce/Discovery storage replacement", using MySQL. | |||||
| - [Gacnt/sqlxid](https://github.com/Gacnt/sqlxid) "An SQLX Adapter for Nonce / Discovery Cache store" | |||||
| - [Gacnt/gormid](https://github.com/Gacnt/gormid) "Use GORM (Go Object Relational Mapping) to store OpenID DiscoveryCache / Nonce in a database" | |||||
| - [hectorj/mysqlOpenID](https://github.com/hectorj/mysqlOpenID) "MySQL OpenID is a package to replace the in memory storage of discoveryCache and nonceStore." | |||||
| @@ -0,0 +1,5 @@ | |||||
| module github.com/yohcop/openid-go | |||||
| go 1.3 | |||||
| require golang.org/x/net v0.0.0-20190522155817-f3200d17e092 | |||||
| @@ -0,0 +1,5 @@ | |||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | |||||
| golang.org/x/net v0.0.0-20190522155817-f3200d17e092 h1:4QSRKanuywn15aTZvI/mIDEgPQpswuFndXpOj3rKEco= | |||||
| golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= | |||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | |||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | |||||
| @@ -55,7 +55,7 @@ func (d *SimpleNonceStore) Accept(endpoint, nonce string) error { | |||||
| now := time.Now() | now := time.Now() | ||||
| diff := now.Sub(ts) | diff := now.Sub(ts) | ||||
| if diff > *maxNonceAge { | if diff > *maxNonceAge { | ||||
| return fmt.Errorf("Nonce too old: %ds", diff.Seconds()) | |||||
| return fmt.Errorf("Nonce too old: %.2fs", diff.Seconds()) | |||||
| } | } | ||||
| s := nonce[20:] | s := nonce[20:] | ||||
| @@ -25,7 +25,7 @@ func Normalize(id string) (string, error) { | |||||
| // Global Context Symbol ("=", "@", "+", "$", "!") or "(", as | // Global Context Symbol ("=", "@", "+", "$", "!") or "(", as | ||||
| // defined in Section 2.2.1 of [XRI_Syntax_2.0], then the input | // defined in Section 2.2.1 of [XRI_Syntax_2.0], then the input | ||||
| // SHOULD be treated as an XRI. | // SHOULD be treated as an XRI. | ||||
| if b := id[0]; b == '=' || b == '@' || b == '+' || b == '$' || b == '!' { | |||||
| if b := id[0]; b == '=' || b == '@' || b == '+' || b == '$' || b == '!' || b == '(' { | |||||
| return id, errors.New("XRI identifiers not supported") | return id, errors.New("XRI identifiers not supported") | ||||
| } | } | ||||
| @@ -645,7 +645,7 @@ github.com/willf/bitset | |||||
| github.com/xanzy/go-gitlab | github.com/xanzy/go-gitlab | ||||
| # github.com/xanzy/ssh-agent v0.2.1 | # github.com/xanzy/ssh-agent v0.2.1 | ||||
| github.com/xanzy/ssh-agent | github.com/xanzy/ssh-agent | ||||
| # github.com/yohcop/openid-go v0.0.0-20160914080427-2c050d2dae53 | |||||
| # github.com/yohcop/openid-go v1.0.0 | |||||
| ## explicit | ## explicit | ||||
| github.com/yohcop/openid-go | github.com/yohcop/openid-go | ||||
| # github.com/yuin/goldmark v1.1.25 | # github.com/yuin/goldmark v1.1.25 | ||||
| @@ -702,7 +702,7 @@ golang.org/x/crypto/ssh/knownhosts | |||||
| # golang.org/x/mod v0.2.0 | # golang.org/x/mod v0.2.0 | ||||
| golang.org/x/mod/module | golang.org/x/mod/module | ||||
| golang.org/x/mod/semver | golang.org/x/mod/semver | ||||
| # golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e | |||||
| # golang.org/x/net v0.0.0-20200506145744-7e3656a0809f | |||||
| ## explicit | ## explicit | ||||
| golang.org/x/net/context | golang.org/x/net/context | ||||
| golang.org/x/net/context/ctxhttp | golang.org/x/net/context/ctxhttp | ||||