Как мне демонтировать объект ruby в Java?

У меня есть объект, который я хотел бы захватить содержимое в Java. Единственная проблема заключается в том, что в настоящее время в рубине.

irb(main):050:0> blah
=> "BAh7ByIeYXV0aGVudGljYXRpb25fc3RyYXRlZ2llczAiCXVzZXJpBg%253D%253D-\
-0cdecf4edfaa5cbe4693c9fb83b204c1256a54a6"

irb(main):049:0> Marshal.load(Base64.decode64(blah))
=> {"authentication_strategies"=>nil, "user"=>1}

Я получил часть base64 в порядке - так что теперь все в байтах. Как бы я получить доступ к этой 2-й строке? Я предполагаю, что что-то можно сделать с помощью jruby, но я никогда не использовал это раньше и понятия не имел, с чего начать.

позвольте мне подробно остановиться на моей проблеме здесь.

1) это куки, которые я пытаюсь разделить между сервлетом на tomcat и приложением merb на apache

2) Я не собираюсь хранить их в базе данных. Я думал об их использовании в memcached, но по другим причинам я хотел бы сохранить их в виде файлов cookie (да, я хорошо осведомлен о связанных с безопасностью последствиях)

В настоящее время я смотрю на jruby's Red Bridge / jruby-embed, однако, так как это всего лишь 70 байтов, на которые мне нужно смотреть, я думаю, что нелепо вызывать все эти издержки для чего-то такого простого.

а не начинать новый вопрос .... код у меня сейчас выглядит так:

        // using commons
        Base64 b64 = new Base64();
        byte[] decoded = b64.decode(cookie.getValue().getBytes());

        ScriptingContainer container = new ScriptingContainer();
        container.runScriptlet("la = Marshal.load(\"" + decoded + "\"); puts la.to_s;");

очевидно, это не сработает, потому что маршал собирается проверить первые 2 байта декодированных и выходить из себя, так как это не соответствует основной / минорной версии jruby .... hrmss ..

Ответы на вопрос(3)

Ваш ответ на вопрос