shackpank / marsha

Ruby Marshal serializer/deserializer for JS
10 stars 2 forks source link

can not load some ruby marsha string #1

Closed zhongfox closed 9 years ago

zhongfox commented 9 years ago

can u please look at my problem, thanks!

ruby test:

2.1.1 :085 >   a = 'BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWYwMzkwNDQ2ZmY4MmY1YjljMDgxMDYxMzJmOWY1MTUwBjsAVEkiB2N1BjsARkkiLjM4OTE5ODg4LHVzZXJfNDAyNDUxMTI5MmE1N2MsLDEzODQzOTk3NzI3BjsAVEkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIJVXNlcgY7AEZbBmkE0N5RAkkiAAY7AFRJIg9zaWduaW5fd2F5BjsARmkLSSIRX3NpZ25faW5fd2F5BjsARmkLSSIQX2NzcmZfdG9rZW4GOwBGSSIxWituaGxIODBQMlcxSlNBb0dMV1JtYzNjaWhRZjBYQVBEc25KeS96dlRabz0GOwBGSSIMY2FwdGNoYQY7AEYiGTY4ZGJjMWUyOGJiZGZhM2ZjM2Yz' => "BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWYwMzkwNDQ2ZmY4MmY1YjljMDgxMDYxMzJmOWY1MTUwBjsAVEkiB2N1BjsARkkiLjM4OTE5ODg4LHVzZXJfNDAyNDUxMTI5MmE1N2MsLDEzODQzOTk3NzI3BjsAVEkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIJVXNlcgY7AEZbBmkE0N5RAkkiAAY7AFRJIg9zaWduaW5fd2F5BjsARmkLSSIRX3NpZ25faW5fd2F5BjsARmkLSSIQX2NzcmZfdG9rZW4GOwBGSSIxWituaGxIODBQMlcxSlNBb0dMV1JtYzNjaWhRZjBYQVBEc25KeS96dlRabz0GOwBGSSIMY2FwdGNoYQY7AEYiGTY4ZGJjMWUyOGJiZGZhM2ZjM2Yz"
2.1.1 :086 >
2.1.1 :087 >
2.1.1 :088 >   Marshal.load(Base64.decode64(a))
 => {"session_id"=>"f0390446ff82f5b9c08106132f9f5150", "cu"=>"38919888,user_4024511292a57c,,13843997727", "warden.user.user.key"=>["User", [38919888], ""], "signin_way"=>6, "_sign_in_way"=>6, "_csrf_token"=>"Z+nhlH80P2W1JSAoGLWRmc3cihQf0XAPDsnJy/zvTZo=", "captcha"=>"68dbc1e28bbdfa3fc3f3"}

node test:

 a = 'BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWYwMzkwNDQ2ZmY4MmY1YjljMDgxMDYxMzJmOWY1MTUwBjsAVEkiB2N1BjsARkkiLjM4OTE5ODg4LHVzZXJfNDAyNDUxMTI5MmE1N2MsLDEzODQzOTk3NzI3BjsAVEkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIJVXNlcgY7AEZbBmkE0N5RAkkiAAY7AFRJIg9zaWduaW5fd2F5BjsARmkLSSIRX3NpZ25faW5fd2F5BjsARmkLSSIQX2NzcmZfdG9rZW4GOwBGSSIxWituaGxIODBQMlcxSlNBb0dMV1JtYzNjaWhRZjBYQVBEc25KeS96dlRabz0GOwBGSSIMY2FwdGNoYQY7AEYiGTY4ZGJjMWUyOGJiZGZhM2ZjM2Yz'
'BAh7DEkiD3Nlc3Npb25faWQGOgZFRkkiJWYwMzkwNDQ2ZmY4MmY1YjljMDgxMDYxMzJmOWY1MTUwBjsAVEkiB2N1BjsARkkiLjM4OTE5ODg4LHVzZXJfNDAyNDUxMTI5MmE1N2MsLDEzODQzOTk3NzI3BjsAVEkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjsAVFsISSIJVXNlcgY7AEZbBmkE0N5RAkkiAAY7AFRJIg9zaWduaW5fd2F5BjsARmkLSSIRX3NpZ25faW5fd2F5BjsARmkLSSIQX2NzcmZfdG9rZW4GOwBGSSIxWituaGxIODBQMlcxSlNBb0dMV1JtYzNjaWhRZjBYQVBEc25KeS96dlRabz0GOwBGSSIMY2FwdGNoYQY7AEYiGTY4ZGJjMWUyOGJiZGZhM2ZjM2Yz'
> marsha.load(a, 'base64')
Error: Unexpected data, value 34 at offset 294 on 7b0c49220f73657373696f6e5f6964063a0645464922256630333930343436666638326635623963303831303631333266396635313530063b00544922076375063b004649222e33383931393838382c757365725f34303234353131323932613537632c2c3133383433393937373237063b005449221977617264656e2e757365722e757365722e6b6579063b00545b0849220955736572063b00465b066904d0de5102492200063b005449220f7369676e696e5f776179063b0046690b4922115f7369676e5f696e5f776179063b0046690b4922105f637372665f746f6b656e063b00464922315a2b6e686c483830503257314a53416f474c57526d633363696851663058415044736e4a792f7a76545a6f3d063b004649220c63617074636861063b004622193638646263316532386262646661336663336633. Parsing this sort of data is probably not yet implemented!
    at _identifyNextToken (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:98:15)
    at _identifyNextToken (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:92:21)
    at _parse (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:104:10)
    at Object.module.exports.load (/Users/zhonghua/code/work/zhe800_node/node_modules/marsha/index.js:209:12)
    at repl:1:9
    at REPLServer.self.eval (repl.js:112:21)
    at Interface.<anonymous> (repl.js:239:12)
    at Interface.EventEmitter.emit (events.js:117:20)
    at Interface._onLine (readline.js:202:10)
    at Interface._line (readline.js:531:8)
shackpank commented 9 years ago

Hi @zhongfox - thanks for including what ruby expects in the example!

The value of the "captcha" property was serialized to a slightly different set of bytes vs the examples used to build the first revision of this module. I've published a new version on npm that can parse it.

Aside - Warden being in the session suggests you're trying to migrate from a rails app, as a heads up maybe this module, which builds on this one, is a better fit?

In any case, your example is now in the test suite.

zhongfox commented 9 years ago

Version 0.1.0 fixed my problem, thanks!