Como faço para descontrolar um objeto ruby ​​em java?

Eu tenho um objeto que gostaria de pegar o conteúdo em java. O único problema é que está atualmente em ruby.

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

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

Eu tenho a parte base64 tudo bem - então agora tudo está em bytes. Como eu iria acessar essa segunda corda? Eu presumo que algo pode ser feito com jruby, mas eu nunca usei isso antes e não teria idéia por onde começar.

deixe-me elaborar sobre o meu problema aqui.

1) estes são cookies que eu estou tentando compartilhar entre um servlet no tomcat e um aplicativo merb no apache

2) Eu não vou armazená-los no banco de dados. Eu pensei em usá-los no memcached, mas por outras razões eu gostaria de armazená-los como cookies (sim, estou bem ciente das implicações de segurança envolvidas)

No momento, estou olhando para o Red Bridge / jruby-embebido do jruby, no entanto, como isso é apenas 70 bytes, eu preciso olhar, acho ridículo chamar toda essa sobrecarga para algo tão simples.

em vez de iniciar uma nova pergunta .... código que tenho agora parece assim:

        // 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;");

obviamente, isso não vai funcionar, porque o marechal vai checar os primeiros 2 bytes decodificados e surtar, já que ele não combina com a versão principal / secundária do jruby .... hrmss ..

questionAnswers(3)

yourAnswerToTheQuestion