forked from mirror/jwt
50 lines
1.7 KiB
Go
50 lines
1.7 KiB
Go
|
package jwt
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"io"
|
||
|
"bytes"
|
||
|
"testing"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
var testData = []struct{
|
||
|
name string
|
||
|
tokenString string
|
||
|
claims map[string]interface{}
|
||
|
valid bool
|
||
|
}{
|
||
|
{
|
||
|
"basic: foo => bar",
|
||
|
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJmb28iOiJiYXIifQ.FhkiHkoESI_cG3NPigFrxEk9Z60_oXrOT2vGm9Pn6RDgYNovYORQmmA0zs1AoAOf09ly2Nx2YAg6ABqAYga1AcMFkJljwxTT5fYphTuqpWdy4BELeSYJx5Ty2gmr8e7RonuUztrdD5WfPqLKMm1Ozp_T6zALpRmwTIW0QPnaBXaQD90FplAg46Iy1UlDKr-Eupy0i5SLch5Q-p2ZpaL_5fnTIUDlxC3pWhJTyx_71qDI-mAA_5lE_VdroOeflG56sSmDxopPEG3bFlSu1eowyBfxtu0_CuVd-M42RU75Zc4Gsj6uV77MBtbMrf4_7M_NUTSgoIF3fRqxrj0NzihIBg",
|
||
|
map[string]interface{}{"foo": "bar"},
|
||
|
true,
|
||
|
},
|
||
|
{
|
||
|
"basic invalid: foo => bar",
|
||
|
"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJmb28iOiJiYXIifQ.EhkiHkoESI_cG3NPigFrxEk9Z60_oXrOT2vGm9Pn6RDgYNovYORQmmA0zs1AoAOf09ly2Nx2YAg6ABqAYga1AcMFkJljwxTT5fYphTuqpWdy4BELeSYJx5Ty2gmr8e7RonuUztrdD5WfPqLKMm1Ozp_T6zALpRmwTIW0QPnaBXaQD90FplAg46Iy1UlDKr-Eupy0i5SLch5Q-p2ZpaL_5fnTIUDlxC3pWhJTyx_71qDI-mAA_5lE_VdroOeflG56sSmDxopPEG3bFlSu1eowyBfxtu0_CuVd-M42RU75Zc4Gsj6uV77MBtbMrf4_7M_NUTSgoIF3fRqxrj0NzihIBg",
|
||
|
map[string]interface{}{"foo": "bar"},
|
||
|
false,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
func TestRS256Verify(t *testing.T) {
|
||
|
file, _ := os.Open("test/sample_key.pub")
|
||
|
buf := new(bytes.Buffer)
|
||
|
io.Copy(buf, file)
|
||
|
key := buf.Bytes()
|
||
|
file.Close()
|
||
|
|
||
|
for _, data := range testData {
|
||
|
parts := strings.Split(data.tokenString, ".")
|
||
|
|
||
|
method, _ := GetSigningMethod("RS256")
|
||
|
err := method.Verify(strings.Join(parts[0:1], "."), parts[2], key)
|
||
|
if data.valid && err != nil {
|
||
|
t.Errorf("[%v] Error while verifying key: %v", data.name, err)
|
||
|
}
|
||
|
if !data.valid && err == nil {
|
||
|
t.Errorf("[%v] Invalid key passed validation", data.name)
|
||
|
}
|
||
|
}
|
||
|
}
|