Added tests for the type of error returned
Brian Kassouf
7 years ago
18 | 18 |
var (
|
19 | 19 |
ErrTokenContextMissing = errors.New("Token up for parsing was not passed through the context")
|
20 | 20 |
ErrTokenInvalid = errors.New("JWT Token was invalid")
|
21 | |
ErrUnexpectedSigningMethod = errors.New("Unexptected signing method")
|
|
21 |
ErrUnexpectedSigningMethod = errors.New("Unexpected signing method")
|
22 | 22 |
ErrKIDNotFound = errors.New("Key ID was not found in key set")
|
23 | 23 |
ErrNoKIDHeader = errors.New("Token doesn't have 'kid' header")
|
24 | 24 |
)
|
|
89 | 89 |
return key.Key, nil
|
90 | 90 |
})
|
91 | 91 |
if err != nil {
|
|
92 |
if e, ok := err.(*jwt.ValidationError); ok && e.Inner != nil {
|
|
93 |
return nil, e.Inner
|
|
94 |
}
|
|
95 |
|
92 | 96 |
return nil, err
|
93 | 97 |
}
|
94 | 98 |
|
61 | 61 |
t.Error("Parser should have returned an error")
|
62 | 62 |
}
|
63 | 63 |
|
|
64 |
if err != ErrTokenContextMissing {
|
|
65 |
t.Errorf("unexpected error returned, expected: %s got: %s", ErrTokenContextMissing, err)
|
|
66 |
}
|
|
67 |
|
64 | 68 |
// Invalid Token is passed into the parser
|
65 | 69 |
ctx := context.WithValue(context.Background(), JWTTokenContextKey, invalidKey)
|
66 | 70 |
_, err = parser(ctx, struct{}{})
|
|
81 | 85 |
_, err = badParser(ctx, struct{}{})
|
82 | 86 |
if err == nil {
|
83 | 87 |
t.Error("Parser should have returned an error")
|
|
88 |
}
|
|
89 |
|
|
90 |
if err != ErrUnexpectedSigningMethod {
|
|
91 |
t.Errorf("unexpected error returned, expected: %s got: %s", ErrUnexpectedSigningMethod, err)
|
84 | 92 |
}
|
85 | 93 |
|
86 | 94 |
// Invalid key is used in the parser
|