2019-04-10 07:38:48 +02:00
|
|
|
package rails
|
2019-03-24 14:57:29 +01:00
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2019-04-10 07:38:48 +02:00
|
|
|
func TestRailsEncryptedSession1(t *testing.T) {
|
2019-03-24 14:57:29 +01:00
|
|
|
cookie := "dDdjMW5jYUNYaFpBT1BSdFgwQkk4ZWNlT214L1FnM0pyZzZ1d21nSnVTTm9zS0ljN000S1JmT3cxcTNtRld2Ny0tQUFBQUFBQUFBQUFBQUFBQUFBQUFBQT09--75d8323b0f0e41cf4d5aabee1b229b1be76b83b6"
|
|
|
|
|
|
|
|
secret := "development_secret"
|
|
|
|
|
2019-04-10 07:38:48 +02:00
|
|
|
ra := Auth{
|
|
|
|
Cipher: railsCipher,
|
|
|
|
Secret: secret,
|
|
|
|
Salt: salt,
|
|
|
|
SignSalt: signSalt,
|
|
|
|
}
|
|
|
|
|
|
|
|
userID, err := ra.ParseCookie(cookie)
|
2019-03-24 14:57:29 +01:00
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
if userID != "1" {
|
|
|
|
t.Errorf("Expecting userID 1 got %s", userID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-10 07:38:48 +02:00
|
|
|
func TestRailsEncryptedSession52(t *testing.T) {
|
|
|
|
cookie :=
|
|
|
|
"fZy1lt%2FIuXh2cpQgy3wWjbvabh1AqJX%2Bt6qO4D95DOZIpDhMyK2HqPFeNoaBtrXCUa9%2BDQuvbs1GX6tuccEAp14QPLNhm0PPJS5U1pRHqPLWaqT%2BBPYP%2BY9bo677komm9CPuOCOqBKf7rv3%2F4ptLmVO7iefB%2FP2ZlkV1848Johv5q%2B5PGyMxII2BEQnBdS3Petw6lRu741Bquc8z9VofC3t4%2F%2BLxVz%2BvBbTg--VL0MorYITXB8Dj3W--0yr0sr6pRU%2FwlYMQ%2BpEifA%3D%3D"
|
|
|
|
|
|
|
|
secret := "0a248500a64c01184edb4d7ad3a805488f8097ac761b76aaa6c17c01dcb7af03a2f18ba61b2868134b9c7b79a122bc0dadff4367414a2d173297bfea92be5566"
|
|
|
|
|
|
|
|
ra := Auth{
|
|
|
|
Cipher: railsCipher52,
|
|
|
|
Secret: secret,
|
|
|
|
AuthSalt: authSalt,
|
|
|
|
}
|
|
|
|
|
|
|
|
userID, err := ra.ParseCookie(cookie)
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
if userID != "2" {
|
|
|
|
t.Errorf("Expecting userID 2 got %s", userID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-03-24 14:57:29 +01:00
|
|
|
func TestRailsJsonSession(t *testing.T) {
|
|
|
|
sessionData := `{"warden.user.user.key":[[1],"secret"]}`
|
|
|
|
|
|
|
|
userID, err := getUserId([]byte(sessionData))
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
if userID != "1" {
|
|
|
|
t.Errorf("Expecting userID 1 got %s", userID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestRailsMarshaledSession(t *testing.T) {
|
|
|
|
sessionData := "\x04\b{\bI\"\x15member_return_to\x06:\x06ETI\"\x06/\x06;\x00TI\"\x19warden.user.user.key\x06;\x00T[\a[\x06i\aI\"\"$2a$11$6SgXdvO9hld82kQAvpEY3e\x06;\x00TI\"\x10_csrf_token\x06;\x00FI\"17lqwj1UsTTgbXBQKH4ipCNW32uLusvfSPds1txppMec=\x06;\x00F"
|
|
|
|
|
|
|
|
userID, err := getUserId4([]byte(sessionData))
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
if userID != "2" {
|
|
|
|
t.Errorf("Expecting userID 2 got %s", userID)
|
|
|
|
}
|
|
|
|
}
|