Skip to content

Commit 76be46a

Browse files
committed
updates
1 parent 365739e commit 76be46a

File tree

3 files changed

+126
-63
lines changed

3 files changed

+126
-63
lines changed

managers/coverage.out

+64-59
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,7 @@
11
mode: set
2-
github.com/Ulbora/GoAuth2/managers/utilities.go:32.36,35.26 3 1
3-
github.com/Ulbora/GoAuth2/managers/utilities.go:40.2,40.13 1 1
4-
github.com/Ulbora/GoAuth2/managers/utilities.go:35.26,39.3 3 1
5-
github.com/Ulbora/GoAuth2/managers/utilities.go:43.39,45.37 2 1
6-
github.com/Ulbora/GoAuth2/managers/utilities.go:55.2,55.12 1 1
7-
github.com/Ulbora/GoAuth2/managers/utilities.go:45.37,54.3 4 1
8-
github.com/Ulbora/GoAuth2/managers/utilities.go:59.41,61.37 2 1
9-
github.com/Ulbora/GoAuth2/managers/utilities.go:71.2,71.12 1 1
10-
github.com/Ulbora/GoAuth2/managers/utilities.go:61.37,70.3 4 1
11-
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:37.82,45.2 5 1
12-
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:48.86,51.24 3 1
13-
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:58.2,58.13 1 1
14-
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:51.24,57.3 5 1
15-
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:62.63,65.2 2 1
16-
github.com/Ulbora/GoAuth2/managers/jwt.go:55.61,68.21 11 1
17-
github.com/Ulbora/GoAuth2/managers/jwt.go:71.2,72.20 2 1
18-
github.com/Ulbora/GoAuth2/managers/jwt.go:75.2,80.16 5 1
19-
github.com/Ulbora/GoAuth2/managers/jwt.go:83.2,83.12 1 1
20-
github.com/Ulbora/GoAuth2/managers/jwt.go:68.21,70.3 1 1
21-
github.com/Ulbora/GoAuth2/managers/jwt.go:72.20,74.3 1 1
22-
github.com/Ulbora/GoAuth2/managers/jwt.go:80.16,82.3 1 1
23-
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:37.67,45.2 5 1
24-
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:48.72,51.24 3 1
25-
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:58.2,58.13 1 1
26-
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:51.24,57.3 5 1
27-
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:62.56,65.2 2 1
28-
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:36.64,43.2 5 1
29-
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:46.83,49.26 3 1
30-
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:55.2,55.13 1 1
31-
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:49.26,54.3 4 1
32-
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:59.67,65.2 5 1
33-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:37.78,43.2 5 1
34-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:45.81,48.29 3 1
35-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:53.2,53.12 1 1
36-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:48.29,49.32 1 1
37-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:49.32,51.4 1 1
38-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:57.82,60.26 3 1
39-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:67.2,67.13 1 1
40-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:60.26,66.3 5 1
41-
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:71.61,74.2 2 1
422
github.com/Ulbora/GoAuth2/managers/refreshTokenManager.go:23.84,26.15 3 0
433
github.com/Ulbora/GoAuth2/managers/refreshTokenManager.go:29.2,29.12 1 0
444
github.com/Ulbora/GoAuth2/managers/refreshTokenManager.go:26.16,28.3 0 0
45-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:46.110,48.20 2 1
46-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:84.2,84.42 1 1
47-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:48.20,50.17 2 1
48-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:50.17,53.12 3 1
49-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:53.12,56.62 3 1
50-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:56.62,60.35 4 1
51-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:66.6,67.20 2 1
52-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:60.35,61.30 1 1
53-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:61.30,63.13 2 1
54-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:67.20,70.16 3 1
55-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:70.17,74.8 0 1
56-
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:75.13,77.7 0 0
57-
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:37.80,43.2 5 1
58-
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:46.74,52.2 5 1
59-
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:55.72,62.2 6 1
60-
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:65.84,68.26 3 1
61-
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:75.2,75.13 1 1
62-
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:68.26,74.3 5 1
63-
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:79.62,82.2 2 1
645
github.com/Ulbora/GoAuth2/managers/clientManager.go:49.64,54.74 3 1
656
github.com/Ulbora/GoAuth2/managers/clientManager.go:76.2,76.16 1 1
667
github.com/Ulbora/GoAuth2/managers/clientManager.go:54.74,64.42 9 1
@@ -83,3 +24,67 @@ github.com/Ulbora/GoAuth2/managers/clientManager.go:147.2,147.13 1 1
8324
github.com/Ulbora/GoAuth2/managers/clientManager.go:143.24,146.3 2 1
8425
github.com/Ulbora/GoAuth2/managers/clientManager.go:151.52,154.2 2 1
8526
github.com/Ulbora/GoAuth2/managers/clientManager.go:156.42,164.2 7 1
27+
github.com/Ulbora/GoAuth2/managers/jwt.go:57.61,70.21 12 1
28+
github.com/Ulbora/GoAuth2/managers/jwt.go:73.2,74.20 2 1
29+
github.com/Ulbora/GoAuth2/managers/jwt.go:77.2,82.16 5 1
30+
github.com/Ulbora/GoAuth2/managers/jwt.go:85.2,85.12 1 1
31+
github.com/Ulbora/GoAuth2/managers/jwt.go:70.21,72.3 1 1
32+
github.com/Ulbora/GoAuth2/managers/jwt.go:74.20,76.3 1 1
33+
github.com/Ulbora/GoAuth2/managers/jwt.go:82.16,84.3 1 1
34+
github.com/Ulbora/GoAuth2/managers/jwt.go:89.79,107.16 10 1
35+
github.com/Ulbora/GoAuth2/managers/jwt.go:127.2,127.20 1 1
36+
github.com/Ulbora/GoAuth2/managers/jwt.go:107.16,117.25 10 1
37+
github.com/Ulbora/GoAuth2/managers/jwt.go:121.3,123.31 3 1
38+
github.com/Ulbora/GoAuth2/managers/jwt.go:117.25,119.9 2 1
39+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:46.110,48.20 2 1
40+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:84.2,84.42 1 1
41+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:48.20,50.17 2 1
42+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:50.17,53.12 3 1
43+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:53.12,56.62 3 1
44+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:56.62,60.35 4 1
45+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:66.6,67.20 2 1
46+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:60.35,61.30 1 1
47+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:61.30,63.13 2 1
48+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:67.20,70.16 3 1
49+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:70.17,74.8 0 1
50+
github.com/Ulbora/GoAuth2/managers/authorizationManager.go:75.13,77.7 0 0
51+
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:37.80,43.2 5 1
52+
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:46.74,52.2 5 1
53+
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:55.72,62.2 6 1
54+
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:65.84,68.26 3 1
55+
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:75.2,75.13 1 1
56+
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:68.26,74.3 5 1
57+
github.com/Ulbora/GoAuth2/managers/clientAllowedUriManager.go:79.62,82.2 2 1
58+
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:37.82,45.2 5 1
59+
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:48.86,51.24 3 1
60+
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:58.2,58.13 1 1
61+
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:51.24,57.3 5 1
62+
github.com/Ulbora/GoAuth2/managers/clientRedirectUriManager.go:62.63,65.2 2 1
63+
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:36.64,43.2 5 1
64+
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:46.83,49.26 3 1
65+
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:55.2,55.13 1 1
66+
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:49.26,54.3 4 1
67+
github.com/Ulbora/GoAuth2/managers/clientRoleUriManager.go:59.67,65.2 5 1
68+
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:37.67,45.2 5 1
69+
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:48.72,51.24 3 1
70+
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:58.2,58.13 1 1
71+
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:51.24,57.3 5 1
72+
github.com/Ulbora/GoAuth2/managers/clientRoleManager.go:62.56,65.2 2 1
73+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:37.78,43.2 5 1
74+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:45.81,48.29 3 1
75+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:53.2,53.12 1 1
76+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:48.29,49.32 1 1
77+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:49.32,51.4 1 1
78+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:57.82,60.26 3 1
79+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:67.2,67.13 1 1
80+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:60.26,66.3 5 1
81+
github.com/Ulbora/GoAuth2/managers/grantTypeManager.go:71.61,74.2 2 1
82+
github.com/Ulbora/GoAuth2/managers/utilities.go:32.36,35.26 3 1
83+
github.com/Ulbora/GoAuth2/managers/utilities.go:40.2,40.13 1 1
84+
github.com/Ulbora/GoAuth2/managers/utilities.go:35.26,39.3 3 1
85+
github.com/Ulbora/GoAuth2/managers/utilities.go:43.39,45.37 2 1
86+
github.com/Ulbora/GoAuth2/managers/utilities.go:55.2,55.12 1 1
87+
github.com/Ulbora/GoAuth2/managers/utilities.go:45.37,54.3 4 1
88+
github.com/Ulbora/GoAuth2/managers/utilities.go:59.41,61.37 2 1
89+
github.com/Ulbora/GoAuth2/managers/utilities.go:71.2,71.12 1 1
90+
github.com/Ulbora/GoAuth2/managers/utilities.go:61.37,70.3 4 1

managers/jwt.go

+45-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ package managers
2121
*/
2222

2323
import (
24+
"fmt"
2425
"time"
2526

2627
jwt "github.com/gbrlsnchs/jwt/v3"
@@ -33,6 +34,7 @@ type Payload struct {
3334
ClientID int64
3435
Subject string
3536
Issuer string
37+
Audience string
3638
ExpiresInMinute time.Duration
3739
Grant string
3840
SecretKey string
@@ -58,9 +60,9 @@ func (m *OauthManager) GenerateJwtToken(pl *Payload) string {
5860
var jwtPl jwt.Payload
5961
jwtPl.Subject = pl.Subject
6062
jwtPl.Issuer = pl.Issuer
63+
jwtPl.Audience = jwt.Audience{pl.Audience}
6164
jwtPl.ExpirationTime = jwt.NumericDate(now.Add(pl.ExpiresInMinute * time.Minute))
6265
jwtPl.IssuedAt = jwt.NumericDate(now)
63-
6466

6567
var jpl jwtPayload
6668
jpl.Payload = jwtPl
@@ -82,3 +84,45 @@ func (m *OauthManager) GenerateJwtToken(pl *Payload) string {
8284
}
8385
return rtn
8486
}
87+
88+
//Validate Validate
89+
func (m *OauthManager) Validate(token string, secret string) (bool, *Payload) {
90+
var valid bool
91+
var rtn Payload
92+
var pl jwtPayload
93+
now := time.Now()
94+
var hs = jwt.NewHS256([]byte(secret))
95+
//aud = jwt.Audience{"https://golang.org"}
96+
97+
// Validate claims "iat", "exp" and "aud".
98+
iatValidator := jwt.IssuedAtValidator(now)
99+
expValidator := jwt.ExpirationTimeValidator(now)
100+
//audValidator = jwt.AudienceValidator(aud)
101+
102+
// Use jwt.ValidatePayload to build a jwt.VerifyOption.
103+
// Validators are run in the order informed.
104+
//pl CustomPayload
105+
validatePayload := jwt.ValidatePayload(&pl.Payload, iatValidator, expValidator)
106+
hd, err := jwt.Verify([]byte(token), hs, &pl, validatePayload)
107+
if err == nil {
108+
valid = true
109+
fmt.Println("hd: ", hd)
110+
fmt.Println("pl: ", pl)
111+
rtn.TokenType = pl.TokenType
112+
rtn.UserID = pl.UserID
113+
rtn.ClientID = pl.ClientID
114+
rtn.Subject = pl.Payload.Subject
115+
rtn.Issuer = pl.Payload.Issuer
116+
aud := pl.Payload.Audience
117+
for _, a := range aud {
118+
rtn.Audience = a
119+
break
120+
}
121+
rtn.Grant = pl.Grant
122+
rtn.RoleURIs = pl.RoleURIs
123+
rtn.ScopeList = pl.ScopeList
124+
125+
}
126+
127+
return valid, &rtn
128+
}

managers/jwt_test.go

+17-3
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,40 @@ import (
55
"testing"
66
)
77

8+
var tkn string
9+
810
func TestOauthManagerJwt_GenerateJwtToken(t *testing.T) {
911

1012
var man OauthManager
11-
//var m Manager
12-
//m = &man
1313
var pl Payload
1414
pl.TokenType = "test"
1515
pl.UserID = "tester1"
1616
pl.ClientID = 234
1717
pl.Subject = "code"
1818
pl.Issuer = "GoAuth2"
19+
pl.Audience = "GoAuth2.com"
1920
pl.ExpiresInMinute = 600 //(600 * time.Minute) => (600 * 60) => 36000 minutes => 10 hours
2021
pl.Grant = "code"
2122
pl.SecretKey = "secret"
2223
pl.RoleURIs = []string{"test.com", "test2.com"}
2324
pl.ScopeList = []string{"web", "sever"}
2425
token := man.GenerateJwtToken(&pl)
2526
fmt.Println(token)
26-
if token == ""{
27+
if token == "" {
28+
t.Fail()
29+
} else {
30+
tkn = token
31+
}
32+
}
33+
func TestOauthManagerJwt_ValidateJwtToken(t *testing.T) {
34+
var man OauthManager
35+
36+
suc, pl := man.Validate(tkn, "secret")
37+
if !suc || pl.TokenType != "test" || pl.UserID != "tester1" || pl.ClientID != 234 {
2738
t.Fail()
39+
} else {
40+
fmt.Println("pl: ", pl)
41+
fmt.Println("Audience: ", pl.Audience)
2842
}
2943

3044
}

0 commit comments

Comments
 (0)