File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed
Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change 55 "encoding/json"
66 "fmt"
77 "strings"
8+ "regexp"
89)
910
1011type ID struct {
@@ -51,11 +52,21 @@ func stripCtlFromUTF8(str string) string {
5152}
5253
5354func GetID (tokenString string ) ID {
55+ if ( validateTokenstring (tokenString ) == false ) {
56+ panic ("Given token string is not valid." )
57+ }
58+
5459 dataString := strings .Split (tokenString , "." )[1 ]
5560 data , _ := base64 .RawStdEncoding .DecodeString (dataString )
61+
5662 var id ID
5763 if err := json .Unmarshal ((data ), & id ); err != nil {
5864 panic (err )
5965 }
6066 return id
61- }
67+ }
68+
69+ func validateTokenstring (tokenString string ) bool {
70+ matched , err := regexp .MatchString (`^[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$` , tokenString )
71+ return ( err == nil && matched == true )
72+ }
Original file line number Diff line number Diff line change 1+ package utils
2+
3+ import (
4+ "testing"
5+ )
6+
7+ const (
8+ VALID_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhUONCSzhYRC1od1gtMWJFbjdZZDRLS0tWS6hYRy03RHg3STZDaVZZWUtRIn0.eyJleHAiOjE2Mjg1MTMxNjMsImlhdCI6MTYyNzkxMTczOCwiYXV0aF90aW1lIjoxNjI3OTA4MzYzLCJqdGkiOiI0NGIxNWE3MC02ODU5LTRjZDItYjg5NS1kMjk0MWM0ZmFiZWIiLCJpc3MiOiJodHRwczovL2F1dGgubGFiLnNzcGNsb3VkLmZyL2F1dGgvcmVhbG1zL3NzcGNsb3VkIiwiYXVkIjpbIm9ueXhpYSIsIm1pbmlvLXRlc3QiLCJhY2NvdW50Il0sInN1YiI6IjUyYmVmNWU2LTE2YjktNDJkZC1hNGI3LWVmODhlYjUzZmY3MiIsInR5cCI6IkJlYXJlciIsImF6cCI6Im9ueXhpYSIsIm5vbmNlIjoiYzI1YmFlMzEtMmU3Mi00MjRjLTg3NWYtODVkNjgwYWVkMjY0Iiwic2Vzc2lvbl9zdGF0ZSI6IjY1ZmQwNzNlLThlZjEtNDA3Zi05YmY3LWMzOTVhYmJmYjMwMyIsImFjciI6IjAiLCJhbGxvd2VkLW9yaWdpbnMiOlsiKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZ3JvdXBzIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsIm5hbWUiOiJNYXRoaWV1IEdyenliZWsiLCJncm91cHMiOltdLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJtZ3J6eWJlayIsImdpdmVuX25hbWUiOiJNYXRoaWV1IiwiZmFtaWx5X25hbWUiOiJHcnp5YmVrIiwiZW1haWwiOiJtYXRoaWV1LmdyenliZWtAanVzdGljZS5nb3V2LmZyIiwicG9saWN5Ijoic3Rzb25seSJ9.arqzNJ1aptbUMg4noMVBzf2mnX-9pePNcn2HJ31XzAJR-2rxTsyJNrHe0Nj7-GXW31moAA4zNIZT1hyhlfr3wA7tNTeCgZCMtA2uWUPanwpmnW9ria4xvPV98h-YFOQ8TEaAHRDieAYZk6jMgBleXu14wgy13uMyHu1IQ-9NwM3Du6KBB1rY3T3uIhJxi5dUG0M-YgTHLwHNRsZMKknCW8fVxEAQjf6hOh_KZrHVrnCo0Go1sVP9fjxgkmqdQ_x5zC8jDIU-pJiPnIV5F-R3FHnP7tmNADjKFL-QUjdbHdMZvlWc6dbJb6GokcObmTUf5sUpoX5XKlCYOpVP5TSY4w"
9+ )
10+
11+ func TestBadID (t * testing.T ) {
12+ defer func () { if r := recover (); r == nil { panic ("Valid token detected, should have been invalid." ) } }()
13+ GetID ("bullshit" )
14+ }
15+
16+ func TestCorrectID (t * testing.T ) {
17+ GetID (VALID_TOKEN )
18+ }
You can’t perform that action at this time.
0 commit comments